From 93433f74e2aa0c0af05b825911e0ca61413d0278 Mon Sep 17 00:00:00 2001 From: Nikolay Korotkiy Date: Mon, 7 Oct 2019 00:48:48 +0300 Subject: [PATCH] Add migration for existing configs --- src/control/XournalMain.cpp | 17 +++++++++++++++++ src/control/XournalMain.h | 1 + 2 files changed, 18 insertions(+) diff --git a/src/control/XournalMain.cpp b/src/control/XournalMain.cpp index ff55fb60..c1a46ece 100644 --- a/src/control/XournalMain.cpp +++ b/src/control/XournalMain.cpp @@ -6,6 +6,7 @@ #include #include +#include "filesystem.h" #include "control/jobs/ImageExport.h" #include "control/jobs/ProgressListener.h" #include "gui/GladeSearchpath.h" @@ -71,6 +72,21 @@ void XournalMain::initLocalisation() { std::cout.imbue(std::locale()); } +void XournalMain::migrateSettings() { + Path newConfigPath(g_get_user_config_dir()); + newConfigPath /= g_get_prgname(); + + if (!newConfigPath.exists()) { + Path oldConfigPath(g_get_home_dir()); + oldConfigPath /= ".xournalpp"; + + if (oldConfigPath.exists()) { + fs::create_directories(newConfigPath.str()); + fs::copy(oldConfigPath.str(), newConfigPath.str(), fs::copy_options::recursive); + } + } +} + void XournalMain::checkForErrorlog() { Path errorDir = Util::getCacheSubfolder(ERRORLOG_DIR); GDir* home = g_dir_open(errorDir.c_str(), 0, nullptr); @@ -260,6 +276,7 @@ auto XournalMain::exportPdf(const char* input, const char* output) -> int { auto XournalMain::run(int argc, char* argv[]) -> int { g_set_prgname("com.github.xournalpp.xournalpp"); this->initLocalisation(); + this->migrateSettings(); GError* error = nullptr; GOptionContext* context = g_option_context_new("FILE"); diff --git a/src/control/XournalMain.h b/src/control/XournalMain.h index edcdf68d..f0cfac86 100644 --- a/src/control/XournalMain.h +++ b/src/control/XournalMain.h @@ -31,6 +31,7 @@ public: private: static void initLocalisation(); + static void migrateSettings(); static void checkForErrorlog(); static void checkForEmergencySave(Control* control);