diff options
Diffstat (limited to 'src/settingsui/timedate/ManualTime.qml')
-rw-r--r-- | src/settingsui/timedate/ManualTime.qml | 248 |
1 files changed, 248 insertions, 0 deletions
diff --git a/src/settingsui/timedate/ManualTime.qml b/src/settingsui/timedate/ManualTime.qml new file mode 100644 index 0000000..1438565 --- /dev/null +++ b/src/settingsui/timedate/ManualTime.qml @@ -0,0 +1,248 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Device Utilities 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.6 +import QtQuick.Controls 2.0 +import QtDeviceUtilities.QtButtonImageProvider 1.0 +import QtDeviceUtilities.TimeDateSettings 1.0 + +Item { + id: root + property int margin: root.width * 0.05 + property var selectedDate: new Date() + property int firstYear: 2017 + + function zeroPadTime(timeToPad) { + return timeToPad < 10 ? "0" + timeToPad : timeToPad + } + + Column { + spacing: pluginMain.spacing + + Text { + color: "white" + text: qsTr("Set Date") + font.pixelSize: pluginMain.subTitleFontSize + font.family: appFont + } + + // Row of date comboboxes + Row { + spacing: pluginMain.spacing + leftPadding: pluginMain.margin + + CustomComboBox { + id: dayBox + width: root.width * 0.15 + height: pluginMain.buttonHeight + displayText: currentIndex + 1 + + model: 31 + itemsVisible: 10 + currentIndex: selectedDate.getDate() - 1 + + delegate: ItemDelegate { + id: dayDelegate + height: dayBox.height + // QTBUG-49224: contentItem: Item {} + Text { + anchors.left: dayDelegate.left + anchors.leftMargin: pluginMain.margin + text: modelData + 1 + color: dayBox.currentIndex == index ? viewSettings.buttonGreenColor : "white" + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + font.pixelSize: pluginMain.valueFontSize + font.family: appFont + font.styleName: "Regular" + } + } + + onCurrentIndexChanged: selectedDate.setDate(currentIndex + 1) + } + + CustomComboBox { + id: monthBox + width: root.width * 0.35 + height: pluginMain.buttonHeight + model: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] + currentIndex: selectedDate.getMonth() + + itemsVisible: 12 + delegate: ItemDelegate { + id: monthDelegate + height: monthBox.height + // QTBUG-49224: contentItem: Item {} + Text { + anchors.left: monthDelegate.left + anchors.leftMargin: pluginMain.margin + color: monthBox.currentIndex == index ? viewSettings.buttonGreenColor : "white" + elide: Text.ElideRight + text: modelData + verticalAlignment: Text.AlignVCenter + font.pixelSize: pluginMain.valueFontSize + font.family: appFont + font.styleName: "Regular" + + } + } + onCurrentIndexChanged: selectedDate.setMonth(currentIndex) + } + + CustomComboBox { + id: yearBox + width: root.width * 0.2 + height: pluginMain.buttonHeight + displayText: currentIndex + firstYear + + model: 50 + itemsVisible: 8 + currentIndex: (selectedDate.getFullYear() >= firstYear) ? + selectedDate.getFullYear() - firstYear : 0 + + delegate: ItemDelegate { + id: yearDelegate + height: yearBox.height + // QTBUG-49224: contentItem: Item {} + Text { + anchors.left: yearDelegate.left + anchors.leftMargin: pluginMain.margin + text: index + firstYear + color: yearBox.currentIndex == index ? viewSettings.buttonGreenColor : "white" + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + font.pixelSize: pluginMain.valueFontSize + font.family: appFont + font.styleName: "Regular" + } + } + onCurrentIndexChanged: selectedDate.setFullYear(currentIndex + firstYear) + } + } // Row of date comboboxes + + Text { + color: "white" + text: qsTr("Set Time") + font.pixelSize: pluginMain.subTitleFontSize + font.family: appFont + } + + // Row of time comboboxes + Row { + spacing: pluginMain.spacing + leftPadding: pluginMain.margin + + CustomComboBox { + id: hourBox + width: root.width * 0.15 + height: pluginMain.buttonHeight + displayText: zeroPadTime(currentIndex) + + model: 24 + itemsVisible: 8 + currentIndex: selectedDate.getHours() + + delegate: ItemDelegate { + id: hourDelegate + height: hourBox.height + // QTBUG-49224: contentItem: Item {} + Text { + anchors.left: hourDelegate.left + anchors.leftMargin: pluginMain.margin + text: zeroPadTime(parseInt(modelData)) + color: hourBox.currentIndex == index ? viewSettings.buttonGreenColor : "white" + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + font.pixelSize: pluginMain.valueFontSize + font.family: appFont + font.styleName: "Regular" + } + } + onCurrentIndexChanged: selectedDate.setHours(currentIndex) + } + CustomComboBox { + id: minuteBox + width: root.width * 0.15 + height: pluginMain.buttonHeight + displayText: zeroPadTime(currentIndex) + + model: 60 + itemsVisible: 8 + currentIndex: selectedDate.getMinutes() + + delegate: ItemDelegate { + id: minuteDelegate + height: minuteBox.height + // QTBUG-49224: contentItem: Item {} + Text { + anchors.left: minuteDelegate.left + anchors.leftMargin: pluginMain.margin + text: zeroPadTime(parseInt(modelData)) + color: minuteBox.currentIndex == index ? viewSettings.buttonGreenColor : "white" + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + font.pixelSize: pluginMain.valueFontSize + font.family: appFont + font.styleName: "Regular" + } + } + onCurrentIndexChanged: selectedDate.setMinutes(currentIndex) + } + } // Row of time comboboxes + + // Row of set/cancel buttons + Row { + spacing: pluginMain.spacing + + QtButton { + id: dateSetButton + height: pluginMain.buttonHeight + text: qsTr("SET") + + onClicked: { + selectedDate.setSeconds(0); + TimeManager.ntp = false + TimeManager.time = selectedDate; + console.log("Set date to: " + selectedDate) + console.log("TimeManager.time: " + TimeManager.time) + settingsLoader.source = "qrc:/timedate/TimeDate.qml" + } + } + QtButton { + id: dateCancelButton + height: pluginMain.buttonHeight + fillColor: viewSettings.buttonGrayColor + borderColor: "transparent" + text: qsTr("CANCEL") + onClicked: { + settingsLoader.source = "qrc:/timedate/TimeDate.qml" + } + } + } // Row of set/cancel buttons + } // Main column +} |