diff options
Diffstat (limited to 'src/settingsui/main.qml')
-rw-r--r-- | src/settingsui/main.qml | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/src/settingsui/main.qml b/src/settingsui/main.qml new file mode 100644 index 0000000..7d0d864 --- /dev/null +++ b/src/settingsui/main.qml @@ -0,0 +1,171 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 2.5 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles.Flat 1.0 as Flat +import QtQuick.XmlListModel 2.0 +import "common" +import com.theqtcompany.localdevice 1.0 + +ApplicationWindow { + id: root + title: qsTr("Device settings") + width: 800 + height: 600 + visible: true + property var service + + SystemPalette { id: systemPalette; colorGroup: SystemPalette.Active } + + toolBar:ToolBar { + id: titlebar + property string title: "" + implicitWidth: parent.width + implicitHeight: Math.round(40 * Flat.FlatStyle.scaleFactor) + Item { + anchors.fill: parent + + ToolButton { + iconSource: "../icons/Chevron-left_black_1x.png" + text: "" + visible: stackView.depth > 1 + height: parent.height + width: parent.height + onClicked: stackView.pop(); + } + TextLabel { + id: titleText + font.pixelSize: Math.round(16 * Flat.FlatStyle.scaleFactor) + anchors.fill: parent + text: stackView.currentItem.title + } + + + ToolButton { + iconSource: "../icons/Power_black_1x.png" + text: "" + visible: stackView.depth == 1 + height: parent.height + width: parent.height + anchors.right: parent.right + onClicked: { + menu.__xOffset = Math.round(-100 * Flat.FlatStyle.scaleFactor); + menu.popup(); + } + } + } + } + + Menu { + id: menu + title: "" + enabled: false + + MenuItem { + text: qsTr("Reboot") + onTriggered: LocalDevice.reboot() + } + + MenuItem { + text: qsTr("Shutdown") + onTriggered: LocalDevice.powerOff() + } + } + + StackView { + id: stackView + initialItem: mainView + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.right: parent.right + + Component { + id: mainView + Item { + property string title: qsTr("Device Settings") + XmlListModel { + id: xmlModel + source: "settingsview.xml" + query: "/xml/settings/item" + XmlRole { name: "title"; query: "title/string()"} + XmlRole { name: "icon"; query: "icon/string()"} + XmlRole { name: "path"; query: "path/string()"} + XmlRole { name: "view"; query: "view/string()"} + } + + GridView { + id: grid + anchors.fill: parent + anchors.margins: Math.round(40 * Flat.FlatStyle.scaleFactor) + cellHeight: Math.round(133 * Flat.FlatStyle.scaleFactor) + spacing + cellWidth: Math.round(117 * Flat.FlatStyle.scaleFactor) + spacing + property int spacing: Math.round(20 * Flat.FlatStyle.scaleFactor) + + model: xmlModel + delegate: + MouseArea { + width: grid.cellWidth - grid.spacing + height: grid.cellHeight - grid.spacing + + Rectangle { + anchors.fill: parent + color: "#d6d6d6" + radius: 5 + visible: pressed + } + + Column { + anchors.fill: parent + anchors.topMargin: Math.round(10 * Flat.FlatStyle.scaleFactor) + Image { + id: image + source: icon + anchors.horizontalCenter: parent.horizontalCenter + } + + TextLabel { + text: title + anchors.horizontalCenter: parent.horizontalCenter + font.pixelSize: Math.round(16 * Flat.FlatStyle.scaleFactor) + } + } + + onClicked: { + var url = 'import "' + path + '"; ' + view + ' {}'; + stackView.push({item: Qt.createQmlObject(url,stackView)}); + titlebar.title = title + } + } + } + } + } + } +} |