aboutsummaryrefslogtreecommitdiff
path: root/net/arrowdl/files/patch-src_core_settings.cpp
blob: 8747ca9a6e1e257fba94f99f13d579b55fba6ebc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
--- src/core/settings.cpp.orig	2025-03-23 11:56:15 UTC
+++ src/core/settings.cpp
@@ -20,6 +20,7 @@
 
 #include <QtCore/QCoreApplication>
 #include <QtCore/QDebug>
+#include <QtCore/QDir>
 #include <QtCore/QStandardPaths>
 #include <QtCore/QVariant>
 
@@ -34,8 +35,11 @@ static QString defaultStreamHost() {
     return DEFAULT_STREAM_HOST_LIST.join(STREAM_HOST_SEPARATOR);
 }
 
-static QString defaultTorrentShareFolder() {
-    return QStandardPaths::writableLocation(QStandardPaths::DownloadLocation);
+static QString writableFolder(QStandardPaths::StandardLocation loc) {
+    const auto path = QStandardPaths::writableLocation(loc);
+    const QDir dir(path);
+    if (!dir.exists()) dir.mkpath(".");
+    return path;
 }
 
 
@@ -90,7 +94,8 @@ Settings::Settings(QObject *parent) : AbstractSettings
     addDefaultSettingBool(REGISTRY_REMOVE_COMPLETED, false);
     addDefaultSettingBool(REGISTRY_REMOVE_CANCELED, false);
     addDefaultSettingBool(REGISTRY_REMOVE_PAUSED, false);
-    addDefaultSettingString(REGISTRY_DATABASE, QString("%0/queue.json").arg(qApp->applicationDirPath()));
+    addDefaultSettingString(REGISTRY_DATABASE, QString("%0/queue.json")
+      .arg(writableFolder(QStandardPaths::AppDataLocation)));
     addDefaultSettingString(REGISTRY_HTTP_USER_AGENT, httpUserAgents().at(0));
     addDefaultSettingBool(REGISTRY_HTTP_REFERRER_ON, false);
     addDefaultSettingString(REGISTRY_HTTP_REFERRER, QLatin1String("https://www.example.com/"));
@@ -140,7 +145,7 @@ Settings::Settings(QObject *parent) : AbstractSettings
     // Tab Torrent
     addDefaultSettingBool(REGISTRY_TORRENT_ENABLED, true);
     addDefaultSettingBool(REGISTRY_TORRENT_SHARED, false);
-    addDefaultSettingString(REGISTRY_TORRENT_DIR, defaultTorrentShareFolder());
+    addDefaultSettingString(REGISTRY_TORRENT_DIR, writableFolder(QStandardPaths::DownloadLocation));
     addDefaultSettingString(REGISTRY_TORRENT_PEERS, QLatin1String(""));
     addDefaultSettingString(REGISTRY_TORRENT_ADVANCED, QLatin1String(""));