diff options
Diffstat (limited to 'applications/mail')
-rw-r--r-- | applications/mail/CMakeLists.txt | 30 | ||||
-rw-r--r-- | applications/mail/main.cpp | 43 |
2 files changed, 73 insertions, 0 deletions
diff --git a/applications/mail/CMakeLists.txt b/applications/mail/CMakeLists.txt new file mode 100644 index 00000000..706be8aa --- /dev/null +++ b/applications/mail/CMakeLists.txt | |||
@@ -0,0 +1,30 @@ | |||
1 | project(kube-mail) | ||
2 | |||
3 | cmake_minimum_required(VERSION 2.8.10.1) | ||
4 | |||
5 | include(CPack) | ||
6 | include(FeatureSummary) | ||
7 | find_package(PkgConfig) | ||
8 | |||
9 | ################# set KDE specific information ################# | ||
10 | |||
11 | find_package(ECM 0.0.8 REQUIRED NO_MODULE) | ||
12 | |||
13 | # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked | ||
14 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) | ||
15 | |||
16 | include(KDEInstallDirs) | ||
17 | include(KDECMakeSettings) | ||
18 | include(KDECompilerSettings) | ||
19 | |||
20 | find_package(Qt5 REQUIRED NO_MODULE COMPONENTS Core Quick Test Gui Widgets) | ||
21 | |||
22 | set (QT_MIN_VERSION "5.4.0") | ||
23 | find_package(KF5 REQUIRED COMPONENTS Package) | ||
24 | |||
25 | # install executable | ||
26 | add_executable(${PROJECT_NAME} main.cpp) | ||
27 | qt5_use_modules(${PROJECT_NAME} Gui Quick Widgets) | ||
28 | target_link_libraries(${PROJECT_NAME} KF5::Package) | ||
29 | |||
30 | install(TARGETS ${PROJECT_NAME} DESTINATION bin) | ||
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 | } | ||