passwordmanager/gui/initiategui.cpp

63 lines
1.7 KiB
C++
Raw Normal View History

2015-09-06 20:33:09 +02:00
#include "./initiategui.h"
2015-04-22 19:30:09 +02:00
2015-12-05 22:52:00 +01:00
#include "./gui/mainwindow.h"
2015-12-08 08:37:18 +01:00
#include "resources/config.h"
2019-06-16 15:56:34 +02:00
#include "resources/qtconfig.h"
2015-04-22 19:30:09 +02:00
2017-05-01 03:26:04 +02:00
#include <qtutilities/resources/importplugin.h>
2015-09-01 20:18:13 +02:00
#include <qtutilities/resources/qtconfigarguments.h>
2015-04-22 19:30:09 +02:00
#include <qtutilities/resources/resources.h>
2016-08-16 00:37:17 +02:00
#include <qtutilities/settingsdialog/qtsettings.h>
2015-04-22 19:30:09 +02:00
#include <passwordfile/util/openssl.h>
2015-04-22 19:30:09 +02:00
#include <QApplication>
2017-02-20 19:55:48 +01:00
#include <QFile>
2017-05-01 03:26:04 +02:00
#include <QSettings>
2015-04-22 19:30:09 +02:00
2019-06-10 22:44:59 +02:00
using namespace CppUtilities;
using namespace QtUtilities;
using namespace Util;
2015-09-01 20:18:13 +02:00
2015-04-22 19:30:09 +02:00
namespace QtGui {
2015-09-01 20:18:13 +02:00
int runWidgetsGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs, const QString &file)
2015-04-22 19:30:09 +02:00
{
2015-08-25 19:14:49 +02:00
SET_QT_APPLICATION_INFO;
// init OpenSSL
OpenSsl::init();
2015-04-22 19:30:09 +02:00
// init application
QApplication application(argc, argv);
2016-08-16 00:37:17 +02:00
// restore Qt settings
QtSettings qtSettings;
2017-02-20 19:55:48 +01:00
QSettings settings(QSettings::IniFormat, QSettings::UserScope, QStringLiteral(PROJECT_NAME));
2017-02-20 19:55:48 +01:00
// move old config to new location
2017-05-01 03:26:04 +02:00
const QString oldConfig
= QSettings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), QApplication::applicationName()).fileName();
2017-02-20 19:55:48 +01:00
QFile::rename(oldConfig, settings.fileName()) || QFile::remove(oldConfig);
settings.sync();
2016-08-16 00:37:17 +02:00
qtSettings.restore(settings);
qtSettings.apply();
2015-09-01 20:18:13 +02:00
// apply settings specified via command line args
2016-08-27 15:19:49 +02:00
qtConfigArgs.applySettings(qtSettings.hasCustomFont());
2015-08-25 19:14:49 +02:00
LOAD_QT_TRANSLATIONS;
2015-04-22 19:30:09 +02:00
// init widgets GUI
2016-08-16 00:37:17 +02:00
MainWindow w(settings, &qtSettings);
2015-04-22 19:30:09 +02:00
w.show();
2017-05-01 03:26:04 +02:00
if (!file.isEmpty()) {
2015-04-22 19:30:09 +02:00
w.openFile(file);
}
2015-04-22 19:30:09 +02:00
// start event loop
QObject::connect(&application, &QCoreApplication::aboutToQuit, &OpenSsl::clean);
return application.exec();
2015-04-22 19:30:09 +02:00
}
2017-09-29 17:17:12 +02:00
} // namespace QtGui