diff options
Diffstat (limited to 'applications/mail/main.cpp')
-rw-r--r-- | applications/mail/main.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/applications/mail/main.cpp b/applications/mail/main.cpp new file mode 100644 index 00000000..1ff4effb --- /dev/null +++ b/applications/mail/main.cpp | |||
@@ -0,0 +1,43 @@ | |||
1 | #include <QApplication> | ||
2 | #include <QQmlApplicationEngine> | ||
3 | |||
4 | #include <QStandardPaths> | ||
5 | #include <KPackage/PackageLoader> | ||
6 | #include <QQuickImageProvider> | ||
7 | #include <QIcon> | ||
8 | |||
9 | #include <QDebug> | ||
10 | |||
11 | class KubeImageProvider : public QQuickImageProvider | ||
12 | { | ||
13 | public: | ||
14 | KubeImageProvider() | ||
15 | : QQuickImageProvider(QQuickImageProvider::Pixmap) | ||
16 | { | ||
17 | } | ||
18 | |||
19 | QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) Q_DECL_OVERRIDE | ||
20 | { | ||
21 | const auto icon = QIcon::fromTheme(id); | ||
22 | auto expectedSize = requestedSize; | ||
23 | if (!icon.availableSizes().contains(requestedSize) && !icon.availableSizes().isEmpty()) { | ||
24 | expectedSize = icon.availableSizes().first(); | ||
25 | } | ||
26 | const auto pixmap = icon.pixmap(expectedSize); | ||
27 | if (size) { | ||
28 | *size = pixmap.size(); | ||
29 | } | ||
30 | return pixmap; | ||
31 | } | ||
32 | }; | ||
33 | |||
34 | int main(int argc, char *argv[]) | ||
35 | { | ||
36 | QApplication app(argc, argv); | ||
37 | auto package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML", "org.kde.kube.mail"); | ||
38 | Q_ASSERT(package.isValid()); | ||
39 | QQmlApplicationEngine engine; | ||
40 | engine.addImageProvider(QLatin1String("kube"), new KubeImageProvider); | ||
41 | engine.load(QUrl::fromLocalFile(package.filePath("mainscript"))); | ||
42 | return app.exec(); | ||
43 | } | ||