Add an option to change qqc2 style

This commit is contained in:
woblight
2018-07-12 18:59:07 +02:00
parent 1899e107cc
commit a0be5f7c0d
11 changed files with 177 additions and 63 deletions
+25 -2
View File
@@ -20,9 +20,16 @@
#include "addon.h"
#include <QIcon>
#include <QQmlContext>
#include <QQuickStyle>
#include <QInputDialog>
#include <QSettings>
#include <QProcess>
int main(int argc, char *argv[])
{
int res;
qmlClearTypeRegistrations();
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);
app.setApplicationDisplayName("Git Addons Manager");
@@ -30,8 +37,18 @@ int main(int argc, char *argv[])
QCoreApplication::setApplicationName("Git Addons Manager");
QIcon::setThemeName("breeze");
QQmlApplicationEngine engine;
bool ok;
QSettings setts;
QStringList styles = QQuickStyle::availableStyles();
QString style = setts.value("style").toString();
if (style.isNull())
style = QInputDialog::getItem(nullptr, "Choose a style", "", styles, styles.indexOf(QQuickStyle::name()), false, &ok);
QQuickStyle::setStyle(style);
if (ok) {
setts.setValue("style", style);
setts.sync();
}
qmlRegisterSingletonType<Control>("GitAddonsManager.engine",1,0,"Engine",[](QQmlEngine *, QJSEngine *)->QObject*{
return Control::instance();
});
@@ -40,6 +57,12 @@ int main(int argc, char *argv[])
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
QObject::connect(Control::instance(), &Control::styleChanged,[&setts](const QString &style){
setts.setValue("style", style);
});
return app.exec();
res = app.exec();
if (res == 1)
QProcess().startDetached(app.arguments()[0],app.arguments().mid(1));
return res;
}