diff options
Diffstat (limited to 'launcher/qml/IconItem.qml')
-rw-r--r-- | launcher/qml/IconItem.qml | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/launcher/qml/IconItem.qml b/launcher/qml/IconItem.qml new file mode 100644 index 0000000..342b539 --- /dev/null +++ b/launcher/qml/IconItem.qml @@ -0,0 +1,137 @@ +/* + * Copyright (C) 2016 The Qt Company Ltd. + * Copyright (c) 2018-2019 TOYOTA MOTOR CORPORATION + * + * 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.0 +import QtQuick.Controls 2.0 +import QtGraphicalEffects 1.0 +import "ChangeItemPosition.js" as Cip + +Item { + id: main + width: 300 + height: 300 + property string icon: model.icon + property int pid: -1 + property bool isBlank: false + property bool isPressing: false + + Timer { + id: launchTimer + interval: 650 + repeat: false + onTriggered: { + launchApp() + } + } + + Item { + id: container + width: main.width + height: main.height + MouseArea { + anchors.fill: parent + onClicked: { + if(main.state === "pos14") { + launchApp() + } else if(main.state === "pos4") { + Cip.prev() + launchTimer.start() + } else if(main.state === "pos3") { + Cip.prev() + Cip.prev() + launchTimer.start() + } else if(main.state === "pos2") { + Cip.prev() + Cip.prev() + Cip.prev() + launchTimer.start() + } else if(main.state === "pos1") { + Cip.prev() + Cip.prev() + Cip.prev() + Cip.prev() + launchTimer.start() + } else if(main.state === "pos6") { + Cip.next() + launchTimer.start() + } else if(main.state === "pos7") { + Cip.next() + Cip.next() + launchTimer.start() + } else if(main.state === "pos8") { + Cip.next() + Cip.next() + Cip.next() + launchTimer.start() + } else if(main.state === "pos9") { + Cip.next() + Cip.next() + Cip.next() + Cip.next() + launchTimer.start() + } + } + } + + Image { + id: item + anchors.fill: parent + source: './images/%1_active.png'.arg(model.icon) + property string initial: model.name.substring(0,1).toUpperCase() + property bool hasIcon: model.icon !== 'blank' + + Label { + style: Text.Outline + styleColor: 'white' + color: 'transparent' + font.pixelSize: 225 + anchors.centerIn: parent + anchors.verticalCenterOffset: -50 + text: item.initial + visible: item.hasIcon ? false : true + } + + Label { + id: name + anchors.bottom: item.bottom + anchors.left: parent.left + anchors.right: parent.right + anchors.margins: 20 + font.pixelSize: 25 + font.letterSpacing: 5 + wrapMode: Text.WordWrap + horizontalAlignment: Text.AlignHCenter + color: "white" + text: qsTr(model.name.toUpperCase()) + } + + } + } + function iconPressed() { + item.source = './images/%1_inactive.png'.arg(model.icon) + } + function iconReleased() { + item.source = './images/%1_active.png'.arg(model.icon) + } + function launchApp() { + pid = launcher.launch(model.id) + if (1 < pid) { + } else { + console.warn("app cannot be launched!") + } + homescreenHandler.tapShortcut(model.name) + } +} |