Warning, /plasma-mobile/mycroft-plasmoid-mobile/plasmoid/contents/ui/MsmView.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 QtQuick.Layouts 1.3 0022 import QtQuick.Controls 2.2 0023 import org.kde.plasma.core 2.0 as PlasmaCore 0024 import org.kde.plasma.plasmoid 2.0 0025 import org.kde.plasma.components 2.0 as PlasmaComponents 0026 import org.kde.plasma.extras 2.0 as PlasmaExtras 0027 import org.kde.private.mycroftplasmoidmobile 1.0 as PlasmaLa 0028 import Qt.labs.settings 1.0 0029 0030 Rectangle { 0031 id: skillcontent 0032 Layout.fillWidth: true; 0033 anchors { 0034 left: parent.left; 0035 leftMargin: 0.5; 0036 right: parent.right 0037 } 0038 height: units.gridUnit * 4 0039 border.width: 1 0040 border.color: Qt.darker(theme.linkColor, 1.2) 0041 color: Qt.darker(theme.backgroundColor, 1.2) 0042 0043 function exec(msmparam) { 0044 var bscrpt = "/usr/share/plasma/plasmoids/org.kde.plasma.mycroftplasmoid/contents/code/msm.sh" 0045 return launchinstaller.msmapp("bash " + bscrpt + " install " + model.url) 0046 } 0047 0048 function getSkillInfoLocal() { 0049 var customFold = '/opt/mycroft/skills/' 0050 var skillPath = customFold + model.name 0051 if(PlasmaLa.FileReader.file_exists_local(skillPath)){ 0052 installLabl.text = i18n("Installed") 0053 getskillviamsmRect.color = Qt.lighter(theme.textColor, 1.2) 0054 installLabl.color = Qt.darker(theme.backgroundColor, 1.2) 0055 skillcontent.border.color = Qt.lighter(theme.textColor, 1.2) 0056 } 0057 } 0058 0059 PlasmaLa.MsmApp{ 0060 id: launchinstaller 0061 } 0062 0063 Component.onCompleted: { 0064 msmSkillInstallProgBar.visible = false; 0065 getSkillInfoLocal(); 0066 } 0067 0068 PlasmaComponents.Label { 0069 id: skllname 0070 font.capitalization: Font.AllUppercase 0071 anchors.top: parent.top 0072 anchors.left: parent.left 0073 anchors.leftMargin: units.gridUnit * 0.5 0074 anchors.right: parent.right 0075 anchors.rightMargin: units.gridUnit * 0.5 0076 wrapMode: Text.WordWrap 0077 text: model.name 0078 Rectangle { 0079 id: sepratrmsm 0080 width: parent.width 0081 height: 1 0082 anchors.left: parent.left 0083 anchors.bottom: parent.bottom 0084 anchors.bottomMargin: 2 0085 color: Qt.darker(theme.linkColor, 1.2) 0086 } 0087 } 0088 0089 PlasmaComponents.Label { 0090 id: urlskllable 0091 anchors.top: skllname.bottom 0092 anchors.topMargin: units.gridUnit * 0.03 0093 anchors.left: parent.left 0094 anchors.leftMargin: units.gridUnit * 0.5 0095 anchors.right: parent.right 0096 anchors.rightMargin: units.gridUnit * 0.5 0097 wrapMode: Text.WordWrap 0098 color: theme.textColor 0099 text: model.url 0100 0101 MouseArea{ 0102 id: gotoGit 0103 anchors.fill: parent 0104 hoverEnabled: true 0105 onClicked: {Qt.openUrlExternally(model.url)} 0106 onEntered: { 0107 urlskllable.color = Qt.darker(theme.linkColor, 1.2) 0108 } 0109 onExited: { 0110 urlskllable.color = theme.textColor 0111 } 0112 } 0113 } 0114 0115 Rectangle { 0116 id: getskillviamsmRect 0117 width: parent.width 0118 height: units.gridUnit * 1 0119 anchors.bottom: parent.bottom 0120 color: Qt.darker(theme.linkColor, 1.2) 0121 0122 PlasmaComponents.Label{ 0123 id: installLabl 0124 wrapMode: Text.WordWrap 0125 anchors.centerIn: parent 0126 text: i18n("Install") 0127 color: Qt.darker(theme.backgroundColor, 1.2) 0128 } 0129 0130 PlasmaComponents.ProgressBar { 0131 anchors.centerIn: parent 0132 width: parent.width / 1.2 0133 id: msmSkillInstallProgBar 0134 visible: false 0135 indeterminate: false 0136 } 0137 0138 MouseArea { 0139 anchors.fill: parent 0140 hoverEnabled: true 0141 onEntered: { 0142 switch(installLabl.text){ 0143 case i18n("Install"): 0144 getskillviamsmRect.color = Qt.lighter(theme.backgroundColor, 1.2) 0145 installLabl.color = Qt.darker(theme.linkColor, 1.2) 0146 getskillviamsmRect.border.width = 1 0147 getskillviamsmRect.border.color = Qt.darker(theme.linkColor, 1.2) 0148 break 0149 case i18n("Installed"): 0150 getskillviamsmRect.color = Qt.lighter(theme.textColor, 1.2) 0151 installLabl.color = Qt.darker(theme.backgroundColor, 1.2) 0152 getskillviamsmRect.border.width = 0 0153 getskillviamsmRect.border.color = Qt.darker(theme.backgroundColor, 1.2) 0154 skillcontent.border.color = Qt.darker(theme.textColor, 1.2) 0155 break 0156 } 0157 } 0158 onExited: { 0159 switch(installLabl.text){ 0160 case i18n("Install"): 0161 getskillviamsmRect.color = Qt.darker(theme.linkColor, 1.2) 0162 installLabl.color = Qt.darker(theme.backgroundColor, 1.2) 0163 getskillviamsmRect.border.width = 0 0164 break 0165 case i18n("Installed"): 0166 getskillviamsmRect.color = Qt.lighter(theme.textColor, 1.2) 0167 installLabl.color = Qt.darker(theme.backgroundColor, 1.2) 0168 getskillviamsmRect.border.width = 0 0169 getskillviamsmRect.color = Qt.lighter(theme.textColor, 1.2) 0170 skillcontent.border.color = Qt.lighter(theme.textColor, 1.2) 0171 break 0172 } 0173 } 0174 onClicked: { 0175 var msmprogress = exec() 0176 var getcurrentprogress = msmprogress.split("\n") 0177 if(getcurrentprogress.indexOf("Cloning repository") != -1) 0178 { 0179 installLabl.visible = false 0180 msmSkillInstallProgBar.visible = true; 0181 msmSkillInstallProgBar.indeterminate = true; 0182 } 0183 if(getcurrentprogress.indexOf("Skill installed!") != -1) 0184 { 0185 msmSkillInstallProgBar.visible = false 0186 installLabl.visible = true 0187 installLabl.text = i18n("Installed") 0188 getSkillInfoLocal() 0189 } 0190 } 0191 } 0192 } 0193 } 0194