[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [granatier] src: migrate old data to new XDG_DATA_DIR location
From:       Mathias Kraus <k.hias () gmx ! de>
Date:       2015-03-02 21:09:02
Message-ID: E1YSXaI-0002jn-Jf () scm ! kde ! org
[Download RAW message or body]

Git commit af66d902db932262e8e69a2a2c0e6c302bf9143d by Mathias Kraus.
Committed on 01/03/2015 at 22:31.
Pushed by mkraus into branch 'master'.

migrate old data to new XDG_DATA_DIR location

M  +35   -3    src/main.cpp

http://commits.kde.org/granatier/af66d902db932262e8e69a2a2c0e6c302bf9143d

diff --git a/src/main.cpp b/src/main.cpp
index ab7cf2a..ce0f780 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -24,16 +24,48 @@
 #include <KLocalizedString>
 #include <QCommandLineParser>
 #include <kdelibs4configmigrator.h>
+#include <kdelibs4migration.h>
+#include <QStandardPaths>
+#include <QDir>
 #include <KDBusService>
 
 int main(int argc, char** argv)
 {
-    QApplication app(argc, argv);
-
     Kdelibs4ConfigMigrator migrate(QStringLiteral("granatier"));
     migrate.setConfigFiles(QStringList() << QStringLiteral("granatierrc"));
     migrate.setUiFiles(QStringList() << QStringLiteral("granatierui.rc"));
-    migrate.migrate();
+    if(migrate.migrate())
+    {
+        // migrate old data
+        Kdelibs4Migration dataMigrator;
+        const QString sourceBasePath = dataMigrator.saveLocation("data", \
"granatier"); +        const QString targetBasePath = \
QStandardPaths::writableLocation(QStandardPaths::DataLocation) + \
QStringLiteral("/granatier/"); +        QString targetFilePath;
+        
+        QStringList dataDirs;
+        dataDirs.append("arenas");
+        dataDirs.append("players");
+        dataDirs.append("themes");
+
+        // migrate arenas, players and themes
+        foreach(const QString &dataDir, dataDirs)
+        {
+            QDir sourceDir(sourceBasePath + dataDir);
+            if(!sourceDir.exists()) continue;
+            QStringList fileNames = sourceDir.entryList(QDir::Files | QDir::Dirs | \
QDir::NoDotAndDotDot | QDir::NoSymLinks); +            QDir().mkpath(targetBasePath + \
dataDir); +            foreach (const QString &fileName, fileNames)
+            {
+                targetFilePath = targetBasePath + dataDir + QLatin1Char('/') + \
fileName; +                if(!QFile::exists(targetFilePath))
+                {
+                    QFile::copy(sourceBasePath + dataDir + QLatin1Char('/') + \
fileName, targetFilePath); +                }
+            }
+        }
+    }
+
+    QApplication app(argc, argv);
 
     app.setWindowIcon(QIcon::fromTheme(QLatin1String("granatier")));
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic