summaryrefslogtreecommitdiffstats
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp39
1 files changed, 36 insertions, 3 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 9c7b977..2c5dc13 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,10 +1,43 @@
#include <QApplication>
-#include <QLabel>
+#include <QMessageBox>
+#include <QWebEngineUrlScheme>
+
+#include <notmuch.h>
+
+#include "config.h"
+#include "mainwindow.h"
int main(int argc, char *argv[])
{
+ // Custom schemes must be registered before QApplication is constructed.
+ {
+ QWebEngineUrlScheme scheme(QByteArrayLiteral("cid"));
+ scheme.setFlags(QWebEngineUrlScheme::SecureScheme
+ | QWebEngineUrlScheme::ContentSecurityPolicyIgnored);
+ QWebEngineUrlScheme::registerScheme(scheme);
+ }
+ {
+ QWebEngineUrlScheme scheme(QByteArrayLiteral("qtmaildir"));
+ scheme.setFlags(QWebEngineUrlScheme::SecureScheme);
+ QWebEngineUrlScheme::registerScheme(scheme);
+ }
+
QApplication app(argc, argv);
- QLabel label(QStringLiteral("qtmaildir"));
- label.show();
+ app.setApplicationName(QStringLiteral("qtmaildir"));
+ app.setOrganizationName(QStringLiteral("qtmaildir"));
+
+ // Fail loudly on an ABI mismatch rather than crashing later.
+ if (LIBNOTMUCH_MAJOR_VERSION < 5) {
+ QMessageBox::critical(nullptr, QObject::tr("qtmaildir"),
+ QObject::tr("libnotmuch 5 or newer is required."));
+ return 1;
+ }
+
+ Config config;
+ config.load(Config::defaultPath());
+
+ MainWindow window(config);
+ window.show();
+
return app.exec();
}