summaryrefslogtreecommitdiffstats
path: root/applications/kube-mail/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'applications/kube-mail/main.cpp')
-rw-r--r--applications/kube-mail/main.cpp29
1 files changed, 28 insertions, 1 deletions
diff --git a/applications/kube-mail/main.cpp b/applications/kube-mail/main.cpp
index 0e9556c9..5efe14ff 100644
--- a/applications/kube-mail/main.cpp
+++ b/applications/kube-mail/main.cpp
@@ -3,14 +3,41 @@
3 3
4#include <QStandardPaths> 4#include <QStandardPaths>
5#include <KPackage/PackageLoader> 5#include <KPackage/PackageLoader>
6#include <QQuickImageProvider>
7#include <QIcon>
6 8
7#include <QDebug> 9#include <QDebug>
8 10
11class KubeImageProvider : public QQuickImageProvider
12{
13public:
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
9int main(int argc, char *argv[]) 34int main(int argc, char *argv[])
10{ 35{
11 QGuiApplication app(argc, argv); 36 QGuiApplication app(argc, argv);
12 auto package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML", "org.kde.kube.mail"); 37 auto package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML", "org.kde.kube.mail");
13 Q_ASSERT(package.isValid()); 38 Q_ASSERT(package.isValid());
14 QQmlApplicationEngine engine(QUrl::fromLocalFile(package.filePath("mainscript"))); 39 QQmlApplicationEngine engine;
40 engine.addImageProvider(QLatin1String("kube"), new KubeImageProvider);
41 engine.load(QUrl::fromLocalFile(package.filePath("mainscript")));
15 return app.exec(); 42 return app.exec();
16} 43}