summaryrefslogtreecommitdiffstats
path: root/src/settingsui/main.qml
diff options
context:
space:
mode:
Diffstat (limited to 'src/settingsui/main.qml')
-rw-r--r--src/settingsui/main.qml171
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
+ }
+ }
+ }
+ }
+ }
+ }
+}