From 1b1e83aeb820df85ce7f10e81fe1f44deab2174e Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 21 Sep 2017 17:30:25 +0200 Subject: A login view --- framework/qml/LoginAccount.qml | 117 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 framework/qml/LoginAccount.qml (limited to 'framework/qml') diff --git a/framework/qml/LoginAccount.qml b/framework/qml/LoginAccount.qml new file mode 100644 index 00000000..7eaa47f4 --- /dev/null +++ b/framework/qml/LoginAccount.qml @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2016 Michael Bohlender, + * Copyright (C) 2017 Christian Mollekopf, + * + * 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 org.kube.framework 1.0 as Kube + +Item { + id: root + property string accountId + property bool canRemove: true + + function login() { + loader.item.login() + Kube.Fabric.postMessage(Kube.Messages.synchronize, {"accountId": loader.item.accountIdentifier}); + Kube.Fabric.postMessage(Kube.Messages.componentDone, {}) + } + + Kube.AccountFactory { + id: accountFactory + accountId: root.accountId + } + + Item { + + anchors { + fill: parent + margins: Kube.Units.largeSpacing * 2 + } + + Kube.Heading { + id: heading + text: loader.item ? loader.item.heading : "" + color: Kube.Colors.highlightColor + } + + Kube.Label { + id: subHeadline + + anchors { + left: heading.left + top: heading.bottom + } + + width: parent.width + text: loader.item ? loader.item.subheadline : "" + color: Kube.Colors.disabledTextColor + wrapMode: Text.Wrap + } + + Item { + id: accountEdit + anchors { + top: subHeadline.bottom + left: parent.left + right: parent.right + bottom: footer.top + topMargin: Kube.Units.largeSpacing * 2 + } + + Loader { + id: loader + anchors { + top: parent.top + left: parent.left + right: parent.right + } + //The initial size is somehow necessary so the loader is properly anchored + height: 10 + source: accountFactory.loginUi + onLoaded: item.accountId = root.accountId + } + Item { + id: spacer + anchors { + top: loader.bottom + left: parent.left + right: parent.right + bottom: parent.bottom + } + } + } + Keys.onReturnPressed: login() + + Item { + id: footer + anchors { + bottom: parent.bottom + left: parent.left + right: parent.right + topMargin: Kube.Units.largeSpacing * 2 + } + + Kube.Button { + anchors.right: parent.right + text: qsTr("Login") + onClicked: login() + } + } + } +} -- cgit v1.2.3