From fd66b9eda25cf9a4dd986081b1dbd14fd806b243 Mon Sep 17 00:00:00 2001
From: Akira Ohgaki <akiraohgaki@gmail.com>
Date: Mon, 5 Jun 2017 11:48:50 +0900
Subject: [PATCH] Convert path strings

---
 app/configs/install_types.json     | 10 +++++-----
 app/src/handlers/confighandler.cpp | 16 ++++++++++++++++
 2 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/app/configs/install_types.json b/app/configs/install_types.json
index 335de22..87e9b33 100644
--- a/app/configs/install_types.json
+++ b/app/configs/install_types.json
@@ -6,27 +6,27 @@
     },
     "downloads": {
         "name": "Downloads",
-        "destination": "$HOME/Downloads",
+        "destination": "$XDG_DOWNLOAD_DIR",
         "generic_destination": "$APP_DATA/downloads"
     },
     "documents": {
         "name": "Documents",
-        "destination": "$HOME/Documents",
+        "destination": "$XDG_DOCUMENTS_DIR",
         "generic_destination": "$APP_DATA/documents"
     },
     "pictures": {
         "name": "Pictures",
-        "destination": "$HOME/Pictures",
+        "destination": "$XDG_PICTURES_DIR",
         "generic_destination": "$APP_DATA/pictures"
     },
     "music": {
         "name": "Music",
-        "destination": "$HOME/Music",
+        "destination": "$XDG_MUSIC_DIR",
         "generic_destination": "$APP_DATA/music"
     },
     "videos": {
         "name": "Videos",
-        "destination": "$HOME/Videos",
+        "destination": "$XDG_VIDEOS_DIR",
         "generic_destination": "$APP_DATA/videos"
     },
     "wallpapers": {
diff --git a/app/src/handlers/confighandler.cpp b/app/src/handlers/confighandler.cpp
index bc75e9f..7427160 100644
--- a/app/src/handlers/confighandler.cpp
+++ b/app/src/handlers/confighandler.cpp
@@ -1,6 +1,7 @@
 #include "confighandler.h"
 
 #include <QStringList>
+#include <QStandardPaths>
 
 #include "qtlib_dir.h"
 
@@ -50,6 +51,21 @@ QString ConfigHandler::convertPathString(const QString &path)
     if (newPath.contains("$HOME")) {
         newPath.replace("$HOME", qtlib::Dir::homePath());
     }
+    else if (newPath.contains("$XDG_DOCUMENTS_DIR")) {
+        newPath.replace("$XDG_DOCUMENTS_DIR", QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation));
+    }
+    else if (newPath.contains("$XDG_DOWNLOAD_DIR")) {
+        newPath.replace("$XDG_DOWNLOAD_DIR", QStandardPaths::writableLocation(QStandardPaths::DownloadLocation));
+    }
+    else if (newPath.contains("$XDG_PICTURES_DIR")) {
+        newPath.replace("$XDG_PICTURES_DIR", QStandardPaths::writableLocation(QStandardPaths::PicturesLocation));
+    }
+    else if (newPath.contains("$XDG_MUSIC_DIR")) {
+        newPath.replace("$XDG_MUSIC_DIR", QStandardPaths::writableLocation(QStandardPaths::MusicLocation));
+    }
+    else if (newPath.contains("$XDG_VIDEOS_DIR")) {
+        newPath.replace("$XDG_VIDEOS_DIR", QStandardPaths::writableLocation(QStandardPaths::MoviesLocation));
+    }
     else if (newPath.contains("$XDG_DATA_HOME")) {
         newPath.replace("$XDG_DATA_HOME", qtlib::Dir::genericDataPath());
     }
-- 
GitLab