Merge pull request #329 from plc-user/master

Set default-location for projects to documents-dir.
This commit is contained in:
Laurent Trinques
2025-01-26 12:43:00 +01:00
committed by GitHub
10 changed files with 67 additions and 25 deletions

View File

@@ -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";
// }

View File

@@ -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");

View File

@@ -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;

View File

@@ -16,21 +16,18 @@
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/
#include "exportproperties.h"
#include <QStandardPaths>
#include "qetapp.h"
/**
Constructeur par defaut :
* le repertoire de destination est le Bureau de l'utilisateur
* le repertoire de destination est l'emplacement des documents de l'utilisateur
* le format d'export est PNG
* la grille et les bornes ne doivent pas etre dessinees
* la bordure et le cartouche doivent etre dessines
* 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();

View File

@@ -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/<USER>/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/<USER>/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

View File

@@ -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 &);

View File

@@ -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);

View File

@@ -36,7 +36,6 @@
#include "qetversion.h"
#include <QHash>
#include <QStandardPaths>
#include <QTimer>
#include <QtConcurrent>
#include <QtDebug>
@@ -361,15 +360,17 @@ void QETProject::setFilePath(const QString &filepath)
}
/**
@return le dossier contenant le fichier projet si celui-ci a ete
enregistre ; dans le cas contraire, cette methode retourne l'emplacement
du bureau de l'utilisateur.
@return the folder containing the project file if it has been saved;
otherwise, this method returns the location of the user's documents.
en français:
@return le dossier contenant le fichier du projet s'il a été enregistré ;
sinon, cette méthode renvoie l'emplacement des documents de l'utilisateur.
*/
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();
}

View File

@@ -17,11 +17,10 @@
*/
#include "templatelogomanager.h"
#include "../qetapp.h"
#include "../qeticons.h"
#include "../titleblocktemplate.h"
#include <QStandardPaths>
/**
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);

View File

@@ -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())