Handle errors when restoring/saving settings
This commit is contained in:
parent
a19424a05d
commit
37a6d14dc5
|
@ -196,7 +196,7 @@ if (WIDGETS_GUI OR QUICK_GUI)
|
|||
set(CONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES
|
||||
"${CONFIGURATION_PACKAGE_SUFFIX}"
|
||||
CACHE STRING "sets the suffix for qtutilities")
|
||||
find_package(qtutilities${CONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES} 6.8.0 REQUIRED)
|
||||
find_package(qtutilities${CONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES} 6.11.0 REQUIRED)
|
||||
use_qt_utilities()
|
||||
endif ()
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@ void restore()
|
|||
auto s = QtUtilities::getSettings(QStringLiteral(PROJECT_NAME));
|
||||
auto &settings = *s;
|
||||
auto &v = values();
|
||||
v.error = QtUtilities::errorMessageForSettings(settings);
|
||||
|
||||
settings.beginGroup(QStringLiteral("editor"));
|
||||
switch (settings.value(QStringLiteral("adoptfields"), static_cast<int>(v.editor.adoptFields)).toInt()) {
|
||||
|
@ -221,7 +222,7 @@ void save()
|
|||
{
|
||||
auto s = QtUtilities::getSettings(QStringLiteral(PROJECT_NAME));
|
||||
auto &settings = *s;
|
||||
const auto &v = values();
|
||||
auto &v = values();
|
||||
|
||||
settings.beginGroup(QStringLiteral("editor"));
|
||||
settings.setValue(QStringLiteral("adoptfields"), static_cast<int>(v.editor.adoptFields));
|
||||
|
@ -311,6 +312,9 @@ void save()
|
|||
settings.endGroup();
|
||||
|
||||
v.qt.save(settings);
|
||||
|
||||
settings.sync();
|
||||
v.error = QtUtilities::errorMessageForSettings(settings);
|
||||
}
|
||||
|
||||
} // namespace Settings
|
||||
|
|
|
@ -109,6 +109,7 @@ struct RenamingUtility {
|
|||
};
|
||||
|
||||
struct Settings {
|
||||
QString error;
|
||||
Editor editor;
|
||||
FileBrowser fileBrowser;
|
||||
TagProcessing tagPocessing;
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include <qtutilities/settingsdialog/qtsettings.h>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QMessageBox>
|
||||
|
||||
ENABLE_QT_RESOURCES_OF_STATIC_DEPENDENCIES
|
||||
|
||||
|
@ -20,6 +21,19 @@ using namespace CppUtilities;
|
|||
|
||||
namespace QtGui {
|
||||
|
||||
static void showSettingsError(const QString &settingsError)
|
||||
{
|
||||
if (!settingsError.isEmpty()) {
|
||||
QMessageBox::critical(nullptr, QCoreApplication::applicationName(), settingsError);
|
||||
}
|
||||
}
|
||||
|
||||
static void saveSettings()
|
||||
{
|
||||
Settings::save();
|
||||
showSettingsError(Settings::values().error);
|
||||
}
|
||||
|
||||
int runWidgetsGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs, const QString &path, bool launchRenamingUtility)
|
||||
{
|
||||
SET_QT_APPLICATION_INFO;
|
||||
|
@ -27,12 +41,14 @@ int runWidgetsGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs,
|
|||
Settings::restore();
|
||||
|
||||
// apply settings specified via command line args after the settings chosen in the GUI to give the CLI options precedence
|
||||
Settings::values().qt.apply();
|
||||
qtConfigArgs.applySettings(Settings::values().qt.hasCustomFont());
|
||||
auto &settings = Settings::values();
|
||||
settings.qt.apply();
|
||||
qtConfigArgs.applySettings(settings.qt.hasCustomFont());
|
||||
|
||||
LOAD_QT_TRANSLATIONS;
|
||||
|
||||
QObject::connect(&application, &QCoreApplication::aboutToQuit, &Settings::save);
|
||||
showSettingsError(settings.error);
|
||||
QObject::connect(&application, &QCoreApplication::aboutToQuit, &saveSettings);
|
||||
|
||||
if (launchRenamingUtility) {
|
||||
RenameFilesDialog window;
|
||||
|
|
Loading…
Reference in New Issue