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

This commit is contained in:
Le Tan 2017-09-24 09:46:30 +08:00
parent d20dc4a0b0
commit da64b8c12f
5 changed files with 62 additions and 7 deletions

View File

@ -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());

View File

@ -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

View File

@ -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()

View File

@ -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

View File

@ -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)