Warning, /plasma-mobile/mycroft-plasmoid-mobile/plasmoid/contents/ui/PulleyItemDash.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 import QtQuick 2.9 0021 import org.kde.plasma.core 2.0 as PlasmaCore 0022 import org.kde.plasma.components 2.0 as PlasmaComponents 0023 import org.kde.plasma.extras 2.0 as PlasmaExtras 0024 import QtGraphicalEffects 1.0 0025 0026 Item { 0027 id: pulleyFrame 0028 anchors.fill: parent 0029 property bool opened: state === "PulleyExpanded" 0030 property bool closed: state === "PulleyClosed" 0031 property bool _isVisible 0032 property var barColor 0033 signal pulleyExpanded() 0034 signal pulleyClosed() 0035 0036 function open() { 0037 pulleyFrame.state = "PulleyExpanded"; 0038 pulleyExpanded(); 0039 } 0040 0041 function close() { 0042 pulleyFrame.state = "PulleyClosed"; 0043 pulleyClosed(); 0044 } 0045 0046 states: [ 0047 State { 0048 name: "PulleyExpanded" 0049 PropertyChanges { target: pulleyMenu; height: cbheight / 6 - pulleyIconBar.height; } 0050 PropertyChanges { target: pulleydashMenu; visible: true; } 0051 PropertyChanges { target: menudrawIcon; source: "go-down";} 0052 }, 0053 State { 0054 name: "PulleyClosed" 0055 PropertyChanges { target: pulleyMenu; height: 0; } 0056 PropertyChanges { target: pulleydashMenu; visible: false; } 0057 PropertyChanges { target: menudrawIcon; source: "go-up";} 0058 } 0059 ] 0060 0061 0062 transitions: [ 0063 Transition { 0064 to: "*" 0065 NumberAnimation { target: pulleyMenu; properties: "height"; duration: 450; easing.type: Easing.OutCubic; } 0066 } 0067 ] 0068 0069 Rectangle { 0070 id: pulleyIconBar 0071 anchors.bottom: pulleyMenu.top 0072 anchors.bottomMargin: 0 0073 height: units.gridUnit * 0.40 0074 color: barColor 0075 width: cbwidth 0076 PlasmaCore.IconItem { 0077 id: menudrawIcon 0078 visible: _isVisible 0079 anchors.centerIn: parent 0080 source: "go-up" 0081 width: units.gridUnit * 1.25 0082 height: units.gridUnit * 1.25 0083 } 0084 0085 MouseArea{ 0086 anchors.fill: parent 0087 propagateComposedEvents: true 0088 onClicked: { 0089 if (pulleyFrame.opened) { 0090 pulleyFrame.close(); 0091 } else { 0092 pulleyFrame.open(); 0093 } 0094 } 0095 } 0096 } 0097 0098 Rectangle { 0099 id: pulleyMenu 0100 width: parent.width 0101 color: PlasmaCore.ColorScope.backgroundColor 0102 anchors.bottom: parent.bottom 0103 height: 0 0104 0105 Item { 0106 id: pulleydashMenu 0107 anchors.fill: parent 0108 visible: false 0109 0110 PlasmaComponents.Button { 0111 id: refreshDashBtn 0112 anchors.left: parent.left 0113 anchors.top: parent.top 0114 width: parent.width / 2 0115 height: parent.height 0116 text: i18n("Refresh Dashboard") 0117 0118 onClicked: { 0119 convoLmodel.clear() 0120 showDash("setVisible") 0121 } 0122 } 0123 PlasmaComponents.Button { 0124 id: settingsDashBtn 0125 anchors.left: refreshDashBtn.right 0126 anchors.top: parent.top 0127 width: parent.width / 2 0128 height: parent.height 0129 text: i18n("Change Settings") 0130 0131 onClicked: { 0132 tabBar.currentTab = mycroftSettingsTab 0133 settingstabBar.currentTab = dashSettingsTab 0134 } 0135 } 0136 } 0137 0138 Item { 0139 id: pulleyEndArea 0140 anchors.bottom: parent.bottom 0141 anchors.bottomMargin: units.gridUnit * 1.22 0142 width: parent.width 0143 height: units.gridUnit * 2.5 0144 } 0145 } 0146 }