From a5b1c1c4bd44741a54895c4e84846c045facce70 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 5 Apr 2017 13:14:56 +0200 Subject: kube-mail is now kube --- applications/CMakeLists.txt | 2 +- applications/kube/CMakeLists.txt | 50 +++++++++++++++++++++ applications/kube/main.cpp | 72 ++++++++++++++++++++++++++++++ applications/kube/org.kde.kube.appdata.xml | 23 ++++++++++ applications/kube/org.kde.kube.desktop | 10 +++++ applications/mail/CMakeLists.txt | 50 --------------------- applications/mail/main.cpp | 72 ------------------------------ applications/mail/org.kde.kube.appdata.xml | 23 ---------- applications/mail/org.kde.kube.desktop | 10 ----- 9 files changed, 156 insertions(+), 156 deletions(-) create mode 100644 applications/kube/CMakeLists.txt create mode 100644 applications/kube/main.cpp create mode 100644 applications/kube/org.kde.kube.appdata.xml create mode 100755 applications/kube/org.kde.kube.desktop delete mode 100644 applications/mail/CMakeLists.txt delete mode 100644 applications/mail/main.cpp delete mode 100644 applications/mail/org.kde.kube.appdata.xml delete mode 100755 applications/mail/org.kde.kube.desktop (limited to 'applications') diff --git a/applications/CMakeLists.txt b/applications/CMakeLists.txt index f7e6f1d6..1c4b36aa 100644 --- a/applications/CMakeLists.txt +++ b/applications/CMakeLists.txt @@ -1 +1 @@ -add_subdirectory(mail) +add_subdirectory(kube) diff --git a/applications/kube/CMakeLists.txt b/applications/kube/CMakeLists.txt new file mode 100644 index 00000000..36ce6a34 --- /dev/null +++ b/applications/kube/CMakeLists.txt @@ -0,0 +1,50 @@ +project(kube) + +cmake_minimum_required(VERSION 2.8.12) +cmake_policy(SET CMP0063 NEW) + +include(CPack) +include(FeatureSummary) + +find_package(PkgConfig) + +################# set KDE specific information ################# + +if(APPLE OR WIN32) + # for an ecm_add_app_icon() implementation acception svg icons + set(ECM_MIN_VERSION 5.29.0) +else() + set(ECM_MIN_VERSION 0.0.8) +endif() +find_package(ECM ${ECM_MIN_VERSION} 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) +include(ECMAddAppIcon) + +find_package(Qt5 REQUIRED NO_MODULE COMPONENTS Core Quick Test Gui Widgets WebEngine) + +set (QT_MIN_VERSION "5.6.0") +find_package(KF5 REQUIRED COMPONENTS Package) + +# install executable +set(SRCS main.cpp) + +if(APPLE OR WIN32) + # Sets the icon on Windows and OSX + file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/../../icons/*-apps-kube_icon.*") + ecm_add_app_icon(SRCS ICONS ${ICONS_SRCS}) +endif() + +add_executable(${PROJECT_NAME} ${SRCS}) +qt5_use_modules(${PROJECT_NAME} Gui Quick Widgets WebEngine) +target_link_libraries(${PROJECT_NAME} KF5::Package) + +install(TARGETS ${PROJECT_NAME} DESTINATION ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) + +install(PROGRAMS org.kde.kube.desktop DESTINATION ${KDE_INSTALL_APPDIR} ) +install(FILES org.kde.kube.appdata.xml DESTINATION ${KDE_INSTALL_DATAROOTDIR}/appdata/) diff --git a/applications/kube/main.cpp b/applications/kube/main.cpp new file mode 100644 index 00000000..c893e029 --- /dev/null +++ b/applications/kube/main.cpp @@ -0,0 +1,72 @@ +#include +#include + +#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; + } +}; + +class WebUrlRequestInterceptor : public QWebEngineUrlRequestInterceptor +{ + Q_OBJECT +public: + WebUrlRequestInterceptor(QObject *p = Q_NULLPTR) : QWebEngineUrlRequestInterceptor{p} + {} + + void interceptRequest(QWebEngineUrlRequestInfo &info) + { + qDebug() << info.requestMethod() << info.requestUrl() << info.resourceType() << info.navigationType(); + const bool isNavigationRequest = info.resourceType() == QWebEngineUrlRequestInfo::ResourceTypeMainFrame; + if (isNavigationRequest) { + QDesktopServices::openUrl(info.requestUrl()); + info.block(true); + } + //TODO handle mailto to open a composer + } +}; + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + QtWebEngine::initialize(); + WebUrlRequestInterceptor *wuri = new WebUrlRequestInterceptor(); + QQuickWebEngineProfile::defaultProfile()->setRequestInterceptor(wuri); + QIcon::setThemeName("kube"); + + auto package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML", "org.kube.components.kube"); + Q_ASSERT(package.isValid()); + QQmlApplicationEngine engine; + engine.addImageProvider(QLatin1String("kube"), new KubeImageProvider); + engine.load(QUrl::fromLocalFile(package.filePath("mainscript"))); + return app.exec(); +} + +#include "main.moc" diff --git a/applications/kube/org.kde.kube.appdata.xml b/applications/kube/org.kde.kube.appdata.xml new file mode 100644 index 00000000..1946cac5 --- /dev/null +++ b/applications/kube/org.kde.kube.appdata.xml @@ -0,0 +1,23 @@ + + + org.kde.kube.desktop + CC0-1.0 + GPL-3.0+ + Kube + E-mail client + +

A modern groupware client based on QtQuick and Sink. + + The code can be found at: git://anongit.kde.org/kube + + The documentation can be found at: http://api.kde.org/doc/kube/.

+
+ https://phabricator.kde.org/project/view/43/ + https://bugs.kde.org/enter_bug.cgi?format=guided&product=kube + + + KDE + + kube + +
diff --git a/applications/kube/org.kde.kube.desktop b/applications/kube/org.kde.kube.desktop new file mode 100755 index 00000000..290fd503 --- /dev/null +++ b/applications/kube/org.kde.kube.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Kube +Type=Application +Exec=kube +Icon=kube_icon +GenericName=Mail Client +Comment=Send, receive and manage your mail with Kube +Terminal=false +StartupNotify=true +Categories=Qt;KDE;Office;Network;Email; diff --git a/applications/mail/CMakeLists.txt b/applications/mail/CMakeLists.txt deleted file mode 100644 index 56bbf98a..00000000 --- a/applications/mail/CMakeLists.txt +++ /dev/null @@ -1,50 +0,0 @@ -project(kube-mail) - -cmake_minimum_required(VERSION 2.8.12) -cmake_policy(SET CMP0063 NEW) - -include(CPack) -include(FeatureSummary) - -find_package(PkgConfig) - -################# set KDE specific information ################# - -if(APPLE OR WIN32) - # for an ecm_add_app_icon() implementation acception svg icons - set(ECM_MIN_VERSION 5.29.0) -else() - set(ECM_MIN_VERSION 0.0.8) -endif() -find_package(ECM ${ECM_MIN_VERSION} 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) -include(ECMAddAppIcon) - -find_package(Qt5 REQUIRED NO_MODULE COMPONENTS Core Quick Test Gui Widgets WebEngine) - -set (QT_MIN_VERSION "5.6.0") -find_package(KF5 REQUIRED COMPONENTS Package) - -# install executable -set(kube_mail_SRCS main.cpp) - -if(APPLE OR WIN32) - # Sets the icon on Windows and OSX - file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/../../icons/*-apps-kube_icon.*") - ecm_add_app_icon(kube_mail_SRCS ICONS ${ICONS_SRCS}) -endif() - -add_executable(${PROJECT_NAME} ${kube_mail_SRCS}) -qt5_use_modules(${PROJECT_NAME} Gui Quick Widgets WebEngine) -target_link_libraries(${PROJECT_NAME} KF5::Package) - -install(TARGETS ${PROJECT_NAME} DESTINATION ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) - -install(PROGRAMS org.kde.kube.desktop DESTINATION ${KDE_INSTALL_APPDIR} ) -install(FILES org.kde.kube.appdata.xml DESTINATION ${KDE_INSTALL_DATAROOTDIR}/appdata/) diff --git a/applications/mail/main.cpp b/applications/mail/main.cpp deleted file mode 100644 index b02c62d2..00000000 --- a/applications/mail/main.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include -#include - -#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; - } -}; - -class WebUrlRequestInterceptor : public QWebEngineUrlRequestInterceptor -{ - Q_OBJECT -public: - WebUrlRequestInterceptor(QObject *p = Q_NULLPTR) : QWebEngineUrlRequestInterceptor{p} - {} - - void interceptRequest(QWebEngineUrlRequestInfo &info) - { - qDebug() << info.requestMethod() << info.requestUrl() << info.resourceType() << info.navigationType(); - const bool isNavigationRequest = info.resourceType() == QWebEngineUrlRequestInfo::ResourceTypeMainFrame; - if (isNavigationRequest) { - QDesktopServices::openUrl(info.requestUrl()); - info.block(true); - } - //TODO handle mailto to open a composer - } -}; - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - - QtWebEngine::initialize(); - WebUrlRequestInterceptor *wuri = new WebUrlRequestInterceptor(); - QQuickWebEngineProfile::defaultProfile()->setRequestInterceptor(wuri); - QIcon::setThemeName("kube"); - - auto package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML", "org.kube.components.mail"); - Q_ASSERT(package.isValid()); - QQmlApplicationEngine engine; - engine.addImageProvider(QLatin1String("kube"), new KubeImageProvider); - engine.load(QUrl::fromLocalFile(package.filePath("mainscript"))); - return app.exec(); -} - -#include "main.moc" diff --git a/applications/mail/org.kde.kube.appdata.xml b/applications/mail/org.kde.kube.appdata.xml deleted file mode 100644 index 90bef45b..00000000 --- a/applications/mail/org.kde.kube.appdata.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - org.kde.kube.desktop - CC0-1.0 - GPL-3.0+ - Kube - E-mail client - -

A modern groupware client based on QtQuick and Sink. - - The code can be found at: git://anongit.kde.org/kube - - The documentation can be found at: http://api.kde.org/doc/kube/.

-
- https://phabricator.kde.org/project/view/43/ - https://bugs.kde.org/enter_bug.cgi?format=guided&product=kube - - - KDE - - kube-mail - -
diff --git a/applications/mail/org.kde.kube.desktop b/applications/mail/org.kde.kube.desktop deleted file mode 100755 index 83d57dd8..00000000 --- a/applications/mail/org.kde.kube.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Name=Kube -Type=Application -Exec=kube-mail -Icon=kube_icon -GenericName=Mail Client -Comment=Send, receive and manage your mail with Kube -Terminal=false -StartupNotify=true -Categories=Qt;KDE;Office;Network;Email; -- cgit v1.2.3