awesome-widgets/sources/awesome-widget/package/contents/ui/advanced.qml

258 lines
7.9 KiB
QML

/***************************************************************************
* 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.15
import QtQuick.Controls
import org.kde.kcmutils as KCM
import org.kde.plasma.private.awesomewidget 1.0
KCM.SimpleKCM {
id: advancedPage
// backend
AWActions {
id: awActions
}
property alias cfg_background: background.checked
property alias cfg_translateStrings: translate.checked
property alias cfg_wrapNewLines: wrapNewLines.checked
property alias cfg_wrapText: wordWrap.checked
property alias cfg_notify: notify.checked
property alias cfg_checkUpdates: updates.checked
property alias cfg_optimize: optimize.checked
property alias cfg_height: widgetHeight.value
property alias cfg_width: widgetWidth.value
property alias cfg_interval: update.value
property alias cfg_queueLimit: queueLimit.value
property string cfg_tempUnits: tempUnits.value
property alias cfg_customTime: customTime.value
property alias cfg_customUptime: customUptime.value
property alias cfg_acOnline: acOnline.value
property alias cfg_acOffline: acOffline.value
property alias cfg_telemetryCount: telemetryCount.value
property alias cfg_telemetryRemote: telemetryRemote.checked
property alias cfg_telemetryId: telemetryId.value
Column {
id: pageColumn
anchors.fill: parent
CheckBoxSelector {
id: background
text: i18n("Enable background")
}
CheckBoxSelector {
id: translate
text: i18n("Translate strings")
}
CheckBoxSelector {
id: wrapNewLines
text: i18n("Wrap new lines")
}
CheckBoxSelector {
id: wordWrap
text: i18n("Enable word wrap")
}
CheckBoxSelector {
id: notify
text: i18n("Enable notifications")
}
CheckBoxSelector {
id: updates
text: i18n("Check updates on startup")
}
CheckBoxSelector {
id: optimize
text: i18n("Optimize subscription")
}
IntegerSelector {
id: widgetHeight
maximumValue: 4096
minimumValue: 0
stepSize: 50
text: i18n("Widget height, px")
value: plasmoid.configuration.height
}
IntegerSelector {
id: widgetWidth
maximumValue: 4096
minimumValue: 0
stepSize: 50
text: i18n("Widget width, px")
value: plasmoid.configuration.width
}
IntegerSelector {
id: update
maximumValue: 10000
minimumValue: 1000
stepSize: 500
text: i18n("Time interval")
value: plasmoid.configuration.interval
}
IntegerSelector {
id: queueLimit
maximumValue: 99
minimumValue: 0
stepSize: 1
text: i18n("Messages queue limit")
value: plasmoid.configuration.queueLimit
}
ComboBoxSelector {
id: tempUnits
model: [
{
'label': i18n("Celsius"),
'name': "Celsius"
},
{
'label': i18n("Fahrenheit"),
'name': "Fahrenheit"
},
{
'label': i18n("Kelvin"),
'name': "Kelvin"
},
{
'label': i18n("Reaumur"),
'name': "Reaumur"
},
{
'label': i18n("cm^-1"),
'name': "cm^-1"
},
{
'label': i18n("kJ/mol"),
'name': "kJ/mol"
},
{
'label': i18n("kcal/mol"),
'name': "kcal/mol"
}
]
text: i18n("Temperature units")
value: plasmoid.configuration.tempUnits
onValueEdited: newValue => cfg_tempUnits = newValue
}
LineSelector {
id: customTime
text: i18n("Custom time format")
value: plasmoid.configuration.customTime
}
LineSelector {
id: customUptime
text: i18n("Custom uptime format")
value: plasmoid.configuration.customUptime
}
LineSelector {
id: acOnline
text: i18n("AC online tag")
value: plasmoid.configuration.acOnline
}
LineSelector {
id: acOffline
text: i18n("AC offline tag")
value: plasmoid.configuration.acOffline
}
GroupBox {
width: parent.width
height: implicitHeight
title: i18n("Actions")
Column {
height: implicitHeight
width: parent.width
ButtonSelector {
value: i18n("Drop key cache")
onButtonActivated: awActions.dropCache()
}
ButtonSelector {
ExportDialog {
id: saveConfigAs
configuration: plasmoid.configuration
}
value: i18n("Export configuration")
onButtonActivated: saveConfigAs.open()
}
ButtonSelector {
ImportDialog {
id: loadConfigFrom
onConfigurationReceived: {
for (const key in configuration)
plasmoid.configuration[key] = configuration[key]
}
}
value: i18n("Import configuration")
onButtonActivated: loadConfigFrom.open()
}
}
}
GroupBox {
height: implicitHeight
width: parent.width
title: i18n("Telemetry")
Column {
height: implicitHeight
width: parent.width
CheckBoxSelector {
id: telemetryRemote
text: i18n("Enable remote telemetry")
}
IntegerSelector {
id: telemetryCount
maximumValue: 10000
minimumValue: 0
stepSize: 50
text: i18n("History count")
value: plasmoid.configuration.telemetryCount
}
LineSelector {
id: telemetryId
text: i18n("Telemetry ID")
value: plasmoid.configuration.telemetryId
}
}
}
}
}