mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-04-24 23:47:20 +00:00
add tag selector row
This commit is contained in:
parent
eea636c6f1
commit
57ad8a0a2b
@ -68,113 +68,68 @@ Item {
|
|||||||
textArea: textPattern
|
textArea: textPattern
|
||||||
}
|
}
|
||||||
|
|
||||||
Row {
|
AWTagSelector {
|
||||||
height: implicitHeight
|
backend: awKeys
|
||||||
width: parent.width
|
notifyBackend: awActions
|
||||||
QtControls.ComboBox {
|
textArea: textPattern
|
||||||
width: parent.width * 2 / 5
|
groups: [
|
||||||
textRole: "label"
|
{
|
||||||
model: [
|
'label': i18n("AC"),
|
||||||
{
|
'regexp': "^(ac|bat).*"
|
||||||
'label': i18n("AC"),
|
},
|
||||||
'regexp': "^(ac|bat).*"
|
{
|
||||||
},
|
'label': i18n("Bars"),
|
||||||
{
|
'regexp': "^bar.*"
|
||||||
'label': i18n("Bars"),
|
},
|
||||||
'regexp': "^bar.*"
|
{
|
||||||
},
|
'label': i18n("CPU"),
|
||||||
{
|
'regexp': "^(cpu|gpu|la|ps|temp(?!erature)).*"
|
||||||
'label': i18n("CPU"),
|
},
|
||||||
'regexp': "^(cpu|gpu|la|ps|temp(?!erature)).*"
|
{
|
||||||
},
|
'label': i18n("Desktops"),
|
||||||
{
|
'regexp': "^(n|t)?desktop(s)?"
|
||||||
'label': i18n("Desktops"),
|
},
|
||||||
'regexp': "^(n|t)?desktop(s)?"
|
{
|
||||||
},
|
'label': i18n("HDD"),
|
||||||
{
|
'regexp': "^hdd.*"
|
||||||
'label': i18n("HDD"),
|
},
|
||||||
'regexp': "^hdd.*"
|
{
|
||||||
},
|
'label': i18n("Memory"),
|
||||||
{
|
'regexp': "^(mem|swap).*"
|
||||||
'label': i18n("Memory"),
|
},
|
||||||
'regexp': "^(mem|swap).*"
|
{
|
||||||
},
|
'label': i18n("Network"),
|
||||||
{
|
'regexp': "^(netdev|(down|up(?!time)).*)"
|
||||||
'label': i18n("Network"),
|
},
|
||||||
'regexp': "^(netdev|(down|up(?!time)).*)"
|
{
|
||||||
},
|
'label': i18n("Music player"),
|
||||||
{
|
'regexp': "(^|d|s)(album|artist|duration|progress|title)"
|
||||||
'label': i18n("Music player"),
|
},
|
||||||
'regexp': "(^|d|s)(album|artist|duration|progress|title)"
|
{
|
||||||
},
|
'label': i18n("Scripts"),
|
||||||
{
|
'regexp': "^custom.*"
|
||||||
'label': i18n("Scripts"),
|
},
|
||||||
'regexp': "^custom.*"
|
{
|
||||||
},
|
'label': i18n("Time"),
|
||||||
{
|
'regexp': ".*time$"
|
||||||
'label': i18n("Time"),
|
},
|
||||||
'regexp': ".*time$"
|
{
|
||||||
},
|
'label': i18n("Quotes"),
|
||||||
{
|
'regexp': "^(perc)?(ask|bid|price)(chg)?.*"
|
||||||
'label': i18n("Quotes"),
|
},
|
||||||
'regexp': "^(perc)?(ask|bid|price)(chg)?.*"
|
{
|
||||||
},
|
'label': i18n("Upgrades"),
|
||||||
{
|
'regexp': "^pkgcount.*"
|
||||||
'label': i18n("Upgrades"),
|
},
|
||||||
'regexp': "^pkgcount.*"
|
{
|
||||||
},
|
'label': i18n("Weathers"),
|
||||||
{
|
'regexp': "^(weather(Id)?|humidity|pressure|temperature|timestamp)"
|
||||||
'label': i18n("Weathers"),
|
},
|
||||||
'regexp': "^(weather(Id)?|humidity|pressure|temperature|timestamp)"
|
{
|
||||||
},
|
'label': i18n("Functions"),
|
||||||
{
|
'regexp': "functions"
|
||||||
'label': i18n("Functions"),
|
|
||||||
'regexp': "functions"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
onCurrentIndexChanged: {
|
|
||||||
if (debug) console.debug()
|
|
||||||
if (model[currentIndex]["regexp"] == "functions")
|
|
||||||
tags.model = ["{{\n\n}}", "template{{\n\n}}",
|
|
||||||
"aw_all<>{{}}", "aw_count<>{{}}", "aw_keys<>{{}}",
|
|
||||||
"aw_macro<>{{}}", "aw_names<>{{}}"]
|
|
||||||
else
|
|
||||||
tags.model = awKeys.dictKeys(true, model[currentIndex]["regexp"])
|
|
||||||
if (debug) console.info("Init model", tags.model, "for", model[currentIndex]["label"])
|
|
||||||
tags.currentIndex = -1
|
|
||||||
}
|
}
|
||||||
}
|
]
|
||||||
QtControls.ComboBox {
|
|
||||||
id: tags
|
|
||||||
width: parent.width * 1 / 5
|
|
||||||
}
|
|
||||||
QtControls.Button {
|
|
||||||
width: parent.width * 1 / 5
|
|
||||||
text: i18n("Add")
|
|
||||||
|
|
||||||
onClicked: {
|
|
||||||
if (!tags.currentText) return
|
|
||||||
if (debug) console.debug("Add tag button")
|
|
||||||
var selected = textPattern.selectedText
|
|
||||||
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
|
|
||||||
textPattern.insert(textPattern.cursorPosition, selected + "$" + tags.currentText)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
QtControls.Button {
|
|
||||||
width: parent.width * 1 / 5
|
|
||||||
text: i18n("Show value")
|
|
||||||
|
|
||||||
onClicked: {
|
|
||||||
if (!tags.currentText) return
|
|
||||||
if (debug) console.debug("Show tag button")
|
|
||||||
var message = i18n("Tag: %1", tags.currentText)
|
|
||||||
message += "<br>"
|
|
||||||
message += i18n("Value: %1", awKeys.valueByKey(tags.currentText))
|
|
||||||
message += "<br>"
|
|
||||||
message += i18n("Info: %1", awKeys.infoByKey(tags.currentText))
|
|
||||||
awActions.sendNotification("tag", message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
|
82
sources/qml/AWTagSelector.qml
Normal file
82
sources/qml/AWTagSelector.qml
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
* This file is part of awesome-widgets *
|
||||||
|
* *
|
||||||
|
* awesome-widgets is free software: you can redistribute it and/or *
|
||||||
|
* modify it under the terms of the GNU General Public License as *
|
||||||
|
* published by the Free Software Foundation, either version 3 of the *
|
||||||
|
* License, or (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* awesome-widgets is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
import QtQuick 2.2
|
||||||
|
import QtQuick.Controls 1.3 as QtControls
|
||||||
|
|
||||||
|
|
||||||
|
Row {
|
||||||
|
height: implicitHeight
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
// backend
|
||||||
|
property var backend
|
||||||
|
property var notifyBackend
|
||||||
|
// parent object in which text will be replaced
|
||||||
|
property var textArea
|
||||||
|
property alias groups: tagGroups.model
|
||||||
|
|
||||||
|
QtControls.ComboBox {
|
||||||
|
id: tagGroups
|
||||||
|
width: parent.width * 2 / 5
|
||||||
|
textRole: "label"
|
||||||
|
|
||||||
|
onCurrentIndexChanged: {
|
||||||
|
if (model[currentIndex]["regexp"] == "functions")
|
||||||
|
tags.model = ["{{\n\n}}", "template{{\n\n}}",
|
||||||
|
"aw_all<>{{}}", "aw_count<>{{}}", "aw_keys<>{{}}",
|
||||||
|
"aw_macro<>{{}}", "aw_names<>{{}}"]
|
||||||
|
else
|
||||||
|
tags.model = backend.dictKeys(true, model[currentIndex]["regexp"])
|
||||||
|
tags.currentIndex = -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QtControls.ComboBox {
|
||||||
|
id: tags
|
||||||
|
width: parent.width * 1 / 5
|
||||||
|
}
|
||||||
|
|
||||||
|
QtControls.Button {
|
||||||
|
width: parent.width * 1 / 5
|
||||||
|
text: i18n("Add")
|
||||||
|
|
||||||
|
onClicked: {
|
||||||
|
if (!tags.currentText)
|
||||||
|
return
|
||||||
|
textArea.insert(textArea.cursorPosition, "$" + tags.currentText)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QtControls.Button {
|
||||||
|
width: parent.width * 1 / 5
|
||||||
|
text: i18n("Show value")
|
||||||
|
|
||||||
|
onClicked: {
|
||||||
|
if ((!notifyBackend)
|
||||||
|
|| (!tags.currentText))
|
||||||
|
return
|
||||||
|
// generate message
|
||||||
|
var message = i18n("Tag: %1", tags.currentText)
|
||||||
|
message += "<br>"
|
||||||
|
message += i18n("Value: %1", backend.valueByKey(tags.currentText))
|
||||||
|
message += "<br>"
|
||||||
|
message += i18n("Info: %1", backend.infoByKey(tags.currentText))
|
||||||
|
notifyBackend.sendNotification("tag", message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user