Forráskód Böngészése

Don't wipe each journal on each start

Christian Kamm 9 éve
szülő
commit
bea7241910
2 módosított fájl, 14 hozzáadás és 8 törlés
  1. 11 7
      src/gui/folderman.cpp
  2. 3 1
      src/gui/folderman.h

+ 11 - 7
src/gui/folderman.cpp

@@ -232,7 +232,7 @@ void FolderMan::setupFoldersHelper(QSettings &settings, AccountStatePtr account,
     foreach (const auto& folderAlias, settings.childGroups()) {
         FolderDefinition folderDefinition;
         if (FolderDefinition::load(settings, folderAlias, &folderDefinition)) {
-            Folder* f = addFolderInternal(std::move(folderDefinition), account.data());
+            Folder* f = addFolderInternal(std::move(folderDefinition), account.data(), false);
             if (f) {
                 f->journalDb()->setMayMigrateDbLocation(mayMigrateOldDb);
                 scheduleFolder(f);
@@ -413,7 +413,7 @@ Folder* FolderMan::setupFolderFromOldConfigFile(const QString &file, AccountStat
     folderDefinition.paused = paused;
     folderDefinition.ignoreHiddenFiles = ignoreHiddenFiles();
 
-    folder = addFolderInternal(folderDefinition, accountState);
+    folder = addFolderInternal(folderDefinition, accountState, false);
     if (folder) {
         QStringList blackList = settings.value( QLatin1String("blackList")).toStringList();
         if (!blackList.empty()) {
@@ -844,7 +844,7 @@ void FolderMan::slotFolderSyncFinished( const SyncResult& )
 
 Folder* FolderMan::addFolder(AccountState* accountState, const FolderDefinition& folderDefinition)
 {
-    auto folder = addFolderInternal(folderDefinition, accountState);
+    auto folder = addFolderInternal(folderDefinition, accountState, true);
 
     if(folder) {
         folder->saveToSettings();
@@ -854,7 +854,9 @@ Folder* FolderMan::addFolder(AccountState* accountState, const FolderDefinition&
     return folder;
 }
 
-Folder* FolderMan::addFolderInternal(FolderDefinition folderDefinition, AccountState* accountState)
+Folder* FolderMan::addFolderInternal(FolderDefinition folderDefinition,
+                                     AccountState* accountState,
+                                     bool wipeJournal)
 {
     auto alias = folderDefinition.alias;
     int count = 0;
@@ -865,9 +867,11 @@ Folder* FolderMan::addFolderInternal(FolderDefinition folderDefinition, AccountS
 
     auto folder = new Folder(folderDefinition, accountState, this );
 
-    if (!ensureJournalGone(folder->journalDb()->databaseFilePath())) {
-        delete folder;
-        return 0;
+    if (wipeJournal) {
+        if (!ensureJournalGone(folder->journalDb()->databaseFilePath())) {
+            delete folder;
+            return 0;
+        }
     }
 
     qDebug() << "Adding folder to Folder Map " << folder << folder->alias();

+ 3 - 1
src/gui/folderman.h

@@ -257,7 +257,9 @@ private:
     /** Adds a new folder, does not add it to the account settings and
      *  does not set an account on the new folder.
       */
-    Folder* addFolderInternal(FolderDefinition folderDefinition, AccountState* accountState);
+    Folder* addFolderInternal(FolderDefinition folderDefinition,
+                              AccountState* accountState,
+                              bool wipeJournal);
 
     /* unloads a folder object, does not delete it */
     void unloadFolder( Folder * );