diff options
author | Tasuku Suzuki <tasuku.suzuki@qt.io> | 2016-12-14 18:10:54 +0900 |
---|---|---|
committer | Tasuku Suzuki <tasuku.suzuki@qt.io> | 2016-12-14 23:23:02 +0900 |
commit | b90978a93e23a91d8c3f4fa8ec023c60340bdea5 (patch) | |
tree | 3b4b61098af36f87aedc147724e78258f11e9e7c /app/datetime/DateEdit.qml | |
parent | 0c6dc3554d0afda54c671f0416cf77cb5e20814f (diff) |
merge the Settings in CES2017 and bindings from ALPS
Change-Id: I00a7a6c5dae1cd579f91d543b0f5fba4616a633b
Signed-off-by: Tasuku Suzuki <tasuku.suzuki@qt.io>
Diffstat (limited to 'app/datetime/DateEdit.qml')
-rw-r--r-- | app/datetime/DateEdit.qml | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/app/datetime/DateEdit.qml b/app/datetime/DateEdit.qml new file mode 100644 index 0000000..f9f75fd --- /dev/null +++ b/app/datetime/DateEdit.qml @@ -0,0 +1,122 @@ +/* + * Copyright (C) 2016 The Qt Company Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import QtQuick 2.6 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.0 +import AGL.Demo.Controls 1.0 + +GridLayout { + id: root + flow: GridLayout.TopToBottom + rows: 3 + + property int year: yearControl.model[yearControl.currentIndex] + property int month: monthControl.currentIndex + 1 + property int day: dayControl.currentIndex + 1 + + ImageButton { + Layout.alignment: Layout.Center + offImage: './images/HMI_Settings_TimeDate_Arrow_Up.svg' + onClicked: monthControl.currentIndex++ + } + Tumbler { + id: monthControl + implicitWidth: 200 + model: ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'] + onCurrentIndexChanged: dayControl.regenerateModel() + + EditSeparator { anchors.fill: parent } + } + ImageButton { + Layout.alignment: Layout.Center + offImage: './images/HMI_Settings_TimeDate_Arrow_Down.svg' + onClicked: monthControl.currentIndex-- + } + + Item { width: 10; height: 10 } + Label { text: ':' } + Item { width: 10; height: 10 } + + ImageButton { + Layout.alignment: Layout.Center + offImage: './images/HMI_Settings_TimeDate_Arrow_Up.svg' + onClicked: dayControl.currentIndex++ + } + + Tumbler { + id: dayControl + model: ListModel{ + id: monthModel + } + Component.onCompleted: regenerateModel() + function regenerateModel() { + var eom = 0 + var y = yearControl.model[yearControl.currentIndex] + var m = monthControl.currentIndex + 1 + switch (m) { + case 2: + eom = 28 + parseInt(1 / (y % 4 + 1)) - parseInt(1 - 1 / (y % 100 + 1)) + parseInt(1 / (y % 400 + 1)) + break + case 4: + case 6: + case 9: + case 11: + eom = 30 + break + default: + eom = 31 + break + } + while (monthModel.count < eom) + monthModel.append({modelData: monthModel.count + 1}) + while (monthModel.count > eom) + monthModel.remove(monthModel.count - 1, 1) + } + EditSeparator { anchors.fill: parent } + } + + ImageButton { + Layout.alignment: Layout.Center + offImage: './images/HMI_Settings_TimeDate_Arrow_Down.svg' + onClicked: dayControl.currentIndex-- + } + + ImageButton { + Layout.alignment: Layout.Center + offImage: './images/HMI_Settings_TimeDate_Arrow_Up.svg' + onClicked: yearControl.currentIndex++ + } + + Tumbler { + id: yearControl + Component.onCompleted: { + var arr = new Array + for (var i = 2010; i < 2050; i++) { + arr.push(i) + } + yearControl.model = arr + } + onCurrentIndexChanged: dayControl.regenerateModel() + EditSeparator { anchors.fill: parent } + } + + ImageButton { + Layout.alignment: Layout.Center + offImage: './images/HMI_Settings_TimeDate_Arrow_Down.svg' + onClicked: yearControl.currentIndex-- + } +} |