From da64b8c12f618fb908462aef6e6cc9a00b70fc6e Mon Sep 17 00:00:00 2001 From: Le Tan Date: Sun, 24 Sep 2017 09:46:30 +0800 Subject: [PATCH] add config confirm_reload_folder to check whether prompt for uer when reloading folder --- src/main.cpp | 2 ++ src/resources/vnote.ini | 3 +++ src/vconfigmanager.cpp | 3 +++ src/vconfigmanager.h | 24 ++++++++++++++++++++++++ src/vdirectorytree.cpp | 37 ++++++++++++++++++++++++++++++------- 5 files changed, 62 insertions(+), 7 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index af14e446..98db9020 100644 --- a/src/main.cpp +++ b/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()); diff --git a/src/resources/vnote.ini b/src/resources/vnote.ini index fb72cbd9..d5462917 100644 --- a/src/resources/vnote.ini +++ b/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 diff --git a/src/vconfigmanager.cpp b/src/vconfigmanager.cpp index 991b72a2..62bbf0e4 100644 --- a/src/vconfigmanager.cpp +++ b/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() diff --git a/src/vconfigmanager.h b/src/vconfigmanager.h index 862d16e9..85402787 100644 --- a/src/vconfigmanager.h +++ b/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 diff --git a/src/vdirectorytree.cpp b/src/vdirectorytree.cpp index 6f51f7f7..ae652323 100644 --- a/src/vdirectorytree.cpp +++ b/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 %2?") .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 %2?") .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)