mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-19 14:50:53 +01:00
set config- and data-dir to system-specific paths
This commit is contained in:
@@ -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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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 &);
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user