diff options
Diffstat (limited to 'applications/kube-mail/main.cpp')
-rw-r--r-- | applications/kube-mail/main.cpp | 29 |
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 | ||
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 | |||
9 | int main(int argc, char *argv[]) | 34 | int 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 | } |