aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/QuickMedia.cpp5
-rw-r--r--src/Storage.cpp27
2 files changed, 30 insertions, 2 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp
index 9b982a1..e6c642d 100644
--- a/src/QuickMedia.cpp
+++ b/src/QuickMedia.cpp
@@ -734,6 +734,11 @@ namespace QuickMedia {
abort();
}
+ if(create_directory_recursive(get_storage_dir()) != 0) {
+ show_notification("QuickMedia", "Failed to create storage directory", Urgency::CRITICAL);
+ abort();
+ }
+
//if(create_directory_recursive(get_storage_dir().join("file-manager")) != 0) {
// show_notification("QuickMedia", "Failed to create file-manager directory", Urgency::CRITICAL);
// abort();
diff --git a/src/Storage.cpp b/src/Storage.cpp
index 375be57..4baca49 100644
--- a/src/Storage.cpp
+++ b/src/Storage.cpp
@@ -82,12 +82,35 @@ namespace QuickMedia {
return homeDir;
}
+ static Path xdg_config_home;
+ static Path xdg_cache_home;
+
Path get_storage_dir() {
- return get_home_dir().join(".config").join("quickmedia");
+ if(xdg_config_home.data.empty()) {
+ const char *xdg_config_home_p = getenv("XDG_CONFIG_HOME");
+ if(xdg_config_home_p)
+ xdg_config_home = xdg_config_home_p;
+ else
+ xdg_config_home = get_home_dir().join(".config");
+ }
+
+ Path storage_dir = xdg_config_home;
+ storage_dir.join("quickmedia");
+ return storage_dir;
}
Path get_cache_dir() {
- return get_home_dir().join(".cache").join("quickmedia");
+ if(xdg_cache_home.data.empty()) {
+ const char *xdg_cache_home_p = getenv("XDG_CACHE_HOME");
+ if(xdg_cache_home_p)
+ xdg_cache_home = xdg_cache_home_p;
+ else
+ xdg_cache_home = get_home_dir().join(".cache");
+ }
+
+ Path cache_dir = xdg_cache_home;
+ cache_dir.join("quickmedia");
+ return cache_dir;
}
int get_cookies_filepath(Path &path, const std::string &plugin_name) {