From 2dac72ae43f627340694d89db68184cb07e68650 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 9 Mar 2016 15:13:00 +0100 Subject: Moved application to components --- applications/mail/CMakeLists.txt | 30 ++++++++++++++++++++++++++++ applications/mail/main.cpp | 43 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 applications/mail/CMakeLists.txt create mode 100644 applications/mail/main.cpp (limited to 'applications/mail') 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 @@ +project(kube-mail) + +cmake_minimum_required(VERSION 2.8.10.1) + +include(CPack) +include(FeatureSummary) +find_package(PkgConfig) + +################# set KDE specific information ################# + +find_package(ECM 0.0.8 REQUIRED NO_MODULE) + +# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) + +include(KDEInstallDirs) +include(KDECMakeSettings) +include(KDECompilerSettings) + +find_package(Qt5 REQUIRED NO_MODULE COMPONENTS Core Quick Test Gui Widgets) + +set (QT_MIN_VERSION "5.4.0") +find_package(KF5 REQUIRED COMPONENTS Package) + +# install executable +add_executable(${PROJECT_NAME} main.cpp) +qt5_use_modules(${PROJECT_NAME} Gui Quick Widgets) +target_link_libraries(${PROJECT_NAME} KF5::Package) + +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 @@ +#include +#include + +#include +#include +#include +#include + +#include + +class KubeImageProvider : public QQuickImageProvider +{ +public: + KubeImageProvider() + : QQuickImageProvider(QQuickImageProvider::Pixmap) + { + } + + QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) Q_DECL_OVERRIDE + { + const auto icon = QIcon::fromTheme(id); + auto expectedSize = requestedSize; + if (!icon.availableSizes().contains(requestedSize) && !icon.availableSizes().isEmpty()) { + expectedSize = icon.availableSizes().first(); + } + const auto pixmap = icon.pixmap(expectedSize); + if (size) { + *size = pixmap.size(); + } + return pixmap; + } +}; + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + auto package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML", "org.kde.kube.mail"); + Q_ASSERT(package.isValid()); + QQmlApplicationEngine engine; + engine.addImageProvider(QLatin1String("kube"), new KubeImageProvider); + engine.load(QUrl::fromLocalFile(package.filePath("mainscript"))); + return app.exec(); +} -- cgit v1.2.3