set config- and data-dir to system-specific paths

This commit is contained in:
plc-user
2025-01-23 18:47:10 +01:00
parent b19fbd2522
commit ba9cd71816
6 changed files with 39 additions and 39 deletions

View File

@@ -21,7 +21,7 @@
#include <QFile> #include <QFile>
#include <QProcess> #include <QProcess>
#include <QMessageBox> #include <QMessageBox>
#include <QDir> #include <QStandardPaths>
/** /**
* @brief dxftoElmt * @brief dxftoElmt
@@ -71,13 +71,7 @@ QByteArray dxfToElmt(const QString &file_path)
QString dxf2ElmtDirPath() QString dxf2ElmtDirPath()
{ {
#if defined(Q_OS_WIN32) || defined(Q_OS_WIN64) return QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + "/binary";
return (QDir::homePath() + QStringLiteral("/Application Data/qet/binary"));
#elif defined(Q_OS_MACOS)
return (QDir::homePath() + QStringLiteral("/.qet/binary"));
#else
return (QDir::homePath() + QStringLiteral("/.qet/binary"));
#endif
} }
/** /**

View File

@@ -112,7 +112,8 @@ void myMessageOutput(QtMsgType type,
txt+= context.function ? context.function : ""; txt+= context.function ? context.function : "";
txt+=")\n"; txt+=")\n";
} }
QFile outFile(QETApp::configDir() QFile outFile(QETApp::dataDir()
+"/"
+QDate::currentDate().toString("yyyyMMdd") +QDate::currentDate().toString("yyyyMMdd")
+".log"); +".log");
if(outFile.open(QIODevice::WriteOnly | QIODevice::Append)) if(outFile.open(QIODevice::WriteOnly | QIODevice::Append))
@@ -131,7 +132,7 @@ void myMessageOutput(QtMsgType type,
void delete_old_log_files(int days) void delete_old_log_files(int days)
{ {
const QDate today = QDate::currentDate(); const QDate today = QDate::currentDate();
const QString path = QETApp::configDir() + "/"; const QString path = QETApp::dataDir() + "/";
QString filter("%1%1%1%1%1%1%1%1.log"); // pattern QString filter("%1%1%1%1%1%1%1%1.log"); // pattern
filter = filter.arg("[0123456789]"); // valid characters filter = filter.arg("[0123456789]"); // valid characters

View File

@@ -22,7 +22,7 @@
#include <QProcess> #include <QProcess>
#include <QInputDialog> #include <QInputDialog>
#include <QMessageBox> #include <QMessageBox>
#include <QDir> #include <QStandardPaths>
/** /**
* @brief QET_ElementScaler * @brief QET_ElementScaler
@@ -113,13 +113,7 @@ QByteArray ElementScaler(const QString &file_path, QWidget *parent)
QString ElementScalerDirPath() QString ElementScalerDirPath()
{ {
#if defined(Q_OS_WIN32) || defined(Q_OS_WIN64) return QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + "/binary";
return (QDir::homePath() + QStringLiteral("/Application Data/qet/binary"));
#elif defined(Q_OS_MACOS)
return (QDir::homePath() + QStringLiteral("/.qet/binary"));
#else
return (QDir::homePath() + QStringLiteral("/.qet/binary"));
#endif
} }
/** /**

View File

@@ -121,7 +121,7 @@ QETApp::QETApp() :
tr("Chargement... Initialisation du cache des collections d'éléments", tr("Chargement... Initialisation du cache des collections d'éléments",
"splash screen caption")); "splash screen caption"));
if (!collections_cache_) { if (!collections_cache_) {
QString cache_path = QETApp::configDir() + "/elements_cache.sqlite"; QString cache_path = QETApp::dataDir() + "/elements_cache.sqlite";
collections_cache_ = new ElementsCollectionCache(cache_path, this); collections_cache_ = new ElementsCollectionCache(cache_path, this);
collections_cache_->setLocale(langFromSetting()); collections_cache_->setLocale(langFromSetting());
@@ -620,7 +620,7 @@ QString QETApp::customElementsDir()
} }
} }
m_custom_element_dir = configDir() + "elements/"; m_custom_element_dir = dataDir() + "/elements/";
return m_custom_element_dir; return m_custom_element_dir;
} }
} }
@@ -657,7 +657,7 @@ QString QETApp::companyElementsDir()
} }
} }
m_company_element_dir = configDir() + "elements-company/"; m_company_element_dir = dataDir() + "/elements-company/";
return m_company_element_dir; return m_company_element_dir;
} }
} }
@@ -780,7 +780,7 @@ QString QETApp::companyTitleBlockTemplatesDir()
return m_user_company_tbt_dir; return m_user_company_tbt_dir;
} }
return(configDir() + "titleblocks-company/"); return(dataDir() + "/titleblocks-company/");
} }
/** /**
@@ -813,7 +813,7 @@ QString QETApp::customTitleBlockTemplatesDir()
return m_user_custom_tbt_dir; return m_user_custom_tbt_dir;
} }
return(configDir() + "titleblocks/"); return(dataDir() + "/titleblocks/");
} }
/** /**
@@ -841,21 +841,31 @@ QString QETApp::configDir()
#ifdef QET_ALLOW_OVERRIDE_CD_OPTION #ifdef QET_ALLOW_OVERRIDE_CD_OPTION
if (config_dir != QString()) return(config_dir); if (config_dir != QString()) return(config_dir);
#endif #endif
#ifdef Q_OS_WIN32 QString configdir = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
// recupere l'emplacement du dossier Application Data if (configdir.endsWith('/')) {
// char *app_data_env = getenv("APPDATA"); configdir.remove(configdir.length()-1, 1);
// QString app_data_str(app_data_env);
QProcess * process = new QProcess();
QString app_data_str = (process->processEnvironment()).value("APPDATA");
// delete app_data_env;
delete process;
if (app_data_str.isEmpty()) {
app_data_str = QDir::homePath() + "/Application Data";
} }
return(app_data_str + "/qet/"); return configdir;
#else }
return(QDir::homePath() + "/.qet/");
#endif /**
@brief QETApp::dataDir
Return the QET data folder, i.e. the path to the folder in which
QET will find user-collections and user-titleblocks by default
specific to the current user. This directory is generally
C:/Users/<USER>/AppData/Roaming/<APPNAME>
on Windows and
~/.local/share/<APPNAME>
under UNIX-like systems.
\~ @return The path of the QElectroTech data-folder
*/
QString QETApp::dataDir()
{
QString datadir = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
if (datadir.endsWith('/')) {
datadir.remove(datadir.length()-1, 1);
}
return datadir;
} }
/** /**
@@ -1536,7 +1546,7 @@ void QETApp::useSystemPalette(bool use) {
"}" "}"
); );
} else { } else {
QFile file(configDir() + "style.css"); QFile file(configDir() + "/style.css");
file.open(QFile::ReadOnly); file.open(QFile::ReadOnly);
QString styleSheet = QLatin1String(file.readAll()); QString styleSheet = QLatin1String(file.readAll());
qApp->setStyleSheet(styleSheet); qApp->setStyleSheet(styleSheet);

View File

@@ -97,6 +97,7 @@ class QETApp : public QObject
static QETProject *project(const uint &); static QETProject *project(const uint &);
static int projectId(const QETProject *); static int projectId(const QETProject *);
static QString configDir(); static QString configDir();
static QString dataDir();
static QString languagesPath(); static QString languagesPath();
static QString realPath(const QString &); static QString realPath(const QString &);
static QString symbolicPath(const QString &); static QString symbolicPath(const QString &);

View File

@@ -208,7 +208,7 @@ void AboutQETDialog::setLicence()
*/ */
void AboutQETDialog::setLoginfo() void AboutQETDialog::setLoginfo()
{ {
const QString path = QETApp::configDir() + "/"; const QString path = QETApp::dataDir() + "/";
QString filter("%1%1%1%1%1%1%1%1.log"); // pattern QString filter("%1%1%1%1%1%1%1%1.log"); // pattern
filter = filter.arg("[0123456789]"); // valid characters filter = filter.arg("[0123456789]"); // valid characters
Q_FOREACH (auto fileInfo, Q_FOREACH (auto fileInfo,