Skip to content

Commit

Permalink
Common (translator and config)
Browse files Browse the repository at this point in the history
  • Loading branch information
pktiuk committed Sep 17, 2021
1 parent b3a1861 commit 02fa74f
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 1 deletion.
33 changes: 33 additions & 0 deletions src/common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@
#include <QDebug>
#include <QLibraryInfo>
#include <QReadWriteLock>
#ifdef Q_OS_WIN
#include <QStandardPaths>
#endif

namespace PadderCommon {
QString preferredProfileDir(AntiMicroSettings *settings)
Expand All @@ -49,7 +52,23 @@ QString preferredProfileDir(AntiMicroSettings *settings)

if (lookupDir.isEmpty())
{
#ifdef Q_OS_WIN
#ifdef WIN_PORTABLE_PACKAGE
QString portableProDir = QDir::currentPath().append("/profiles");
QFileInfo portableProDirInfo(portableProDir);
if (portableProDirInfo.isDir() && portableProDirInfo.isReadable())
{
lookupDir = portableProDir;
} else
{
lookupDir = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
}
#else
lookupDir = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
#endif
#else
lookupDir = QDir::homePath();
#endif
}

return lookupDir;
Expand Down Expand Up @@ -101,13 +120,27 @@ void reloadTranslations(QTranslator *translator, QTranslator *appTranslator, QSt
qApp->removeTranslator(appTranslator);

// Load new Qt translation strings
#if defined(Q_OS_UNIX)
translator->load(QString("qt_").append(language), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
#elif defined(Q_OS_WIN)
#ifdef QT_DEBUG
translator->load(QString("qt_").append(language), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
#else
translator->load(QString("qt_").append(language),
QApplication::applicationDirPath().append("\\share\\qt\\translations"));
#endif
#endif

qApp->installTranslator(appTranslator);

// Load application specific translation strings
#if defined(Q_OS_UNIX)
translator->load("antimicrox_" + language,
QApplication::applicationDirPath().append("/../share/antimicrox/translations"));
#elif defined(Q_OS_WIN)
translator->load("antimicrox_" + language,
QApplication::applicationDirPath().append("\\share\\antimicrox\\translations"));
#endif

qApp->installTranslator(translator);
}
Expand Down
65 changes: 64 additions & 1 deletion src/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,78 @@
#include <QTranslator>
#include <QWaitCondition>

#ifdef Q_OS_WIN

static QString findWinSystemConfigPath()
{
QString temp;
temp = (!qgetenv("LocalAppData").isEmpty()) ? QString::fromUtf8(qgetenv("LocalAppData")) + "/antimicrox"
: QDir::homePath() + "/.antimicrox";
return temp;
}

static QString findWinLocalConfigPath()
{
QString temp = QCoreApplication::applicationDirPath();
return temp;
}

static QString findWinDefaultConfigPath()
{
QString temp = findWinLocalConfigPath();
QFileInfo dirInfo(temp);
if (!dirInfo.isWritable())
{
temp = findWinSystemConfigPath();
}

return temp;
}

static QString findWinConfigPath(QString configFileName)
{
QString temp;
QFileInfo localConfigInfo(findWinLocalConfigPath().append("/").append(configFileName));
QFileInfo systemConfigInfo(findWinSystemConfigPath().append("/").append(configFileName));
if (localConfigInfo.exists() && localConfigInfo.isWritable())
{
temp = localConfigInfo.absoluteFilePath();
} else if (systemConfigInfo.exists() && systemConfigInfo.isWritable())
{
temp = systemConfigInfo.absoluteFilePath();
} else
{
temp = findWinDefaultConfigPath().append("/").append(configFileName);
}

return temp;
}
#endif

namespace PadderCommon {
inline QString configPath()
{
#if defined(Q_OS_WIN) && defined(WIN_PORTABLE_PACKAGE)
return findWinLocalConfigPath();
#elif defined(Q_OS_WIN)
return findWinSystemConfigPath();
#else
return (!qgetenv("XDG_CONFIG_HOME").isEmpty()) ? QString::fromUtf8(qgetenv("XDG_CONFIG_HOME")) + "/antimicrox"
: QDir::homePath() + "/.config/antimicrox";
#endif
}

const QString configFileName = "antimicrox_settings.ini";
inline QString configFilePath() { return QString(configPath()).append("/").append(configFileName); }
inline QString configFilePath()
{
#if defined(Q_OS_WIN) && defined(WIN_PORTABLE_PACKAGE)
return QString(configPath()).append("/").append(configFileName);
#elif defined(Q_OS_WIN)
return QString(configPath()).append("/").append(configFileName);
#else
return QString(configPath()).append("/").append(configFileName);
#endif
}

inline QString configLegacyFilePath()
{
Expand Down

0 comments on commit 02fa74f

Please sign in to comment.