mirror of
https://github.com/Qv2ray/Qv2ray.git
synced 2025-05-20 10:50:23 +08:00
change: rearranged default config folder search/creation path
This commit is contained in:
parent
73838f8c12
commit
7ce6c3e9b7
@ -1 +1 @@
|
|||||||
3641
|
3643
|
||||||
|
40
src/main.cpp
40
src/main.cpp
@ -101,31 +101,40 @@ bool verifyConfigAvaliability(QString path, bool checkExistingConfig)
|
|||||||
|
|
||||||
bool initialiseQv2ray()
|
bool initialiseQv2ray()
|
||||||
{
|
{
|
||||||
// Some built-in search paths for Qv2ray to find configs. Reversed Priority (load the bottom one if possible).
|
|
||||||
LOG(INIT, "Application exec path: " + QApplication::applicationDirPath())
|
LOG(INIT, "Application exec path: " + QApplication::applicationDirPath())
|
||||||
|
const QString homeQv2ray = QDir::homePath() + "/.qv2ray" QV2RAY_CONFIG_DIR_SUFFIX;
|
||||||
|
const QString configQv2ray = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "./qv2ray" QV2RAY_CONFIG_DIR_SUFFIX;
|
||||||
|
const QString currentPathConfig = QApplication::applicationDirPath() + "/config" QV2RAY_CONFIG_DIR_SUFFIX;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Some built-in search paths for Qv2ray to find configs. (load the first one if possible).
|
||||||
|
//
|
||||||
QStringList configFilePaths;
|
QStringList configFilePaths;
|
||||||
configFilePaths << QDir::homePath() + "/.qv2ray" QV2RAY_CONFIG_DIR_SUFFIX;
|
configFilePaths << currentPathConfig;
|
||||||
configFilePaths << QDir::homePath() + "/.config/qv2ray" QV2RAY_CONFIG_DIR_SUFFIX;
|
|
||||||
#ifdef WITH_FLATHUB_CONFIG_PATH
|
#ifdef WITH_FLATHUB_CONFIG_PATH
|
||||||
LOG(INIT, "---> Adding flakpak config path support.")
|
// AppConfigLocation uses 'Q'v2ray instead of `q`v2ray. Keep here as backward compatibility.
|
||||||
configFilePaths << QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + QV2RAY_CONFIG_DIR_SUFFIX;
|
configFilePaths << QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + QV2RAY_CONFIG_DIR_SUFFIX;
|
||||||
#endif
|
#endif
|
||||||
configFilePaths << QApplication::applicationDirPath() + "/config" QV2RAY_CONFIG_DIR_SUFFIX;
|
configFilePaths << configQv2ray;
|
||||||
QString configPath = "";
|
configFilePaths << homeQv2ray;
|
||||||
//
|
//
|
||||||
|
QString configPath = "";
|
||||||
bool hasExistingConfig = false;
|
bool hasExistingConfig = false;
|
||||||
|
|
||||||
for (auto path : configFilePaths) {
|
for (auto path : configFilePaths) {
|
||||||
// Verify the config path, check if the config file exists and in the correct JSON format.
|
// Verify the config path, check if the config file exists and in the correct JSON format.
|
||||||
// True means we check for config existance as well. --| |
|
// True means we check for config existance as well. --|HERE |
|
||||||
bool isValidConfigPath = verifyConfigAvaliability(path, true);
|
bool isValidConfigPath = verifyConfigAvaliability(path, true);
|
||||||
|
|
||||||
|
// If we already found a valid config file. just simply load it...
|
||||||
|
if (hasExistingConfig) break;
|
||||||
|
|
||||||
if (isValidConfigPath) {
|
if (isValidConfigPath) {
|
||||||
DEBUG(INIT, "Path: " + path + " is valid.")
|
DEBUG(INIT, "Path: " + path + " is valid.")
|
||||||
configPath = path;
|
configPath = path;
|
||||||
hasExistingConfig = true;
|
hasExistingConfig = true;
|
||||||
} else {
|
} else {
|
||||||
DEBUG(INIT, "Path: " + path + " does not contain a valid config file.")
|
LOG(INIT, "Path: " + path + " does not contain a valid config file.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,21 +144,12 @@ bool initialiseQv2ray()
|
|||||||
SetConfigDirPath(configPath);
|
SetConfigDirPath(configPath);
|
||||||
LOG(INIT, "Using " + QV2RAY_CONFIG_DIR + " as the config path.")
|
LOG(INIT, "Using " + QV2RAY_CONFIG_DIR + " as the config path.")
|
||||||
} else {
|
} else {
|
||||||
|
//
|
||||||
// Create new config at these dirs, these are default values for each platform.
|
// Create new config at these dirs, these are default values for each platform.
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
configPath = QDir::currentPath() + "/config" QV2RAY_CONFIG_DIR_SUFFIX;
|
configPath = currentPathConfig;
|
||||||
#elif defined (Q_OS_LINUX)
|
|
||||||
# ifdef WITH_FLATHUB_CONFIG_PATH
|
|
||||||
LOG(INIT, "---> Using flatpak config path as the default path.")
|
|
||||||
configPath = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + QV2RAY_CONFIG_DIR_SUFFIX;
|
|
||||||
#else
|
#else
|
||||||
configPath = QDir::homePath() + "/.config/qv2ray" QV2RAY_CONFIG_DIR_SUFFIX;
|
configPath = configQv2ray;
|
||||||
# endif
|
|
||||||
#elif defined (__APPLE__)
|
|
||||||
configPath = QDir::homePath() + "/.qv2ray" QV2RAY_CONFIG_DIR_SUFFIX;
|
|
||||||
#else
|
|
||||||
LOG(INIT, "CANNOT CONTINUE because Qv2ray cannot determine the OS type.")
|
|
||||||
static_assert(false, "Qv2ray Cannot understand the enviornment");
|
|
||||||
#endif
|
#endif
|
||||||
bool mkpathResult = QDir().mkpath(configPath);
|
bool mkpathResult = QDir().mkpath(configPath);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user