From c904fb568e8e8207594066d4131bd17c88194de0 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Sun, 13 Apr 2014 11:30:38 +0200 Subject: [PATCH] Updater now keeps "portable" settings throughout the update. --- src/updater/main.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/updater/main.cpp b/src/updater/main.cpp index b1d5946be..300054e77 100644 --- a/src/updater/main.cpp +++ b/src/updater/main.cpp @@ -29,7 +29,9 @@ #include -bool removeDir(const QString & dirName, const QStringList &exception_file_list = QStringList()) { +bool removeDir(const QString & dirName, + const QStringList &exception_file_list = QStringList(), + const QStringList &exception_folder_list = QStringList()) { bool result = true; QDir dir(dirName); @@ -37,7 +39,9 @@ bool removeDir(const QString & dirName, const QStringList &exception_file_list = foreach (QFileInfo info, dir.entryInfoList(QDir::NoDotAndDotDot | QDir::System | QDir::Hidden | QDir::AllDirs | QDir::Files, QDir::DirsFirst)) { if (info.isDir()) { - result &= removeDir(info.absoluteFilePath(), exception_file_list); + if (!exception_folder_list.contains(info.fileName())) { + result &= removeDir(info.absoluteFilePath(), exception_file_list); + } } else if (!exception_file_list.contains(info.fileName())) { result &= QFile::remove(info.absoluteFilePath()); @@ -166,7 +170,9 @@ int main(int argc, char *argv[]) { qDebug("Old temporary files removed."); - if (!removeDir(rssguard_path, QStringList() << extractor)) { + if (!removeDir(rssguard_path, + QStringList() << extractor, + QStringList() << "data")) { qDebug("Full cleanup of actual RSS Guard installation failed."); qDebug("Some files from old installation may persist."); }