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 #include #include +#include +#include +#include #include = 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 =3D dataMigrator.saveLocation("data",= "granatier"); + const QString targetBasePath =3D 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 =3D sourceDir.entryList(QDir::Files | QD= ir::Dirs | QDir::NoDotAndDotDot | QDir::NoSymLinks); + QDir().mkpath(targetBasePath + dataDir); + foreach (const QString &fileName, fileNames) + { + targetFilePath =3D 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"))); =20