diff --git a/sources/conductornumexport.cpp b/sources/conductornumexport.cpp index 88c3a1354..a18bf527b 100644 --- a/sources/conductornumexport.cpp +++ b/sources/conductornumexport.cpp @@ -17,6 +17,7 @@ */ #include "conductornumexport.h" +#include "qetapp.h" #include "diagram.h" #include "diagramcontent.h" #include "qetgraphicsitem/conductor.h" @@ -45,7 +46,10 @@ ConductorNumExport::ConductorNumExport(QETProject *project, QWidget *parent) : */ bool ConductorNumExport::toCsv() { - QString name = QObject::tr("numero_de_fileries_") + m_project->title() + ".csv"; + //save in csv file in same directory as project by default + QString dir = m_project->currentDir(); + if (dir.isEmpty()) dir = QETApp::documentDir(); + QString name = dir + "/" + QObject::tr("numero_de_fileries_") + m_project->title() + ".csv"; // if(!name.endsWith(".csv")) { // name += ".csv"; // } diff --git a/sources/dataBase/projectdatabase.cpp b/sources/dataBase/projectdatabase.cpp index a0212b0d5..f645a8d4d 100644 --- a/sources/dataBase/projectdatabase.cpp +++ b/sources/dataBase/projectdatabase.cpp @@ -670,8 +670,7 @@ void projectDataBase::exportDb(projectDataBase *db, if(dir_.isEmpty()) { dir_ = db->project()->filePath(); if (dir_.isEmpty()) { - dir_ = QStandardPaths::standardLocations(QStandardPaths::DocumentsLocation).first(); - dir_ += QString("/") += tr("sans_nom") += ".sqlite"; + dir_ = QETApp::documentDir() + "/" + tr("sans_nom") + ".sqlite"; } else { dir_.remove(".qet"); dir_.append(".sqlite"); diff --git a/sources/diagramevent/diagrameventaddimage.cpp b/sources/diagramevent/diagrameventaddimage.cpp index bb81c4132..d62d9fca5 100644 --- a/sources/diagramevent/diagrameventaddimage.cpp +++ b/sources/diagramevent/diagrameventaddimage.cpp @@ -18,6 +18,7 @@ #include "diagrameventaddimage.h" +#include "../qetapp.h" #include "../diagram.h" #include "../undocommand/addgraphicsobjectcommand.h" #include "../qetgraphicsitem/diagramimageitem.h" @@ -155,7 +156,7 @@ void DiagramEventAddImage::openDialog() if (m_diagram -> isReadOnly()) return; //Open dialog to select image - QString pathPictures = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation); + QString pathPictures = QETApp::pictureDir(); QString fileName = QFileDialog::getOpenFileName(m_diagram->views().isEmpty()? nullptr : m_diagram->views().first(), QObject::tr("Selectionner une image..."), pathPictures, QObject::tr("Image Files (*.png *.jpg *.jpeg *.bmp *.svg)")); if (fileName.isEmpty()) return; diff --git a/sources/exportproperties.cpp b/sources/exportproperties.cpp index d46492188..304094598 100644 --- a/sources/exportproperties.cpp +++ b/sources/exportproperties.cpp @@ -16,8 +16,7 @@ along with QElectroTech. If not, see . */ #include "exportproperties.h" - -#include +#include "qetapp.h" /** Constructeur par defaut : @@ -28,9 +27,7 @@ * la zone exportee est le schema avec son cadre et son cartouche */ ExportProperties::ExportProperties() : - destination_directory( - QStandardPaths::writableLocation( - QStandardPaths::DesktopLocation)), + destination_directory(QETApp::documentDir()), format("PNG"), draw_grid(false), draw_border(true), @@ -85,14 +82,13 @@ void ExportProperties::toSettings(QSettings &settings, */ void ExportProperties::fromSettings(QSettings &settings, const QString &prefix) { - QString desktop_path = QStandardPaths::writableLocation( - QStandardPaths::DesktopLocation); + QString export_path = QETApp::documentDir(); destination_directory.setPath( settings.value( prefix + "path", - desktop_path).toString()); + export_path).toString()); if (!destination_directory.exists()) - destination_directory.setPath(desktop_path); + destination_directory.setPath(export_path); format = settings.value(prefix + "format").toString(); diff --git a/sources/qetapp.cpp b/sources/qetapp.cpp index 53896807f..bc5891a63 100644 --- a/sources/qetapp.cpp +++ b/sources/qetapp.cpp @@ -869,6 +869,44 @@ QString QETApp::dataDir() return datadir; } +/** + @brief QETApp::documentDir + Return the standard-folder where to save users documents + This directory is generally + C:/Users//Documents + on Windows and + ~/Documents + under UNIX-like systems. + \~ @return The path of users document-folder +*/ +QString QETApp::documentDir() +{ + QString docdir = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation); + if (docdir.endsWith('/')) { + docdir.remove(docdir.length()-1, 1); + } + return docdir; +} + +/** + @brief QETApp::pictureDir + Returns the standard-folder of users pictures + This directory is generally + C:/Users//Pictures + on Windows and + ~/Pictures + under UNIX-like systems. + \~ @return The path of users picture-folder +*/ +QString QETApp::pictureDir() +{ + QString picturedir = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation); + if (picturedir.endsWith('/')) { + picturedir.remove(picturedir.length()-1, 1); + } + return picturedir; +} + /** @brief QETApp::realPath Allows you to know the absolute path of the * .elmt file diff --git a/sources/qetapp.h b/sources/qetapp.h index 572e2c837..a620269db 100644 --- a/sources/qetapp.h +++ b/sources/qetapp.h @@ -98,6 +98,8 @@ class QETApp : public QObject static int projectId(const QETProject *); static QString configDir(); static QString dataDir(); + static QString documentDir(); + static QString pictureDir(); static QString languagesPath(); static QString realPath(const QString &); static QString symbolicPath(const QString &); diff --git a/sources/qetdiagrameditor.cpp b/sources/qetdiagrameditor.cpp index 87ab24162..3d072853f 100644 --- a/sources/qetdiagrameditor.cpp +++ b/sources/qetdiagrameditor.cpp @@ -65,7 +65,7 @@ QETDiagramEditor::QETDiagramEditor(const QStringList &files, QWidget *parent) : m_zoom_actions_group (this), m_select_actions_group (this), m_file_actions_group (this), - open_dialog_dir (QStandardPaths::writableLocation(QStandardPaths::DesktopLocation)) + open_dialog_dir (QETApp::documentDir()) { //Trivial property use to set the graphics handler size setProperty("graphics_handler_size", 10); diff --git a/sources/qetproject.cpp b/sources/qetproject.cpp index 28ca9469c..a7f842a95 100644 --- a/sources/qetproject.cpp +++ b/sources/qetproject.cpp @@ -36,7 +36,6 @@ #include "qetversion.h" #include -#include #include #include #include @@ -369,7 +368,7 @@ QString QETProject::currentDir() const { QString current_directory; if (m_file_path.isEmpty()) { - current_directory = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation); + current_directory = QETApp::documentDir(); } else { current_directory = QFileInfo(m_file_path).absoluteDir().absolutePath(); } diff --git a/sources/titleblock/templatelogomanager.cpp b/sources/titleblock/templatelogomanager.cpp index b804f0a76..54493e481 100644 --- a/sources/titleblock/templatelogomanager.cpp +++ b/sources/titleblock/templatelogomanager.cpp @@ -17,11 +17,10 @@ */ #include "templatelogomanager.h" +#include "../qetapp.h" #include "../qeticons.h" #include "../titleblocktemplate.h" -#include - /** Constructor @param managed_template Title block template this widget manages logos for. @@ -78,7 +77,7 @@ void TitleBlockTemplateLogoManager::emitLogosChangedSignal() */ void TitleBlockTemplateLogoManager::initWidgets() { - open_dialog_dir_.setPath(QStandardPaths::writableLocation(QStandardPaths::DesktopLocation)); + open_dialog_dir_.setPath(QETApp::documentDir()); setWindowTitle(tr("Gestionnaire de logos")); setWindowIcon(QET::Icons::InsertImage); diff --git a/sources/ui/bomexportdialog.cpp b/sources/ui/bomexportdialog.cpp index 37e6ef37b..0f7b4b74d 100644 --- a/sources/ui/bomexportdialog.cpp +++ b/sources/ui/bomexportdialog.cpp @@ -62,8 +62,10 @@ int BOMExportDialog::exec() auto r = QDialog::exec(); if (r == QDialog::Accepted) { - //save in csv file - QString file_name = tr("nomenclature_") + QString(m_project ->title() + ".csv"); + //save in csv file in same directory as project by default + QString dir = m_project->currentDir(); + if (dir.isEmpty()) dir = QETApp::documentDir(); + QString file_name = dir + "/" + tr("nomenclature_") + QString(m_project ->title() + ".csv"); QString file_path = QFileDialog::getSaveFileName(this, tr("Enregister sous... "), file_name, tr("Fichiers csv (*.csv)")); QFile file(file_path); if (!file_path.isEmpty())