Warning, /plasma-mobile/mycroft-plasmoid-mobile/plasmoid/contents/ui/PulleyItem.qml is written in an unsupported language. File is not indexed.
0001 /* Copyright 2016 Aditya Mehra <aix.m@outlook.com> 0002 0003 This library is free software; you can redistribute it and/or 0004 modify it under the terms of the GNU Lesser General Public 0005 License as published by the Free Software Foundation; either 0006 version 2.1 of the License, or (at your option) version 3, or any 0007 later version accepted by the membership of KDE e.V. (or its 0008 successor approved by the membership of KDE e.V.), which shall 0009 act as a proxy defined in Section 6 of version 3 of the license. 0010 0011 This library is distributed in the hope that it will be useful, 0012 but WITHOUT ANY WARRANTY; without even the implied warranty of 0013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0014 Lesser General Public License for more details. 0015 0016 You should have received a copy of the GNU Lesser General Public 0017 License along with this library. If not, see <http://www.gnu.org/licenses/>. 0018 */ 0019 0020 0021 import QtQuick 2.9 0022 import org.kde.plasma.core 2.0 as PlasmaCore 0023 import org.kde.plasma.components 2.0 as PlasmaComponents 0024 import org.kde.plasma.extras 2.0 as PlasmaExtras 0025 import QtGraphicalEffects 1.0 0026 0027 Item { 0028 id: pulleyFrame 0029 anchors.fill: parent 0030 anchors.topMargin: units.gridUnit * 0.05 0031 anchors.bottomMargin: units.gridUnit * 0.02 0032 property bool opened: state === "PulleyExpanded" 0033 property bool closed: state === "PulleyClosed" 0034 property bool _isVisible 0035 property var barColor 0036 signal pulleyExpanded() 0037 signal pulleyClosed() 0038 0039 function open() { 0040 pulleyFrame.state = "PulleyExpanded"; 0041 pulleyExpanded(); 0042 } 0043 0044 function close() { 0045 pulleyFrame.state = "PulleyClosed"; 0046 pulleyListView.positionViewAtBeginning() 0047 pulleyClosed(); 0048 } 0049 0050 states: [ 0051 State { 0052 name: "PulleyExpanded" 0053 PropertyChanges { target: pulleyMenu; height: pulleyFrame.height - pulleyIconBar.height; } 0054 PropertyChanges { target: pulleyListView; interactive: true; } 0055 PropertyChanges { target: menudrawIcon; source: "go-down";} 0056 }, 0057 State { 0058 name: "PulleyClosed" 0059 PropertyChanges { target: pulleyMenu; height: 0; } 0060 PropertyChanges { target: pulleyListView; interactive: false; } 0061 PropertyChanges { target: menudrawIcon; source: "go-up";} 0062 } 0063 ] 0064 0065 0066 transitions: [ 0067 Transition { 0068 to: "*" 0069 NumberAnimation { target: pulleyMenu; properties: "height"; duration: 450; easing.type: Easing.OutCubic; } 0070 } 0071 ] 0072 0073 Rectangle { 0074 id: pulleyIconBar 0075 anchors.bottom: pulleyMenu.top 0076 anchors.bottomMargin: 4 0077 height: units.gridUnit * 0.40 0078 color: barColor 0079 width: cbwidth 0080 PlasmaCore.IconItem { 0081 id: menudrawIcon 0082 visible: _isVisible 0083 anchors.centerIn: parent 0084 source: "go-up" 0085 width: units.gridUnit * 1.25 0086 height: units.gridUnit * 1.25 0087 } 0088 0089 MouseArea{ 0090 anchors.fill: parent 0091 propagateComposedEvents: true 0092 onClicked: { 0093 if (pulleyFrame.opened) { 0094 pulleyFrame.close(); 0095 } else { 0096 pulleyFrame.open(); 0097 } 0098 } 0099 } 0100 } 0101 0102 Rectangle { 0103 id: pulleyMenu 0104 width: parent.width 0105 color: PlasmaCore.ColorScope.backgroundColor 0106 anchors.bottom: parent.bottom 0107 height: 0 0108 0109 ListView { 0110 id: pulleyListView 0111 width: parent.width 0112 anchors.top: parent.top 0113 anchors.bottom: pulleyEndArea.bottom 0114 model: SkillModel{} 0115 clip: true 0116 interactive: false; 0117 spacing: 5 0118 delegate: 0119 Rectangle { 0120 id: pulleyDelegateListBg 0121 height: units.gridUnit * 2.5 0122 color: Qt.darker(PlasmaCore.ColorScope.backgroundColor, 1.2) 0123 radius: 4 0124 anchors.left: parent.left 0125 anchors.right: parent.right 0126 anchors.leftMargin: units.gridUnit * 0.50 0127 anchors.rightMargin: units.gridUnit * 0.50 0128 layer.enabled: true 0129 layer.effect: DropShadow { 0130 horizontalOffset: 0 0131 verticalOffset: 1 0132 radius: 10 0133 samples: 32 0134 spread: 0.1 0135 color: Qt.rgba(0, 0, 0, 0.3) 0136 } 0137 0138 MouseArea { 0139 anchors.fill: parent 0140 hoverEnabled: true 0141 propagateComposedEvents: true 0142 0143 onEntered: { 0144 removeItemButton.visible = true 0145 pulleyDelegateListBg.color = theme.linkColor 0146 } 0147 onExited: { 0148 removeItemButton.visible = false 0149 pulleyDelegateListBg.color = Qt.darker(PlasmaCore.ColorScope.backgroundColor, 1.2) 0150 } 0151 onClicked: { 0152 pulleyFrame.close(); 0153 var genExampleQuery = CommandList.get(0).Commands; 0154 var exampleQuery = genExampleQuery.toString().split(","); 0155 var socketmessage = {}; 0156 socketmessage.type = "recognizer_loop:utterance"; 0157 socketmessage.data = {}; 0158 socketmessage.data.utterances = [exampleQuery[1].toLowerCase()]; 0159 socket.sendTextMessage(JSON.stringify(socketmessage)); 0160 qinput.text = ""; 0161 } 0162 } 0163 0164 PlasmaCore.IconItem { 0165 id: removeItemButton 0166 source: "window-close" 0167 width: units.gridUnit * 1.5 0168 height: units.gridUnit * 1.5 0169 anchors.verticalCenter: parent.verticalCenter 0170 anchors.right: parent.right 0171 anchors.rightMargin: units.gridUnit * 0.50 0172 visible: false 0173 0174 MouseArea { 0175 anchors.fill: parent 0176 hoverEnabled: true 0177 propagateComposedEvents: true 0178 onEntered: { 0179 removeItemButton.visible = true 0180 } 0181 onClicked: { 0182 SkillModel.remove(index) 0183 } 0184 } 0185 } 0186 0187 PlasmaComponents.Label { 0188 id: pulleyDelegateListLabel 0189 anchors.centerIn: parent 0190 text: CommandList.get(0).Commands 0191 color: PlasmaCore.ColorScope.textColor 0192 0193 } 0194 } 0195 } 0196 0197 Item { 0198 id: pulleyEndArea 0199 anchors.bottom: parent.bottom 0200 anchors.bottomMargin: units.gridUnit * 1.22 0201 width: parent.width 0202 height: units.gridUnit * 2.5 0203 } 0204 } 0205 }