From a0c48081516f8fd6adae16c57a4f851bb139e36d Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 20 Feb 2017 16:52:00 +0100 Subject: Normalize the component package structure --- components/accounts/contents/ui/AccountWizard.qml | 128 +++++++++++++ components/accounts/contents/ui/CreateGmail.qml | 208 +++++++++++++++++++++ components/accounts/contents/ui/CreateImap.qml | 165 ++++++++++++++++ components/accounts/contents/ui/CreateKolabNow.qml | 208 +++++++++++++++++++++ components/accounts/contents/ui/CreateMaildir.qml | 201 ++++++++++++++++++++ components/accounts/contents/ui/EditImap.qml | 1 + components/accounts/contents/ui/EditKolabNow.qml | 1 + components/accounts/contents/ui/EditMaildir.qml | 1 + components/accounts/contents/ui/main.qml | 30 +++ 9 files changed, 943 insertions(+) create mode 100644 components/accounts/contents/ui/AccountWizard.qml create mode 100644 components/accounts/contents/ui/CreateGmail.qml create mode 100644 components/accounts/contents/ui/CreateImap.qml create mode 100644 components/accounts/contents/ui/CreateKolabNow.qml create mode 100644 components/accounts/contents/ui/CreateMaildir.qml create mode 100644 components/accounts/contents/ui/EditImap.qml create mode 100644 components/accounts/contents/ui/EditKolabNow.qml create mode 100644 components/accounts/contents/ui/EditMaildir.qml create mode 100644 components/accounts/contents/ui/main.qml (limited to 'components/accounts/contents') diff --git a/components/accounts/contents/ui/AccountWizard.qml b/components/accounts/contents/ui/AccountWizard.qml new file mode 100644 index 00000000..8cc90acb --- /dev/null +++ b/components/accounts/contents/ui/AccountWizard.qml @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2016 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 2 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.7 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.0 as Controls2 +import org.kde.kirigami 1.0 as Kirigami + +Controls2.Popup { + id: popup + + modal: true + focus: true + closePolicy: Controls2.Popup.CloseOnEscape | Controls2.Popup.CloseOnPressOutsideParent + + clip: true + + Controls2.StackView { + id: stack + + anchors.fill: parent + + initialItem: mainView + } + + Component { + id: mainView + + Item { + + ColumnLayout { + + anchors.centerIn: parent + + width: parent.width * 0.4 + + spacing: Kirigami.Units.largeSpacing + + Controls2.Button { + + Layout.fillWidth: true + + text: "kolabnow account" + + onClicked: { + stack.push(kolabnow) + } + } + + Controls2.Button { + + Layout.fillWidth: true + + text: "gmail account" + + onClicked: { + stack.push(gmail) + } + } + + Controls2.Button { + + Layout.fillWidth: true + + text: "imap account" + + onClicked: { + stack.push(imap) + } + } + + Controls2.Button { + + Layout.fillWidth: true + + text: "maildir archive" + + onClicked: { + stack.push(maildir) + } + } + } + } + } + + Component { + id: kolabnow + + CreateKolabNow { + } + } + + Component { + id: gmail + + CreateGmail { + } + } + + Component { + id: imap + + CreateImap { + } + } + + Component { + id: maildir + + CreateMaildir { + } + } +} diff --git a/components/accounts/contents/ui/CreateGmail.qml b/components/accounts/contents/ui/CreateGmail.qml new file mode 100644 index 00000000..5d7f8194 --- /dev/null +++ b/components/accounts/contents/ui/CreateGmail.qml @@ -0,0 +1,208 @@ +/* + * Copyright (C) 2016 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 2 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.7 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 1.4 as Controls +import QtQuick.Controls 2.0 as Controls2 +import org.kde.kirigami 1.0 as Kirigami + +import org.kube.framework.accounts 1.0 as KubeAccounts + +Item { + + KubeAccounts.GmailController { + id: account + } + + Controls.ToolButton { + iconName: "go-previous" + + tooltip: "go back" + + onClicked: { + stack.pop() + } + } + + //Item to avoid anchors conflict with stack + Item { + + anchors { + fill: parent + margins: Kirigami.Units.largeSpacing * 2 + } + + Kirigami.Heading { + id: heading + text: "Connect your Gmail account" + + color: Kirigami.Theme.highlightColor + } + + Kirigami.Label { + id: subHeadline + + anchors { + left: heading.left + top: heading.bottom + } + + width: parent.width + + text: "To let Kube access your account, fill in email address, username, password and give the account a title that will be displayed inside Kube." + + color: Kirigami.Theme.disabledTextColor + + wrapMode: Text.Wrap + } + + GridLayout { + anchors { + top:subHeadline.bottom + bottom: parent.bottom + left: parent.left + right: parent.right + topMargin: Kirigami.Units.largeSpacing * 2 + } + + columns: 2 + columnSpacing: Kirigami.Units.largeSpacing + rowSpacing: Kirigami.Units.largeSpacing + + Controls.Label { + text: "Title of Account" + Layout.alignment: Qt.AlignRight + } + Controls.TextField { + Layout.fillWidth: true + + placeholderText: "E.g. \"Work\", \"Home\" that will be displayed in Kube as name" + + text: account.name + + onTextChanged: { + account.name = text + } + } + + Controls.Label { + text: "Email address" + Layout.alignment: Qt.AlignRight + } + + Controls.TextField { + Layout.fillWidth: true + + text: account.emailAddress + + onTextChanged: { + account.emailAddress = text + } + + placeholderText: "Your email address" + } + + Controls.Label { + text: "Name" + Layout.alignment: Qt.AlignRight + } + Controls.TextField { + Layout.fillWidth: true + + placeholderText: "Your name" + + text: account.identityName + + onTextChanged: { + account.identityName = text + } + } + + Kirigami.Label { + text: "Password" + Layout.alignment: Qt.AlignRight + } + + RowLayout { + Layout.fillWidth: true + + Controls.TextField { + id: pwField + Layout.fillWidth: true + + placeholderText: "Password of your email account" + + text: account.password + + onTextChanged: { + account.password = text + } + + echoMode: TextInput.Password + } + + Controls.CheckBox { + text: "Show Password" + onClicked: { + if(pwField.echoMode == TextInput.Password) { + pwField.echoMode = TextInput.Normal; + } else { + pwField.echoMode = TextInput.Password; + } + } + } + } + + Item { + Layout.fillHeight: true + } + + Kirigami.Label { + text: "" + } + + Kirigami.Label { + text: "" + } + + Item { + Layout.fillWidth: true + + Controls.Button { + text: "Discard" + + onClicked: { + popup.close() + } + } + + Controls.Button { + anchors.right: parent.right + + text: "Save" + + onClicked: { + account.createAction.execute() + popup.close() + } + } + } + } + } +} diff --git a/components/accounts/contents/ui/CreateImap.qml b/components/accounts/contents/ui/CreateImap.qml new file mode 100644 index 00000000..7f355409 --- /dev/null +++ b/components/accounts/contents/ui/CreateImap.qml @@ -0,0 +1,165 @@ +/* + * Copyright (C) 2016 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 2 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.7 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 1.4 as Controls +import QtQuick.Controls 2.0 as Controls2 +import org.kde.kirigami 1.0 as Kirigami + +Item { + + Controls.ToolButton { + iconName: "go-previous" + + tooltip: "go back" + + onClicked: { + stack.pop() + } + } + + //Item to avoid anchors conflict with stack + Item { + + anchors { + fill: parent + margins: Kirigami.Units.largeSpacing * 2 + } + + Kirigami.Heading { + id: heading + text: "Connect your IMAP account" + + color: Kirigami.Theme.highlightColor + } + + Kirigami.Label { + id: subHeadline + + anchors { + left: heading.left + top: heading.bottom + } + + width: parent.width + + text: "To let Kube access your account, fill in email address, username, password and give the account a title that will be displayed inside Kube." + + color: Kirigami.Theme.disabledTextColor + + wrapMode: Text.Wrap + } + + GridLayout { + anchors { + top:subHeadline.bottom + bottom: parent.bottom + left: parent.left + right: parent.right + topMargin: Kirigami.Units.largeSpacing * 2 + } + + columns: 2 + columnSpacing: Kirigami.Units.largeSpacing + rowSpacing: Kirigami.Units.largeSpacing + + Controls.Label { + text: "Title of Account" + Layout.alignment: Qt.AlignRight + } + Controls.TextField { + Layout.fillWidth: true + + placeholderText: "E.g. \"Work\", \"Home\" that will be displayed in Kube as name" + } + + Controls.Label { + text: "Email address" + Layout.alignment: Qt.AlignRight + } + + Controls.TextField { + Layout.fillWidth: true + + placeholderText: "Your email address" + } + + Kirigami.Label { + text: "Password" + Layout.alignment: Qt.AlignRight + } + + RowLayout { + Layout.fillWidth: true + + Controls.TextField { + id: pwField + Layout.fillWidth: true + + placeholderText: "Password of your email account" + echoMode: TextInput.Password + } + + Controls.CheckBox { + text: "Show Password" + onClicked: { + if(pwField.echoMode == TextInput.Password) { + pwField.echoMode = TextInput.Normal; + } else { + pwField.echoMode = TextInput.Password; + } + } + } + } + + Item { + Layout.fillHeight: true + } + + Kirigami.Label { + text: "" + } + + Kirigami.Label { + text: "" + } + + Item { + Layout.fillWidth: true + + Controls.Button { + text: "Discard" + + onClicked: { + popup.close() + } + } + + Controls.Button { + anchors.right: parent.right + + text: "Next" + + onClicked: { + } + } + } + } + } +} diff --git a/components/accounts/contents/ui/CreateKolabNow.qml b/components/accounts/contents/ui/CreateKolabNow.qml new file mode 100644 index 00000000..e6022cbb --- /dev/null +++ b/components/accounts/contents/ui/CreateKolabNow.qml @@ -0,0 +1,208 @@ +/* + * Copyright (C) 2016 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 2 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.7 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 1.4 as Controls +import QtQuick.Controls 2.0 as Controls2 +import org.kde.kirigami 1.0 as Kirigami + +import org.kube.framework.accounts 1.0 as KubeAccounts + +Item { + + KubeAccounts.KolabNowController { + id: account + } + + Controls.ToolButton { + iconName: "go-previous" + + tooltip: "go back" + + onClicked: { + stack.pop() + } + } + + //Item to avoid anchors conflict with stack + Item { + + anchors { + fill: parent + margins: Kirigami.Units.largeSpacing * 2 + } + + Kirigami.Heading { + id: heading + text: "Connect your Kolab Now account" + + color: Kirigami.Theme.highlightColor + } + + Kirigami.Label { + id: subHeadline + + anchors { + left: heading.left + top: heading.bottom + } + + width: parent.width + + text: "To let Kube access your account, fill in email address, username, password and give the account a title that will be displayed inside Kube." + + color: Kirigami.Theme.disabledTextColor + + wrapMode: Text.Wrap + } + + GridLayout { + anchors { + top:subHeadline.bottom + bottom: parent.bottom + left: parent.left + right: parent.right + topMargin: Kirigami.Units.largeSpacing * 2 + } + + columns: 2 + columnSpacing: Kirigami.Units.largeSpacing + rowSpacing: Kirigami.Units.largeSpacing + + Controls.Label { + text: "Title of Account" + Layout.alignment: Qt.AlignRight + } + Controls.TextField { + Layout.fillWidth: true + + placeholderText: "E.g. \"Work\", \"Home\" that will be displayed in Kube as name" + + text: account.name + + onTextChanged: { + account.name = text + } + } + + Controls.Label { + text: "Name" + Layout.alignment: Qt.AlignRight + } + Controls.TextField { + Layout.fillWidth: true + + placeholderText: "Your name" + + text: account.identityName + + onTextChanged: { + account.identityName = text + } + } + + Controls.Label { + text: "Email address" + Layout.alignment: Qt.AlignRight + } + + Controls.TextField { + Layout.fillWidth: true + + text: account.emailAddress + + onTextChanged: { + account.emailAddress = text + } + + placeholderText: "Your email address" + } + + Kirigami.Label { + text: "Password" + Layout.alignment: Qt.AlignRight + } + + RowLayout { + Layout.fillWidth: true + + Controls.TextField { + id: pwField + Layout.fillWidth: true + + placeholderText: "Password of your email account" + + text: account.password + + onTextChanged: { + account.password = text + } + + echoMode: TextInput.Password + } + + Controls.CheckBox { + text: "Show Password" + onClicked: { + if(pwField.echoMode == TextInput.Password) { + pwField.echoMode = TextInput.Normal; + } else { + pwField.echoMode = TextInput.Password; + } + } + } + } + + Item { + Layout.fillHeight: true + } + + Kirigami.Label { + text: "" + } + + Kirigami.Label { + text: "" + } + + Item { + Layout.fillWidth: true + + Controls.Button { + text: "Discard" + + onClicked: { + popup.close() + } + } + + Controls.Button { + anchors.right: parent.right + + text: "Save" + + onClicked: { + account.createAction.execute() + popup.close() + } + } + } + } + } +} diff --git a/components/accounts/contents/ui/CreateMaildir.qml b/components/accounts/contents/ui/CreateMaildir.qml new file mode 100644 index 00000000..99bde452 --- /dev/null +++ b/components/accounts/contents/ui/CreateMaildir.qml @@ -0,0 +1,201 @@ +/* + * Copyright (C) 2016 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 2 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.7 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 1.4 as Controls +import QtQuick.Controls 2.0 as Controls2 +import org.kde.kirigami 1.0 as Kirigami +import QtQuick.Dialogs 1.0 as Dialogs + +import org.kube.framework.accounts 1.0 as KubeAccounts + +Item { + id: root + + //Controller + KubeAccounts.MaildirController { + id: account + } + + //Navigation + Controls.ToolButton { + iconName: "go-previous" + + tooltip: "go back" + + onClicked: { + stack.pop() + } + } + + //Item to avoid anchors conflict with stack + Item { + + anchors { + fill: parent + margins: Kirigami.Units.largeSpacing * 2 + } + + + //BEGIN heading + Kirigami.Heading { + id: heading + text: "Add your Maildir archive" + + color: Kirigami.Theme.highlightColor + } + + Controls2.Label { + id: subHeadline + + anchors { + left: heading.left + top: heading.bottom + } + + width: parent.width + + text: "To let Kube access your maildir archive, add the path to your archive and give the account a title that will be displayed inside Kube" + + color: Kirigami.Theme.disabledTextColor + wrapMode: Text.Wrap + } + //END heading + + GridLayout { + anchors { + top:subHeadline.bottom + bottom: parent.bottom + left: parent.left + right: parent.right + topMargin: Kirigami.Units.largeSpacing * 2 + } + + columns: 2 + columnSpacing: Kirigami.Units.largeSpacing + rowSpacing: Kirigami.Units.largeSpacing + + Controls2.Label { + text: "Title of account" + Layout.alignment: Qt.AlignRight + } + Controls.TextField { + id: title + Layout.fillWidth: true + + text: account.name + + onTextChanged: { + account.name = text + } + } + + Controls2.Label { + text: "Path" + Layout.alignment: Qt.AlignRight + } + RowLayout { + Layout.fillWidth: true + + Controls.TextField { + id: path + Layout.fillWidth: true + + enabled: false + + text: account.path + } + + Controls.Button { + iconName: "folder" + + onClicked: { + fileDialogComponent.createObject(parent) + } + + Component { + id: fileDialogComponent + Dialogs.FileDialog { + id: fileDialog + + visible: true + title: "Choose the maildir folder" + + selectFolder: true + + onAccepted: { + account.path = fileDialog.fileUrl + } + } + } + } + } + + /* + Controls2.Label { + text: "" + } + Controls.CheckBox { + id: readOnly + text: "Read only" + } + */ + + Controls2.Label { + text: "" + Layout.fillHeight: true + } + Controls2.Label { + text: "" + } + + Controls2.Label { + text: "" + } + Item { + Layout.fillWidth: true + + Controls2.Button { + text: "Discard" + + onClicked: { + //account.clear() + popup.close() + } + } + + Controls2.Button { + id: saveButton + + anchors.right: parent.right + + text: "Save" + + enabled: account.createAction.enabled + + onClicked: { + account.createAction.execute() + popup.close() + } + } + } + } + } +} + diff --git a/components/accounts/contents/ui/EditImap.qml b/components/accounts/contents/ui/EditImap.qml new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/components/accounts/contents/ui/EditImap.qml @@ -0,0 +1 @@ + diff --git a/components/accounts/contents/ui/EditKolabNow.qml b/components/accounts/contents/ui/EditKolabNow.qml new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/components/accounts/contents/ui/EditKolabNow.qml @@ -0,0 +1 @@ + diff --git a/components/accounts/contents/ui/EditMaildir.qml b/components/accounts/contents/ui/EditMaildir.qml new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/components/accounts/contents/ui/EditMaildir.qml @@ -0,0 +1 @@ + diff --git a/components/accounts/contents/ui/main.qml b/components/accounts/contents/ui/main.qml new file mode 100644 index 00000000..e15bca8f --- /dev/null +++ b/components/accounts/contents/ui/main.qml @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2016 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 2 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.7 +import QtQuick.Controls 2.0 as Controls2 + +Controls2.ApplicationWindow { + id: app + height: 900 + width: 1500 + + AccountWizard { + visible: true + } +} -- cgit v1.2.3