Browse Source

add config confirm_reload_folder to check whether prompt for uer when reloading folder

Le Tan 8 years ago
parent
commit
da64b8c12f
5 changed files with 62 additions and 7 deletions
  1. 2 0
      src/main.cpp
  2. 3 0
      src/resources/vnote.ini
  3. 3 0
      src/vconfigmanager.cpp
  4. 24 0
      src/vconfigmanager.h
  5. 30 7
      src/vdirectorytree.cpp

+ 2 - 0
src/main.cpp

@@ -13,6 +13,7 @@
 #include "vconfigmanager.h"
 
 VConfigManager *g_config;
+VMainWindow *g_mainWin;
 
 #if defined(QT_NO_DEBUG)
 QFile g_logFile;
@@ -168,6 +169,7 @@ int main(int argc, char *argv[])
     }
 
     VMainWindow w(&guard);
+    g_mainWin = &w;
     QString style = VUtils::readFileFromDisk(":/resources/vnote.qss");
     if (!style.isEmpty()) {
         VUtils::processStyle(style, w.getPalette());

+ 3 - 0
src/resources/vnote.ini

@@ -116,6 +116,9 @@ recycle_bin_folder=_v_recycle_bin
 ; Confirm before deleting unused images
 confirm_images_clean_up=true
 
+; Confirm before reloading folder from disk
+confirm_reload_folder=true
+
 [session]
 tools_dock_checked=true
 

+ 3 - 0
src/vconfigmanager.cpp

@@ -210,6 +210,9 @@ void VConfigManager::initialize()
 
     m_confirmImagesCleanUp = getConfigFromSettings("global",
                                                    "confirm_images_clean_up").toBool();
+
+    m_confirmReloadFolder = getConfigFromSettings("global",
+                                                  "confirm_reload_folder").toBool();
 }
 
 void VConfigManager::readPredefinedColorsFromSettings()

+ 24 - 0
src/vconfigmanager.h

@@ -274,6 +274,9 @@ public:
     bool getConfirmImagesCleanUp() const;
     void setConfirmImagesCleanUp(bool p_enabled);
 
+    bool getConfirmReloadFolder() const;
+    void setConfirmReloadFolder(bool p_enabled);
+
     // Return the configured key sequence of @p_operation.
     // Return empty if there is no corresponding config.
     QString getShortcutKeySequence(const QString &p_operation) const;
@@ -551,6 +554,9 @@ private:
     // Confirm before deleting unused images.
     bool m_confirmImagesCleanUp;
 
+    // Confirm before reloading folder from disk.
+    bool m_confirmReloadFolder;
+
     // The name of the config file in each directory, obsolete.
     // Use c_dirConfigFile instead.
     static const QString c_obsoleteDirConfigFile;
@@ -1444,4 +1450,22 @@ inline void VConfigManager::setConfirmImagesCleanUp(bool p_enabled)
                         "confirm_images_clean_up",
                         m_confirmImagesCleanUp);
 }
+
+inline bool VConfigManager::getConfirmReloadFolder() const
+{
+    return m_confirmReloadFolder;
+}
+
+inline void VConfigManager::setConfirmReloadFolder(bool p_enabled)
+{
+    if (m_confirmReloadFolder == p_enabled) {
+        return;
+    }
+
+    m_confirmReloadFolder = p_enabled;
+    setConfigToSettings("global",
+                        "confirm_reload_folder",
+                        m_confirmReloadFolder);
+}
+
 #endif // VCONFIGMANAGER_H

+ 30 - 7
src/vdirectorytree.cpp

@@ -8,6 +8,9 @@
 #include "utils/vutils.h"
 #include "veditarea.h"
 #include "vconfigmanager.h"
+#include "vmainwindow.h"
+
+extern VMainWindow *g_mainWin;
 
 extern VConfigManager *g_config;
 extern VNote *g_vnote;
@@ -521,6 +524,7 @@ void VDirectoryTree::reloadFromDisk()
         return;
     }
 
+    QString msg;
     QString info;
     VDirectory *curDir = NULL;
     QTreeWidgetItem *curItem = currentItem();
@@ -529,20 +533,35 @@ void VDirectoryTree::reloadFromDisk()
         curDir = getVDirectory(curItem);
         info = tr("Are you sure to reload folder <span style=\"%1\">%2</span>?")
                  .arg(g_config->c_dataTextStyle).arg(curDir->getName());
+        msg = tr("Successfully reloaded folder %1 from disk").arg(curDir->getName());
     } else {
         // Reload notebook.
         info = tr("Are you sure to reload notebook <span style=\"%1\">%2</span>?")
                  .arg(g_config->c_dataTextStyle).arg(m_notebook->getName());
+        msg = tr("Successfully reloaded notebook %1 from disk").arg(m_notebook->getName());
     }
 
-    int ret = VUtils::showMessage(QMessageBox::Information, tr("Information"),
-                                  info,
-                                  tr("VNote will close all the related notes before reload."),
-                                  QMessageBox::Ok | QMessageBox::Cancel,
-                                  QMessageBox::Ok, this);
+    if (g_config->getConfirmReloadFolder()) {
+        int ret = VUtils::showMessage(QMessageBox::Information, tr("Information"),
+                                      info,
+                                      tr("VNote will close all the related notes before reload."),
+                                      QMessageBox::Ok | QMessageBox::YesToAll | QMessageBox::Cancel,
+                                      QMessageBox::Ok,
+                                      this);
+        switch (ret) {
+        case QMessageBox::YesToAll:
+            g_config->setConfirmReloadFolder(false);
+            // Fall through.
 
-    if (ret != QMessageBox::Ok) {
-        return;
+        case QMessageBox::Ok:
+            break;
+
+        case QMessageBox::Cancel:
+            return;
+
+        default:
+            return;
+        }
     }
 
     m_notebookCurrentDirMap.remove(m_notebook);
@@ -588,6 +607,10 @@ void VDirectoryTree::reloadFromDisk()
 
         updateDirectoryTree();
     }
+
+    if (!msg.isEmpty()) {
+        g_mainWin->showStatusMessage(msg);
+    }
 }
 
 void VDirectoryTree::copySelectedDirectories(bool p_cut)