Fix - Calculate workdir on Windows if startup option was set before the latest fix

This commit is contained in:
Yurii Puchkov
2020-09-02 07:17:59 -07:00
committed by Yuriy Puchkov
parent 0c05b03a5b
commit a810f103c1
2 changed files with 13 additions and 3 deletions

View File

@@ -2,6 +2,8 @@
#include <QDir>
#include <QSettings>
#include <QFileInfo>
#include <QString>
#include <QSettings>
ConfigEnterprise::ConfigEnterprise()
@@ -9,11 +11,18 @@ ConfigEnterprise::ConfigEnterprise()
// get enterprise settings
m_settings = nullptr;
QString configIniPath = QDir(QDir::currentPath()).filePath("config.ini");
#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX)
if(!(QFileInfo::exists(configIniPath) && QFileInfo(configIniPath).isFile())) {
#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX)
configIniPath = "/etc/flameshot/config.ini";
}
#elif defined(Q_OS_WIN)
// calculate workdir for flameshot on startup if is not set yet
QSettings bootUpSettings(
"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
QSettings::NativeFormat);
QFileInfo fi(bootUpSettings.value("Flameshot").toString());
configIniPath = QDir(fi.absolutePath()).filePath("config.ini");
#endif
}
m_settings = new QSettings(configIniPath, QSettings::IniFormat);
}

View File

@@ -310,6 +310,7 @@ void ConfigHandler::setStartupLaunch(const bool start) {
QSettings bootUpSettings(
"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
QSettings::NativeFormat);
// set workdir for flameshot on startup
QSettings bootUpPath(
"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths",
QSettings::NativeFormat);
@@ -320,7 +321,7 @@ void ConfigHandler::setStartupLaunch(const bool start) {
// set application workdir
bootUpPath.beginGroup("flameshot.exe");
bootUpPath.setValue("Path", QCoreApplication::applicationFilePath());
bootUpPath.setValue("Path", QCoreApplication::applicationDirPath());
bootUpPath.endGroup();
} else {