From 6d034c853ea7cd6d426fccd79db90ec56e188327 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Sat, 13 May 2017 10:02:23 +0200 Subject: StatusBar as individual component --- framework/qml/StatusBar.qml | 79 +++++++++++++++++++++++++++++++++++++++++++++ framework/qmldir | 1 + 2 files changed, 80 insertions(+) create mode 100644 framework/qml/StatusBar.qml (limited to 'framework') diff --git a/framework/qml/StatusBar.qml b/framework/qml/StatusBar.qml new file mode 100644 index 00000000..fa85f872 --- /dev/null +++ b/framework/qml/StatusBar.qml @@ -0,0 +1,79 @@ +/* + * 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 org.kube.framework 1.0 as Kube + +Item { + id: root + property string accountId: "" + Repeater { + model: Kube.AccountsModel { + accountId: root.accountId + } + + Column { + anchors.fill: root + spacing: Kube.Units.smallSpacing + Kube.Label { + id: statusText + anchors.horizontalCenter: parent.horizontalCenter + visible: false + color: Kube.Colors.highlightedTextColor + states: [ + State { + name: "disconnected"; when: model.status == Kube.AccountsModel.OfflineStatus + PropertyChanges { target: statusBar; visible: true } + PropertyChanges { target: statusText; text: "Disconnected"; visible: true } + }, + State { + name: "busy"; when: model.status == Kube.AccountsModel.BusyStatus + PropertyChanges { target: statusBar; visible: true } + PropertyChanges { target: statusText; text: "Synchronizing..."; visible: true } + PropertyChanges { target: progressBar; visible: true } + }, + State { + name: "error"; when: model.status == Kube.AccountsModel.ErrorStatus + PropertyChanges { target: statusBar; visible: true } + //TODO get to an error description + PropertyChanges { target: statusText; text: "Error"; visible: true } + } + ] + } + Kube.ProgressBar { + id: progressBar + anchors.horizontalCenter: parent.horizontalCenter + height: 2 + width: parent.width - Kube.Units.smallSpacing * 2 + + indeterminate: true + visible: false + + Kube.Listener { + filter: Kube.Messages.progressNotification + onMessageReceived: { + progressBar.indeterminate = false + progressBar.from = 0 + progressBar.to = message.total + progressBar.value = message.progress + } + } + } + } + } +} diff --git a/framework/qmldir b/framework/qmldir index 2060a920..a5184771 100644 --- a/framework/qmldir +++ b/framework/qmldir @@ -18,6 +18,7 @@ IconButton 1.0 IconButton.qml Button 1.0 Button.qml Popup 1.0 Popup.qml ProgressBar 1.0 ProgressBar.qml +StatusBar 1.0 StatusBar.qml ComboBox 1.0 ComboBox.qml PositiveButton 1.0 PositiveButton.qml TextField 1.0 TextField.qml -- cgit v1.2.3