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)