Allow portable configuration via `QtUtilities::getSettings()`

See https://github.com/Martchus/tageditor/issues/88
This commit is contained in:
Martchus 2022-08-20 16:25:07 +02:00
parent 217942e946
commit eb1b73f4be
3 changed files with 8 additions and 14 deletions

View File

@ -122,7 +122,7 @@ include(BasicConfig)
set(CONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES
"${CONFIGURATION_PACKAGE_SUFFIX}"
CACHE STRING "sets the suffix for qtutilities")
find_package(qtutilities${CONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES} 6.0.0 REQUIRED)
find_package(qtutilities${CONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES} 6.8.0 REQUIRED)
use_qt_utilities()
# find passwordfile

View File

@ -33,15 +33,9 @@ int runWidgetsGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs,
QApplication application(argc, argv);
// restore Qt settings
QtSettings qtSettings;
QSettings settings(QSettings::IniFormat, QSettings::UserScope, QStringLiteral(PROJECT_NAME));
// move old config to new location
const QString oldConfig
= QSettings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), QApplication::applicationName()).fileName();
QFile::rename(oldConfig, settings.fileName()) || QFile::remove(oldConfig);
settings.sync();
qtSettings.restore(settings);
auto qtSettings = QtSettings();
auto settings = QtUtilities::getSettings(QStringLiteral(PROJECT_NAME));
qtSettings.restore(*settings);
qtSettings.apply();
// apply settings specified via command line args
@ -49,7 +43,7 @@ int runWidgetsGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs,
LOAD_QT_TRANSLATIONS;
// init widgets GUI
MainWindow w(settings, &qtSettings);
auto w = MainWindow(*settings, &qtSettings);
w.show();
if (!file.isEmpty()) {
w.openFile(file);

View File

@ -79,14 +79,14 @@ int runQuickGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs, c
#endif
// load settings from configuration file
QSettings settings(QSettings::IniFormat, QSettings::UserScope, QStringLiteral(PROJECT_NAME));
auto settings = QtUtilities::getSettings(QStringLiteral(PROJECT_NAME));
// load translations
LOAD_QT_TRANSLATIONS;
// init Quick GUI
QQmlApplicationEngine engine;
Controller controller(settings, file);
auto engine = QQmlApplicationEngine();
auto controller = Controller(*settings, file);
#ifdef Q_OS_ANDROID
registerControllerForAndroid(&controller);
#endif