From 1aeac7aa7519cc667d4937cc9eb0df3f7c083028 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 9 Mar 2016 15:47:00 +0100 Subject: Install org.kube.components.mail package and install the rest of components as qml package --- components/CMakeLists.txt | 5 +- components/mail/contents/ui/main.qml | 201 ++++++++++++++++++++++++++++++++ components/mail/metadata.desktop | 8 ++ components/package/contents/ui/main.qml | 200 ------------------------------- components/package/metadata.desktop | 8 -- components/qmldir | 8 ++ 6 files changed, 221 insertions(+), 209 deletions(-) create mode 100644 components/mail/contents/ui/main.qml create mode 100644 components/mail/metadata.desktop delete mode 100644 components/package/contents/ui/main.qml delete mode 100644 components/package/metadata.desktop create mode 100644 components/qmldir (limited to 'components') diff --git a/components/CMakeLists.txt b/components/CMakeLists.txt index 2227e170..bd9c100a 100644 --- a/components/CMakeLists.txt +++ b/components/CMakeLists.txt @@ -22,5 +22,8 @@ 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(FILES qmldir DESTINATION ${QML_INSTALL_DIR}/org/kube/components) +install(DIRECTORY package/contents/ui/ DESTINATION ${QML_INSTALL_DIR}/org/kube/components) + # install UI package -kpackage_install_package(package org.kde.kube.mail "genericqml") +kpackage_install_package(mail org.kube.components.mail "genericqml") diff --git a/components/mail/contents/ui/main.qml b/components/mail/contents/ui/main.qml new file mode 100644 index 00000000..95729954 --- /dev/null +++ b/components/mail/contents/ui/main.qml @@ -0,0 +1,201 @@ +/* + * Copyright (C) 2015 Michael Bohlender + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +import QtQuick 2.4 +import QtQuick.Controls 1.3 +import QtQuick.Layouts 1.1 +import org.kde.plasma.components 2.0 as PlasmaComponents + +import org.kde.kube.actions 1.0 as KubeAction +import org.kde.kube.settings 1.0 as KubeSettings +import org.kube.components 1.0 as KubeComponents + +ApplicationWindow { + id: app + + //FIXME remove fixed pixel hight + //for now just convinience during testing + height: 1080 * 0.7 + width: 1920 * 0.7 + + visible: true + + // Action.ActionHandler { + // actionId: "org.kde.kube.actions.mark-as-read" + // function isReady(context) { + // return context.mail ? true : false; + // } + // + // function handler(context) { + // console.warn("Got message:", context.mail) + // } + // } + + KubeAction.Context { + id: maillistcontext + property variant mail + mail: mailListView.currentMail + } + + KubeAction.Action { + id: markAsReadAction + actionId: "org.kde.kube.actions.mark-as-read" + context: maillistcontext + } + + KubeAction.Action { + id: deleteAction + actionId: "org.kde.kube.actions.delete" + context: maillistcontext + } + + //UI + toolBar: ToolBar { + + Row { + anchors.fill: parent + + PlasmaComponents.ToolButton { + height: parent.height + text: "Settings" + onClicked: { + settings.visible = true + } + } + + PlasmaComponents.ToolButton { + height: parent.height + iconName: "mail-message-new" + text: "Compose" + onClicked: { + composer.visible = true + } + } + + PlasmaComponents.ToolButton { + height: parent.height + iconName: "mail-message-reply" + text: "Reply" + onClicked: { + composer.originalMessage = mailListView.currentMail + composer.visible = true + } + } + + PlasmaComponents.ToolButton { + height: parent.height + iconName: "mail-mark-unread" + text: "Mark As Read" + enabled: markAsReadAction.ready + onClicked: { + markAsReadAction.execute() + } + } + + PlasmaComponents.ToolButton { + height: parent.height + iconName: "mail-mark-important" + text: "Mark Important" + enabled: false + onClicked: { + } + } + + PlasmaComponents.ToolButton { + height: parent.height + iconName: "edit-delete" + text: "Delete Mail" + enabled: deleteAction.ready + onClicked: { + deleteAction.execute() + } + } + + + } + Rectangle { + anchors { + right: parent.right + } + height: parent.height + color: "transparent" + Image { + id: img + height: parent.height + fillMode: Image.PreserveAspectCrop + anchors { + verticalCenter: parent.verticalCenter + left: parent.left + leftMargin: -20 + } + source: "image://kube/kube_logo" + sourceSize.height: parent.height * 2.5 + } + width: img.width * 0.7 + } + } + + SplitView { + anchors.fill: parent + + KubeComponents.FolderListView { + id: folderListView + width: unit.size * 55 + Layout.maximumWidth: unit.size * 150 + Layout.minimumWidth: unit.size * 30 + } + + KubeComponents.MailListView { + id: mailListView + parentFolder: folderListView.currentFolder + width: unit.size * 80 + Layout.maximumWidth: unit.size * 250 + Layout.minimumWidth: unit.size * 50 + focus: true + } + + KubeComponents.SingleMailView { + id: mailView + mail: mailListView.currentMail + Layout.fillWidth: true + } + + } + + KubeComponents.Settings { + id: settings + + anchors.fill: parent + } + + KubeComponents.FocusComposer { + id: composer + + anchors.fill: parent + } + + //TODO find a better way to scale UI + Item { + id: unit + property int size: 5 + } + + KubeComponents.ColorPalette { + id: colorPalette + } +} + diff --git a/components/mail/metadata.desktop b/components/mail/metadata.desktop new file mode 100644 index 00000000..630cc133 --- /dev/null +++ b/components/mail/metadata.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Kube Mail +X-KDE-PluginInfo-Name=org.kde.kube.mail +Exec=kpackagelauncherqml -a org.kde.kube.mail +X-Plasma-MainScript=ui/main.qml +X-KDE-ServiceTypes=KPackage/GenericQML +Icon=kmail2 +Type=Service diff --git a/components/package/contents/ui/main.qml b/components/package/contents/ui/main.qml deleted file mode 100644 index cf983dee..00000000 --- a/components/package/contents/ui/main.qml +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright (C) 2015 Michael Bohlender - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -import QtQuick 2.4 -import QtQuick.Controls 1.3 -import QtQuick.Layouts 1.1 -import org.kde.plasma.components 2.0 as PlasmaComponents - -import org.kde.kube.actions 1.0 as KubeAction -import org.kde.kube.settings 1.0 as KubeSettings - -ApplicationWindow { - id: app - - //FIXME remove fixed pixel hight - //for now just convinience during testing - height: 1080 * 0.7 - width: 1920 * 0.7 - - visible: true - - // Action.ActionHandler { - // actionId: "org.kde.kube.actions.mark-as-read" - // function isReady(context) { - // return context.mail ? true : false; - // } - // - // function handler(context) { - // console.warn("Got message:", context.mail) - // } - // } - - KubeAction.Context { - id: maillistcontext - property variant mail - mail: mailListView.currentMail - } - - KubeAction.Action { - id: markAsReadAction - actionId: "org.kde.kube.actions.mark-as-read" - context: maillistcontext - } - - KubeAction.Action { - id: deleteAction - actionId: "org.kde.kube.actions.delete" - context: maillistcontext - } - - //UI - toolBar: ToolBar { - - Row { - anchors.fill: parent - - PlasmaComponents.ToolButton { - height: parent.height - text: "Settings" - onClicked: { - settings.visible = true - } - } - - PlasmaComponents.ToolButton { - height: parent.height - iconName: "mail-message-new" - text: "Compose" - onClicked: { - composer.visible = true - } - } - - PlasmaComponents.ToolButton { - height: parent.height - iconName: "mail-message-reply" - text: "Reply" - onClicked: { - composer.originalMessage = mailListView.currentMail - composer.visible = true - } - } - - PlasmaComponents.ToolButton { - height: parent.height - iconName: "mail-mark-unread" - text: "Mark As Read" - enabled: markAsReadAction.ready - onClicked: { - markAsReadAction.execute() - } - } - - PlasmaComponents.ToolButton { - height: parent.height - iconName: "mail-mark-important" - text: "Mark Important" - enabled: false - onClicked: { - } - } - - PlasmaComponents.ToolButton { - height: parent.height - iconName: "edit-delete" - text: "Delete Mail" - enabled: deleteAction.ready - onClicked: { - deleteAction.execute() - } - } - - - } - Rectangle { - anchors { - right: parent.right - } - height: parent.height - color: "transparent" - Image { - id: img - height: parent.height - fillMode: Image.PreserveAspectCrop - anchors { - verticalCenter: parent.verticalCenter - left: parent.left - leftMargin: -20 - } - source: "image://kube/kube_logo" - sourceSize.height: parent.height * 2.5 - } - width: img.width * 0.7 - } - } - - SplitView { - anchors.fill: parent - - FolderListView { - id: folderListView - width: unit.size * 55 - Layout.maximumWidth: unit.size * 150 - Layout.minimumWidth: unit.size * 30 - } - - MailListView { - id: mailListView - parentFolder: folderListView.currentFolder - width: unit.size * 80 - Layout.maximumWidth: unit.size * 250 - Layout.minimumWidth: unit.size * 50 - focus: true - } - - SingleMailView { - id: mailView - mail: mailListView.currentMail - Layout.fillWidth: true - } - - } - - Settings { - id: settings - - anchors.fill: parent - } - - FocusComposer { - id: composer - - anchors.fill: parent - } - - //TODO find a better way to scale UI - Item { - id: unit - property int size: 5 - } - - ColorPalette { - id: colorPalette - } -} - diff --git a/components/package/metadata.desktop b/components/package/metadata.desktop deleted file mode 100644 index 630cc133..00000000 --- a/components/package/metadata.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Name=Kube Mail -X-KDE-PluginInfo-Name=org.kde.kube.mail -Exec=kpackagelauncherqml -a org.kde.kube.mail -X-Plasma-MainScript=ui/main.qml -X-KDE-ServiceTypes=KPackage/GenericQML -Icon=kmail2 -Type=Service diff --git a/components/qmldir b/components/qmldir new file mode 100644 index 00000000..204beff8 --- /dev/null +++ b/components/qmldir @@ -0,0 +1,8 @@ +module org.kube.components + +ColorPalette 1.0 ColorPalette.qml +FocusComposer 1.0 FocusComposer.qml +SingleMailView 1.0 SingleMailView.qml +FolderListView 1.0 FolderListView.qml +MailListView 1.0 MailListView.qml +Settings 1.0 Settings.qml -- cgit v1.2.3