From 02f08cac853cb3df47ee141c05ead81225b2d240 Mon Sep 17 00:00:00 2001 From: Damien Caliste Date: Wed, 21 Jun 2017 15:36:28 +0200 Subject: [PATCH] [fingerterm] Don't copy anymore layouts to user config directory on startup. --- keyloader.cpp | 11 +++++++++++ main.cpp | 16 ---------------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/keyloader.cpp b/keyloader.cpp index d91d0fb..0b23f0e 100644 --- a/keyloader.cpp +++ b/keyloader.cpp @@ -49,6 +49,8 @@ bool KeyLoader::loadLayout(QString layout) } else { // load from file QFile f(iUtil->configPath() + "/" + layout + ".layout"); + if (!f.exists()) // fallback to installation directory + f.setFileName(QStringLiteral(DEPLOYMENT_PATH) + "/data/" + layout + ".layout"); ret = loadLayoutInternal(f); } @@ -197,6 +199,15 @@ const QStringList KeyLoader::availableLayouts() ret << s.left(s.lastIndexOf('.')); } + // Add also layouts from installation path. + QDir dataDir(QStringLiteral(DEPLOYMENT_PATH) + "/data"); + results = dataDir.entryList(filter, QDir::Files|QDir::Readable, QDir::Name); + foreach(QString s, results) { + QString layout = s.left(s.lastIndexOf('.')); + if (!ret.contains(layout)) + ret << layout; + } + return ret; } diff --git a/main.cpp b/main.cpp index 7a0bf60..783bd46 100644 --- a/main.cpp +++ b/main.cpp @@ -40,8 +40,6 @@ extern "C" { #include "version.h" #include "keyloader.h" -static void copyFilesFromPath(QString from, QString to); - int main(int argc, char *argv[]) { QString settings_path(QDir::homePath() + "/.config/FingerTerm"); @@ -131,9 +129,6 @@ int main(int argc, char *argv[]) QString startupErrorMsg; - // copy the default config files to the config dir if they don't already exist - copyFilesFromPath(QStringLiteral(DEPLOYMENT_PATH) + QDir::separator() + QStringLiteral("data"), util.configPath()); - KeyLoader keyLoader; keyLoader.setUtil(&util); bool ret = keyLoader.loadLayout(util.keyboardLayout()); @@ -179,14 +174,3 @@ int main(int argc, char *argv[]) return app.exec(); } - -static void copyFilesFromPath(QString from, QString to) -{ - QDir fromDir(from); - QDir toDir(to); - - // Copy files from fromDir to toDir, but don't overwrite existing ones - foreach (const QString &filename, fromDir.entryList(QDir::Files)) { - QFile::copy(fromDir.filePath(filename), toDir.filePath(filename)); - } -}