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/mail/contents/ui/main.qml | 201 +++++++++++++++++++++++++++++++++++ components/mail/metadata.desktop | 8 ++ 2 files changed, 209 insertions(+) create mode 100644 components/mail/contents/ui/main.qml create mode 100644 components/mail/metadata.desktop (limited to 'components/mail') 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 -- cgit v1.2.3