summaryrefslogtreecommitdiff
path: root/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/main.cpp b/main.cpp
new file mode 100644
index 0000000..a388f27
--- /dev/null
+++ b/main.cpp
@@ -0,0 +1,54 @@
+// SPDX-License-Identifier: Unlicense
+
+#include <exception>
+
+#include <QApplication>
+#include <QCommandLineParser>
+#include <QIcon>
+#include <QObject>
+#include <QQmlApplicationEngine>
+#include <QQmlContext>
+#include <QQmlEngine>
+#include <QTextCodec>
+#include <QTextStream>
+#include <QTranslator>
+#include <QtDebug>
+
+#include <io.h>
+
+int main(int argc, char *argv[])
+try {
+ if (QIcon::themeName().isEmpty()) {
+ QIcon::setThemeSearchPaths(QIcon::themeSearchPaths() << ":/icons");;
+ QIcon::setThemeName("breeze");
+ }
+
+ QApplication app{argc, argv};
+ app.setOrganizationName("fuzbal");
+ app.setApplicationName("fuzbal");
+ app.setApplicationVersion(GIT_VERSION);
+
+ QTranslator translator;
+ translator.load(QLocale(), "fuzbal", "_", ":/i18n");
+ app.installTranslator(&translator);
+
+ QCommandLineParser parser;
+ parser.setApplicationDescription("Friendly Usable Zero-Bullshit Annotator & Labeler");
+ parser.addHelpOption();
+ parser.addVersionOption();
+ parser.process(app);
+
+ IO io;
+
+ QQmlApplicationEngine engine;
+ engine.rootContext()->setContextProperty("io", &io);
+ engine.load(QUrl{"qrc:/main.qml"});
+
+ return app.exec();
+} catch (std::exception &e) {
+ qCritical() << "critical error:" << e.what();
+ return 1;
+} catch (...) {
+ qCritical() << "critical error";
+ return 1;
+}