Compare commits

..

No commits in common. "63f1aa81250f5122991c9bce1b2d5ebcfcd03ab0" and "4fcea42e8efe0e057fa981d4f08a519b34651f40" have entirely different histories.

40 changed files with 546 additions and 200 deletions

View File

@ -27,10 +27,10 @@ jobs:
run: pacman -Sy --noconfirm base-devel cmake extra-cmake-modules python util-linux-libs xorg-server-xvfb run: pacman -Sy --noconfirm base-devel cmake extra-cmake-modules python util-linux-libs xorg-server-xvfb
- name: install dependencies - name: install dependencies
run: pacman -S --noconfirm plasma-workspace run: pacman -S --noconfirm plasma-workspace ksysguard
- name: configure cmake - name: configure cmake
run: cmake -B build -S sources -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_FUTURE=ON -DBUILD_TESTING=ON run: cmake -B build -DKDE_INSTALL_USE_QT_SYS_PATHS=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_FUTURE=ON -DBUILD_TESTING=ON sources
- name: build - name: build
working-directory: /repo/build working-directory: /repo/build

View File

@ -2,7 +2,7 @@
pkgname=plasma6-applet-awesome-widgets pkgname=plasma6-applet-awesome-widgets
_pkgname=awesome-widgets _pkgname=awesome-widgets
pkgver=4.0.0alpha2 pkgver=4.0.0alpha1
pkgrel=1 pkgrel=1
pkgdesc="Collection of minimalistic Plasmoids which look like Awesome WM widgets (ex-PyTextMonitor)" pkgdesc="Collection of minimalistic Plasmoids which look like Awesome WM widgets (ex-PyTextMonitor)"
arch=('x86_64') arch=('x86_64')

284
sensors Normal file
View File

@ -0,0 +1,284 @@
cpu
cpu/all
cpu/all/averageFrequency
cpu/all/averageTemperature
cpu/all/coreCount
cpu/all/cpuCount
cpu/all/maximumFrequency
cpu/all/maximumTemperature
cpu/all/minimumFrequency
cpu/all/minimumTemperature
cpu/all/name
cpu/all/system
cpu/all/usage
cpu/all/user
cpu/all/wait
cpu/cpu0
cpu/cpu0/frequency
cpu/cpu0/name
cpu/cpu0/system
cpu/cpu0/temperature
cpu/cpu0/usage
cpu/cpu0/user
cpu/cpu0/wait
cpu/cpu1
cpu/cpu1/frequency
cpu/cpu1/name
cpu/cpu1/system
cpu/cpu1/temperature
cpu/cpu1/usage
cpu/cpu1/user
cpu/cpu1/wait
cpu/cpu10
cpu/cpu10/frequency
cpu/cpu10/name
cpu/cpu10/system
cpu/cpu10/temperature
cpu/cpu10/usage
cpu/cpu10/user
cpu/cpu10/wait
cpu/cpu11
cpu/cpu11/frequency
cpu/cpu11/name
cpu/cpu11/system
cpu/cpu11/temperature
cpu/cpu11/usage
cpu/cpu11/user
cpu/cpu11/wait
cpu/cpu12
cpu/cpu12/frequency
cpu/cpu12/name
cpu/cpu12/system
cpu/cpu12/temperature
cpu/cpu12/usage
cpu/cpu12/user
cpu/cpu12/wait
cpu/cpu13
cpu/cpu13/frequency
cpu/cpu13/name
cpu/cpu13/system
cpu/cpu13/temperature
cpu/cpu13/usage
cpu/cpu13/user
cpu/cpu13/wait
cpu/cpu14
cpu/cpu14/frequency
cpu/cpu14/name
cpu/cpu14/system
cpu/cpu14/temperature
cpu/cpu14/usage
cpu/cpu14/user
cpu/cpu14/wait
cpu/cpu15
cpu/cpu15/frequency
cpu/cpu15/name
cpu/cpu15/system
cpu/cpu15/temperature
cpu/cpu15/usage
cpu/cpu15/user
cpu/cpu15/wait
cpu/cpu16
cpu/cpu16/frequency
cpu/cpu16/name
cpu/cpu16/system
cpu/cpu16/temperature
cpu/cpu16/usage
cpu/cpu16/user
cpu/cpu16/wait
cpu/cpu17
cpu/cpu17/frequency
cpu/cpu17/name
cpu/cpu17/system
cpu/cpu17/temperature
cpu/cpu17/usage
cpu/cpu17/user
cpu/cpu17/wait
cpu/cpu18
cpu/cpu18/frequency
cpu/cpu18/name
cpu/cpu18/system
cpu/cpu18/temperature
cpu/cpu18/usage
cpu/cpu18/user
cpu/cpu18/wait
cpu/cpu19
cpu/cpu19/frequency
cpu/cpu19/name
cpu/cpu19/system
cpu/cpu19/temperature
cpu/cpu19/usage
cpu/cpu19/user
cpu/cpu19/wait
cpu/cpu2
cpu/cpu2/frequency
cpu/cpu2/name
cpu/cpu2/system
cpu/cpu2/temperature
cpu/cpu2/usage
cpu/cpu2/user
cpu/cpu2/wait
cpu/cpu3
cpu/cpu3/frequency
cpu/cpu3/name
cpu/cpu3/system
cpu/cpu3/temperature
cpu/cpu3/usage
cpu/cpu3/user
cpu/cpu3/wait
cpu/cpu4
cpu/cpu4/frequency
cpu/cpu4/name
cpu/cpu4/system
cpu/cpu4/temperature
cpu/cpu4/usage
cpu/cpu4/user
cpu/cpu4/wait
cpu/cpu5
cpu/cpu5/frequency
cpu/cpu5/name
cpu/cpu5/system
cpu/cpu5/temperature
cpu/cpu5/usage
cpu/cpu5/user
cpu/cpu5/wait
cpu/cpu6
cpu/cpu6/frequency
cpu/cpu6/name
cpu/cpu6/system
cpu/cpu6/temperature
cpu/cpu6/usage
cpu/cpu6/user
cpu/cpu6/wait
cpu/cpu7
cpu/cpu7/frequency
cpu/cpu7/name
cpu/cpu7/system
cpu/cpu7/temperature
cpu/cpu7/usage
cpu/cpu7/user
cpu/cpu7/wait
cpu/cpu8
cpu/cpu8/frequency
cpu/cpu8/name
cpu/cpu8/system
cpu/cpu8/temperature
cpu/cpu8/usage
cpu/cpu8/user
cpu/cpu8/wait
cpu/cpu9
cpu/cpu9/frequency
cpu/cpu9/name
cpu/cpu9/system
cpu/cpu9/temperature
cpu/cpu9/usage
cpu/cpu9/user
cpu/cpu9/wait
cpu/loadaverages
cpu/loadaverages/loadaverage1
cpu/loadaverages/loadaverage15
cpu/loadaverages/loadaverage5
disk
disk/52e29d18-ad4d-47ad-98c4-a09ab0914a85
disk/52e29d18-ad4d-47ad-98c4-a09ab0914a85/free
disk/52e29d18-ad4d-47ad-98c4-a09ab0914a85/freePercent
disk/52e29d18-ad4d-47ad-98c4-a09ab0914a85/name
disk/52e29d18-ad4d-47ad-98c4-a09ab0914a85/read
disk/52e29d18-ad4d-47ad-98c4-a09ab0914a85/total
disk/52e29d18-ad4d-47ad-98c4-a09ab0914a85/used
disk/52e29d18-ad4d-47ad-98c4-a09ab0914a85/usedPercent
disk/52e29d18-ad4d-47ad-98c4-a09ab0914a85/write
disk/all
disk/all/free
disk/all/freePercent
disk/all/read
disk/all/total
disk/all/used
disk/all/usedPercent
disk/all/write
disk/d10dd7bf-e382-4e44-83d7-9af6c6df7258
disk/d10dd7bf-e382-4e44-83d7-9af6c6df7258/free
disk/d10dd7bf-e382-4e44-83d7-9af6c6df7258/freePercent
disk/d10dd7bf-e382-4e44-83d7-9af6c6df7258/name
disk/d10dd7bf-e382-4e44-83d7-9af6c6df7258/read
disk/d10dd7bf-e382-4e44-83d7-9af6c6df7258/total
disk/d10dd7bf-e382-4e44-83d7-9af6c6df7258/used
disk/d10dd7bf-e382-4e44-83d7-9af6c6df7258/usedPercent
disk/d10dd7bf-e382-4e44-83d7-9af6c6df7258/write
disk/nvme0n1
disk/nvme0n1/name
disk/nvme0n1/read
disk/nvme0n1/total
disk/nvme0n1/write
gpu
lmsensors
lmsensors/BAT0-acpi-0
lmsensors/BAT0-acpi-0/in0
lmsensors/acpitz-acpi-0
lmsensors/acpitz-acpi-0/temp1
lmsensors/iwlwifi_1-virtual-0
lmsensors/iwlwifi_1-virtual-0/temp1
lmsensors/nvme-pci-0400
lmsensors/nvme-pci-0400/temp1
lmsensors/thinkpad-isa-0000
lmsensors/thinkpad-isa-0000/fan1
lmsensors/thinkpad-isa-0000/fan2
lmsensors/thinkpad-isa-0000/temp1
lmsensors/thinkpad-isa-0000/temp2
lmsensors/thinkpad-isa-0000/temp3
lmsensors/thinkpad-isa-0000/temp4
lmsensors/thinkpad-isa-0000/temp5
lmsensors/thinkpad-isa-0000/temp6
lmsensors/thinkpad-isa-0000/temp7
lmsensors/thinkpad-isa-0000/temp8
lmsensors/ucsi_source_psy_USBC000:001-isa-0000
lmsensors/ucsi_source_psy_USBC000:001-isa-0000/curr1
lmsensors/ucsi_source_psy_USBC000:001-isa-0000/in0
lmsensors/ucsi_source_psy_USBC000:002-isa-0000
lmsensors/ucsi_source_psy_USBC000:002-isa-0000/curr1
lmsensors/ucsi_source_psy_USBC000:002-isa-0000/in0
memory
memory/physical
memory/physical/application
memory/physical/applicationPercent
memory/physical/buffer
memory/physical/bufferPercent
memory/physical/cache
memory/physical/cachePercent
memory/physical/free
memory/physical/freePercent
memory/physical/total
memory/physical/used
memory/physical/usedPercent
memory/swap
memory/swap/free
memory/swap/freePercent
memory/swap/total
memory/swap/used
memory/swap/usedPercent
os
os/kernel
os/kernel/name
os/kernel/prettyName
os/kernel/version
os/plasma
os/plasma/kfVersion
os/plasma/plasmaVersion
os/plasma/qtVersion
os/plasma/windowsystem
os/system
os/system/hostname
os/system/logo
os/system/name
os/system/prettyName
os/system/uptime
os/system/url
os/system/version
power
power/4870
power/4870/capacity
power/4870/charge
power/4870/chargePercentage
power/4870/chargeRate
power/4870/design
power/4870/health
power/4870/name

View File

@ -24,11 +24,6 @@ import org.kde.plasma.private.awesomewidget 1.0
KCM.SimpleKCM { KCM.SimpleKCM {
id: aboutPage id: aboutPage
// backend
AWActions {
id: awActions
}
AboutTab { AboutTab {
textProvider: awActions textProvider: awActions
} }

View File

@ -129,32 +129,32 @@ KCM.SimpleKCM {
id: tempUnits id: tempUnits
model: [ model: [
{ {
"label": i18n("Celsius"), 'label': i18n("Celsius"),
"name": "Celsius" 'name': "Celsius"
}, },
{ {
"label": i18n("Fahrenheit"), 'label': i18n("Fahrenheit"),
"name": "Fahrenheit" 'name': "Fahrenheit"
}, },
{ {
"label": i18n("Kelvin"), 'label': i18n("Kelvin"),
"name": "Kelvin" 'name': "Kelvin"
}, },
{ {
"label": i18n("Reaumur"), 'label': i18n("Reaumur"),
"name": "Reaumur" 'name': "Reaumur"
}, },
{ {
"label": i18n("cm^-1"), 'label': i18n("cm^-1"),
"name": "cm^-1" 'name': "cm^-1"
}, },
{ {
"label": i18n("kJ/mol"), 'label': i18n("kJ/mol"),
"name": "kJ/mol" 'name': "kJ/mol"
}, },
{ {
"label": i18n("kcal/mol"), 'label': i18n("kcal/mol"),
"name": "kcal/mol" 'name': "kcal/mol"
} }
] ]
text: i18n("Temperature units") text: i18n("Temperature units")

View File

@ -41,6 +41,7 @@ KCM.SimpleKCM {
property alias cfg_textStyleColor: selectStyleColor.value property alias cfg_textStyleColor: selectStyleColor.value
property string cfg_textStyle: textStyle.value property string cfg_textStyle: textStyle.value
Column { Column {
id: pageColumn id: pageColumn
anchors.fill: parent anchors.fill: parent

View File

@ -38,7 +38,7 @@ KCM.SimpleKCM {
Column { Column {
id: pageColumn id: pageColumn
anchors.fill: parent anchors.fill: parent
const
GroupBox { GroupBox {
height: implicitHeight height: implicitHeight
width: parent.width width: parent.width
@ -70,16 +70,16 @@ KCM.SimpleKCM {
ComboBoxSelector { ComboBoxSelector {
model: [ model: [
{ {
"label": "disable", 'label': "disable",
"name": "disable" 'name': "disable"
}, },
{ {
"label": "mpris", 'label': "mpris",
"name": "mpris" 'name': "mpris"
}, },
{ {
"label": "mpd", 'label': "mpd",
"name": "mpd" 'name': "mpd"
} }
] ]
text: i18n("Music player") text: i18n("Music player")
@ -92,40 +92,40 @@ KCM.SimpleKCM {
editable: true editable: true
model: [ model: [
{ {
"label": "auto", 'label': 'auto',
"name": "auto" 'name': 'auto'
}, },
{ {
"label": "amarok", 'label': 'amarok',
"name": "amarok" 'name': 'amarok'
}, },
{ {
"label": "audacious", 'label': 'audacious',
"name": "audacious" 'name': 'audacious'
}, },
{ {
"label": "clementine", 'label': 'clementine',
"name": "clementine" 'name': 'clementine'
}, },
{ {
"label": "DeaDBeeF", 'label': 'DeaDBeeF',
"name": "DeaDBeeF" 'name': 'DeaDBeeF'
}, },
{ {
"label": "vlc", 'label': 'vlc',
"name": "vlc" 'name': 'vlc'
}, },
{ {
"label": "qmmp", 'label': 'qmmp',
"name": "qmmp" 'name': 'qmmp'
}, },
{ {
"label": "xmms2", 'label': 'xmms2',
"name": "xmms2" 'name': 'xmms2'
}, },
{ {
"label": cfg_dataengine["MPRIS"], 'label': cfg_dataengine["MPRIS"],
"name": cfg_dataengine["MPRIS"] 'name': cfg_dataengine["MPRIS"]
} }
] ]
text: i18n("MPRIS player name") text: i18n("MPRIS player name")

View File

@ -71,6 +71,13 @@ QString AWActions::getFileContent(const QString &_path)
} }
// HACK: since QML could not use QLoggingCategory I need this hack
bool AWActions::isDebugEnabled()
{
return LOG_AW().isDebugEnabled();
}
bool AWActions::runCmd(const QString &_cmd, const QStringList &_args) bool AWActions::runCmd(const QString &_cmd, const QStringList &_args)
{ {
qCDebug(LOG_AW) << "Cmd" << _cmd << "args" << _args; qCDebug(LOG_AW) << "Cmd" << _cmd << "args" << _args;

View File

@ -34,6 +34,7 @@ public:
~AWActions() override; ~AWActions() override;
Q_INVOKABLE void checkUpdates(bool _showAnyway = false); Q_INVOKABLE void checkUpdates(bool _showAnyway = false);
Q_INVOKABLE static QString getFileContent(const QString &_path); Q_INVOKABLE static QString getFileContent(const QString &_path);
Q_INVOKABLE static bool isDebugEnabled();
Q_INVOKABLE static bool runCmd(const QString &_cmd, const QStringList &_args); Q_INVOKABLE static bool runCmd(const QString &_cmd, const QStringList &_args);
Q_INVOKABLE static void showLegacyInfo(); Q_INVOKABLE static void showLegacyInfo();
Q_INVOKABLE static void showReadme(); Q_INVOKABLE static void showReadme();

View File

@ -130,8 +130,9 @@ QStringList AWKeyOperations::dictKeys() const
allKeys.append(QString("up%1").arg(i)); allKeys.append(QString("up%1").arg(i));
} }
// battery // battery
auto allBatteryDevices = QDir("/sys/class/power_supply") auto allBatteryDevices
.entryList(QStringList({"BAT*"}), QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name); = QDir("/sys/class/power_supply")
.entryList(QStringList({"BAT*"}), QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name);
for (int i = 0; i < allBatteryDevices.count(); i++) { for (int i = 0; i < allBatteryDevices.count(); i++) {
allKeys.append(QString("bat%1").arg(i)); allKeys.append(QString("bat%1").arg(i));
allKeys.append(QString("batleft%1").arg(i)); allKeys.append(QString("batleft%1").arg(i));

View File

@ -16,20 +16,27 @@
***************************************************************************/ ***************************************************************************/
import QtQuick 2.15 import QtQuick 2.15
import org.kde.kcmutils as KCM
import org.kde.plasma.private.desktoppanel 1.0 import org.kde.plasma.private.desktoppanel 1.0
KCM.SimpleKCM { Item {
id: aboutPage id: aboutPage
// backend // backend
DPAdds { DPAdds {
id: dpAdds id: dpAdds
} }
width: childrenRect.width
height: childrenRect.height
property bool debug: awActions.isDebugEnabled()
AboutTab { AboutTab {
textProvider: dpAdds textProvider: dpAdds
} }
Component.onCompleted: {
if (debug) console.debug()
}
} }

View File

@ -16,14 +16,24 @@
***************************************************************************/ ***************************************************************************/
import QtQuick 2.15 import QtQuick 2.15
import org.kde.kcmutils as KCM
import org.kde.plasma.private.desktoppanel 1.0 import org.kde.plasma.private.desktoppanel 1.0
import "." import "."
KCM.SimpleKCM { Item {
id: activeAppearancePage id: activeAppearancePage
// backend
DPAdds {
id: dpAdds
}
width: childrenRect.width
height: childrenRect.height
implicitWidth: pageColumn.implicitWidth
implicitHeight: pageColumn.implicitHeight
property bool debug: dpAdds.isDebugEnabled()
property alias cfg_currentFontFamily: font.value property alias cfg_currentFontFamily: font.value
property alias cfg_currentFontSize: fontSize.value property alias cfg_currentFontSize: fontSize.value
@ -33,6 +43,7 @@ KCM.SimpleKCM {
property alias cfg_currentTextStyleColor: selectStyleColor.value property alias cfg_currentTextStyleColor: selectStyleColor.value
property string cfg_currentTextStyle: textStyle.value property string cfg_currentTextStyle: textStyle.value
Column { Column {
id: pageColumn id: pageColumn
anchors.fill: parent anchors.fill: parent
@ -88,4 +99,9 @@ KCM.SimpleKCM {
value: plasmoid.configuration.currentTextStyleColor value: plasmoid.configuration.currentTextStyleColor
} }
} }
Component.onCompleted: {
if (debug) console.debug()
}
} }

View File

@ -17,13 +17,23 @@
import QtQuick 2.15 import QtQuick 2.15
import QtQuick.Controls import QtQuick.Controls
import org.kde.kcmutils as KCM
import org.kde.plasma.private.desktoppanel 1.0 import org.kde.plasma.private.desktoppanel 1.0
KCM.SimpleKCM { Item {
id: advancedPage id: advancedPage
// backend
DPAdds {
id: dpAdds
}
width: childrenRect.width
height: childrenRect.height
implicitWidth: pageColumn.implicitWidth
implicitHeight: pageColumn.implicitHeight
property bool debug: dpAdds.isDebugEnabled()
property alias cfg_background: background.checked property alias cfg_background: background.checked
property alias cfg_verticalLayout: verticalLayout.checked property alias cfg_verticalLayout: verticalLayout.checked
@ -34,6 +44,7 @@ KCM.SimpleKCM {
property alias cfg_tooltipWidth: tooltipWidth.value property alias cfg_tooltipWidth: tooltipWidth.value
property alias cfg_tooltipColor: tooltipColor.value property alias cfg_tooltipColor: tooltipColor.value
Column { Column {
id: pageColumn id: pageColumn
anchors.fill: parent anchors.fill: parent
@ -71,48 +82,48 @@ KCM.SimpleKCM {
editable: true editable: true
model: [ model: [
{ {
"label": "#", 'label': '#',
"name": "#" 'name': '#'
}, },
{ {
"label": "$", 'label': '$',
"name": "$" 'name': '$'
}, },
{ {
"label": "%", 'label': '%',
"name": "%" 'name': '%'
}, },
{ {
"label": "&", 'label': '&',
"name": "&" 'name': '&'
}, },
{ {
"label": "*", 'label': '*',
"name": "*" 'name': '*'
}, },
{ {
"label": "@", 'label': '@',
"name": "@" 'name': '@'
}, },
{ {
"label": "¤", 'label': '¤',
"name": "¤" 'name': '¤'
}, },
{ {
"label": "¶", 'label': '¶',
"name": "¶" 'name': '¶'
}, },
{ {
"label": "·", 'label': '·',
"name": "·" 'name': '·'
}, },
{ {
"label": "º", 'label': 'º',
"name": "º" 'name': 'º'
}, },
{ {
"label": plasmoid.configuration.mark, 'label': plasmoid.configuration.mark,
"name": plasmoid.configuration.mark 'name': plasmoid.configuration.mark
} }
] ]
text: i18n("Mark") text: i18n("Mark")
@ -133,16 +144,16 @@ KCM.SimpleKCM {
id: tooltipType id: tooltipType
model: [ model: [
{ {
"label": i18n("contours"), 'label': i18n("contours"),
"name": "contours" 'name': "contours"
}, },
{ {
"label": i18n("names"), 'label': i18n("names"),
"name": "names" 'name': "names"
}, },
{ {
"label": i18n("none"), 'label': i18n("none"),
"name": "none" 'name': "none"
} }
] ]
text: i18n("Tooltip type") text: i18n("Tooltip type")
@ -167,4 +178,8 @@ KCM.SimpleKCM {
} }
} }
} }
Component.onCompleted: {
if (debug) console.debug()
}
} }

View File

@ -16,14 +16,24 @@
***************************************************************************/ ***************************************************************************/
import QtQuick 2.15 import QtQuick 2.15
import org.kde.kcmutils as KCM
import org.kde.plasma.private.desktoppanel 1.0 import org.kde.plasma.private.desktoppanel 1.0
import "." import "."
KCM.SimpleKCM { Item {
id: inactiveAppearancePage id: inactiveAppearancePage
// backend
DPAdds {
id: dpAdds
}
width: childrenRect.width
height: childrenRect.height
implicitWidth: pageColumn.implicitWidth
implicitHeight: pageColumn.implicitHeight
property bool debug: dpAdds.isDebugEnabled()
property alias cfg_fontFamily: font.value property alias cfg_fontFamily: font.value
property alias cfg_fontSize: fontSize.value property alias cfg_fontSize: fontSize.value
@ -33,6 +43,7 @@ KCM.SimpleKCM {
property alias cfg_textStyleColor: selectStyleColor.value property alias cfg_textStyleColor: selectStyleColor.value
property string cfg_textStyle: textStyle.value property string cfg_textStyle: textStyle.value
Column { Column {
id: pageColumn id: pageColumn
anchors.fill: parent anchors.fill: parent
@ -88,4 +99,9 @@ KCM.SimpleKCM {
value: plasmoid.configuration.textStyleColor value: plasmoid.configuration.textStyleColor
} }
} }
Component.onCompleted: {
if (debug) console.debug()
}
} }

View File

@ -32,6 +32,7 @@ PlasmoidItem {
id: dpAdds id: dpAdds
} }
property bool debug: dpAdds.isDebugEnabled()
property variant tooltipSettings: { property variant tooltipSettings: {
"tooltipColor": plasmoid.configuration.tooltipColor, "tooltipColor": plasmoid.configuration.tooltipColor,
"tooltipType": plasmoid.configuration.tooltipType, "tooltipType": plasmoid.configuration.tooltipType,
@ -42,12 +43,14 @@ PlasmoidItem {
signal needTooltipUpdate signal needTooltipUpdate
signal sizeUpdate signal sizeUpdate
// init // init
Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
Plasmoid.icon: "utilities-system-monitor" Plasmoid.icon: "utilities-system-monitor"
Plasmoid.backgroundHints: plasmoid.configuration.background ? "DefaultBackground" : "NoBackground" Plasmoid.backgroundHints: plasmoid.configuration.background ? "DefaultBackground" : "NoBackground"
// ui // ui
GridLayout { GridLayout {
anchors.fill: parent anchors.fill: parent
@ -94,6 +97,7 @@ PlasmoidItem {
} }
} }
Timer { Timer {
id: timer id: timer
interval: 1000 interval: 1000
@ -101,16 +105,19 @@ PlasmoidItem {
} }
onNeedUpdate: { onNeedUpdate: {
for (let i = 0; i < repeater.count; i++) { if (debug) console.debug()
for (var i=0; i<repeater.count; i++) {
if (!repeater.itemAt(i)) { if (!repeater.itemAt(i)) {
if (debug) console.info("Nothing to do here yet", i)
timer.start() timer.start()
return return
} }
repeater.itemAt(i).text = dpAdds.parsePattern(plasmoid.configuration.text, i) repeater.itemAt(i).text = dpAdds.parsePattern(plasmoid.configuration.text, i)
if (dpAdds.currentDesktop() === i) { if (dpAdds.currentDesktop() == i) {
repeater.itemAt(i).color = plasmoid.configuration.currentFontColor repeater.itemAt(i).color = plasmoid.configuration.currentFontColor
repeater.itemAt(i).font.family = plasmoid.configuration.currentFontFamily repeater.itemAt(i).font.family = plasmoid.configuration.currentFontFamily
repeater.itemAt(i).font.italic = plasmoid.configuration.currentFontStyle === "italic" repeater.itemAt(i).font.italic = plasmoid.configuration.currentFontStyle == "italic"
repeater.itemAt(i).font.pointSize = plasmoid.configuration.currentFontSize repeater.itemAt(i).font.pointSize = plasmoid.configuration.currentFontSize
repeater.itemAt(i).font.weight = General.fontWeight[plasmoid.configuration.currentFontWeight] repeater.itemAt(i).font.weight = General.fontWeight[plasmoid.configuration.currentFontWeight]
repeater.itemAt(i).style = General.textStyle[plasmoid.configuration.currentTextStyle] repeater.itemAt(i).style = General.textStyle[plasmoid.configuration.currentTextStyle]
@ -118,7 +125,7 @@ PlasmoidItem {
} else { } else {
repeater.itemAt(i).color = plasmoid.configuration.fontColor repeater.itemAt(i).color = plasmoid.configuration.fontColor
repeater.itemAt(i).font.family = plasmoid.configuration.fontFamily repeater.itemAt(i).font.family = plasmoid.configuration.fontFamily
repeater.itemAt(i).font.italic = plasmoid.configuration.fontStyle === "italic" repeater.itemAt(i).font.italic = plasmoid.configuration.fontStyle == "italic"
repeater.itemAt(i).font.pointSize = plasmoid.configuration.fontSize repeater.itemAt(i).font.pointSize = plasmoid.configuration.fontSize
repeater.itemAt(i).font.weight = General.fontWeight[plasmoid.configuration.fontWeight] repeater.itemAt(i).font.weight = General.fontWeight[plasmoid.configuration.fontWeight]
repeater.itemAt(i).style = General.textStyle[plasmoid.configuration.textStyle] repeater.itemAt(i).style = General.textStyle[plasmoid.configuration.textStyle]
@ -132,11 +139,13 @@ PlasmoidItem {
} }
onNeedTooltipUpdate: { onNeedTooltipUpdate: {
for (let i = 0; i < repeater.count; i++) { if (debug) console.debug()
for (var i=0; i<repeater.count; i++) {
repeater.itemAt(i).tooltip.text = dpAdds.toolTipImage(i) repeater.itemAt(i).tooltip.text = dpAdds.toolTipImage(i)
// resize text tooltip to content size // resize text tooltip to content size
// this hack does not work for images-based tooltips // this hack does not work for images-based tooltips
if (tooltipSettings.tooltipType === "names") { if (tooltipSettings.tooltipType == "names") {
repeater.itemAt(i).tooltip.height = repeater.itemAt(i).tooltip.implicitHeight repeater.itemAt(i).tooltip.height = repeater.itemAt(i).tooltip.implicitHeight
repeater.itemAt(i).tooltip.width = repeater.itemAt(i).tooltip.implicitWidth repeater.itemAt(i).tooltip.width = repeater.itemAt(i).tooltip.implicitWidth
} }
@ -144,9 +153,11 @@ PlasmoidItem {
} }
onSizeUpdate: { onSizeUpdate: {
if (plasmoid.configuration.height === 0) { if (debug) console.debug()
let newHeight = 0
for (let i = 0; i < repeater.count; i++) if (plasmoid.configuration.height == 0) {
var newHeight = 0
for (var i=0; i<repeater.count; i++)
newHeight += repeater.itemAt(i).contentHeight newHeight += repeater.itemAt(i).contentHeight
Layout.minimumHeight = newHeight Layout.minimumHeight = newHeight
Layout.maximumHeight = -1 Layout.maximumHeight = -1
@ -154,9 +165,9 @@ PlasmoidItem {
Layout.minimumHeight = plasmoid.configuration.height Layout.minimumHeight = plasmoid.configuration.height
Layout.maximumHeight = plasmoid.configuration.height Layout.maximumHeight = plasmoid.configuration.height
} }
if (plasmoid.configuration.width === 0) { if (plasmoid.configuration.width == 0) {
let newWidth = 0 var newWidth = 0
for (let i = 0; i < repeater.count; i++) for (var i=0; i<repeater.count; i++)
newWidth += repeater.itemAt(i).contentWidth newWidth += repeater.itemAt(i).contentWidth
Layout.minimumWidth = newWidth Layout.minimumWidth = newWidth
Layout.maximumWidth = -1 Layout.maximumWidth = -1
@ -168,6 +179,7 @@ PlasmoidItem {
Plasmoid.onUserConfiguringChanged: { Plasmoid.onUserConfiguringChanged: {
if (plasmoid.userConfiguring) return if (plasmoid.userConfiguring) return
if (debug) console.debug()
dpAdds.setMark(plasmoid.configuration.mark) dpAdds.setMark(plasmoid.configuration.mark)
dpAdds.setToolTipData(tooltipSettings) dpAdds.setToolTipData(tooltipSettings)
@ -176,6 +188,8 @@ PlasmoidItem {
} }
Component.onCompleted: { Component.onCompleted: {
if (debug) console.debug()
// init submodule // init submodule
Plasmoid.userConfiguringChanged(false) Plasmoid.userConfiguringChanged(false)
dpAdds.desktopChanged.connect(needUpdate) dpAdds.desktopChanged.connect(needUpdate)

View File

@ -16,21 +16,28 @@
***************************************************************************/ ***************************************************************************/
import QtQuick 2.15 import QtQuick 2.15
import org.kde.kcmutils as KCM
import org.kde.plasma.private.desktoppanel 1.0 import org.kde.plasma.private.desktoppanel 1.0
import "." import "."
KCM.SimpleKCM { Item {
id: widgetPage id: widgetPage
// backend // backend
DPAdds { DPAdds {
id: dpAdds id: dpAdds
} }
width: childrenRect.width
height: childrenRect.height
implicitWidth: pageColumn.implicitWidth
implicitHeight: pageColumn.implicitHeight
property bool debug: dpAdds.isDebugEnabled()
property alias cfg_text: textPattern.text property alias cfg_text: textPattern.text
Column { Column {
id: pageColumn id: pageColumn
anchors.fill: parent anchors.fill: parent
@ -53,4 +60,9 @@ KCM.SimpleKCM {
backend: dpAdds backend: dpAdds
} }
} }
Component.onCompleted: {
if (debug) console.debug()
}
} }

View File

@ -49,7 +49,9 @@ DPAdds::DPAdds(QObject *_parent)
m_vdi = new TaskManager::VirtualDesktopInfo(this); m_vdi = new TaskManager::VirtualDesktopInfo(this);
m_taskModel = new TaskManager::WindowTasksModel(this); m_taskModel = new TaskManager::WindowTasksModel(this);
connect(m_vdi, &TaskManager::VirtualDesktopInfo::currentDesktopChanged, this, &DPAdds::desktopChanged); connect(m_vdi, SIGNAL(currentDesktopChanged()), this, SIGNAL(desktopChanged()));
connect(KWindowSystem::self(), SIGNAL(windowAdded(WId)), this, SIGNAL(windowListChanged()));
connect(KWindowSystem::self(), SIGNAL(windowRemoved(WId)), this, SIGNAL(windowListChanged()));
} }
@ -62,6 +64,13 @@ DPAdds::~DPAdds()
} }
// HACK: since QML could not use QLoggingCategory I need this hack
bool DPAdds::isDebugEnabled()
{
return LOG_DP().isDebugEnabled();
}
int DPAdds::currentDesktop() const int DPAdds::currentDesktop() const
{ {
auto current = m_vdi->currentDesktop(); auto current = m_vdi->currentDesktop();

View File

@ -46,6 +46,7 @@ class DPAdds : public QObject
public: public:
explicit DPAdds(QObject *_parent = nullptr); explicit DPAdds(QObject *_parent = nullptr);
~DPAdds() override; ~DPAdds() override;
Q_INVOKABLE static bool isDebugEnabled();
Q_INVOKABLE [[nodiscard]] int currentDesktop() const; Q_INVOKABLE [[nodiscard]] int currentDesktop() const;
Q_INVOKABLE static QStringList dictKeys(bool _sorted = true, const QString &_regexp = ""); Q_INVOKABLE static QStringList dictKeys(bool _sorted = true, const QString &_regexp = "");
Q_INVOKABLE [[nodiscard]] int numberOfDesktops() const; Q_INVOKABLE [[nodiscard]] int numberOfDesktops() const;

View File

@ -62,7 +62,7 @@ void ExtSysMonAggregator::init(const QHash<QString, QString> &_config)
createSensor("custom", i18n("Scripts"), new CustomSource(this, {})); createSensor("custom", i18n("Scripts"), new CustomSource(this, {}));
// desktop // desktop
// FIXME causes segfault in kde libs // FIXME causes segfault in kde libs
// createSensor("desktop", i18n("Desktop"), new DesktopSource(this, {})); // createSensor("desktop", i18n("Desktop"), new DesktopSource(this, {}));
// network // network
createSensor("network", i18n("Network"), new NetworkSource(this, {})); createSensor("network", i18n("Network"), new NetworkSource(this, {}));
// player // player

View File

@ -68,27 +68,23 @@ Row {
} }
} }
Button { // TODO migrate history
width: parent.width / 15 // Button {
icon.name: "view-history" // width: parent.width / 15
// iconName: "view-history"
onClicked: historyConfig.open() // menu: Menu {
// id: historyConfig
Menu { // Instantiator {
id: historyConfig // model: awTelemetryHandler.get("awwidgetconfig")
// MenuItem {
Instantiator { // text: modelData
model: awTelemetryHandler.get("awwidgetconfig") // onTriggered: textArea.text = modelData
delegate: MenuItem { // }
text: modelData // onObjectAdded: historyConfig.insertItem(index, object)
onTriggered: textArea.text = modelData // onObjectRemoved: historyConfig.removeItem(object)
} // }
// }
onObjectAdded: (index, object) => historyConfig.insertItem(index, object) // }
onObjectRemoved: (index, object) => historyConfig.removeItem(object)
}
}
}
MessageDialog { MessageDialog {
id: compiledText id: compiledText

View File

@ -23,9 +23,7 @@ Label {
width: parent.width width: parent.width
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
text: i18n("Detailed information may be found on <a href=\"https://arcanis.me/projects/awesome-widgets/\">project homepage</a>") text: i18n("Detailed information may be found on <a href=\"https://arcanis.me/projects/awesome-widgets/\">project homepage</a>")
onLinkActivated: Qt.openUrlExternally(link) onLinkActivated: Qt.openUrlExternally(link)
} }

View File

@ -77,9 +77,9 @@ ScrollView {
function getLastTag() { function getLastTag() {
// get substring to analyze // get substring to analyze
const substring = textArea.getText(0, textArea.cursorPosition) var substring = textArea.getText(0, textArea.cursorPosition)
// find last position of index in the given substring // find last position of index in the given substring
const signIndex = substring.lastIndexOf("$") + 1 var signIndex = substring.lastIndexOf('$') + 1
if ((signIndex === 0) || (signIndex === textArea.cursorPosition)) if ((signIndex === 0) || (signIndex === textArea.cursorPosition))
return "" return ""
// get current tag text // get current tag text
@ -89,14 +89,6 @@ ScrollView {
function insert(text) { function insert(text) {
textArea.insert(textArea.cursorPosition, text) textArea.insert(textArea.cursorPosition, text)
} }
function removeSelection() {
textArea.remove(textArea.selectionStart, textArea.selectionEnd)
}
function selectedText() {
return textArea.selectedText
}
} }

View File

@ -34,6 +34,8 @@ Dialog {
width: 640 width: 640
height: 480 height: 480
property bool debug: awActions.isDebugEnabled()
title: i18n("Report a bug") title: i18n("Report a bug")
standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel | DialogButtonBox.Reset standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel | DialogButtonBox.Reset
@ -46,7 +48,6 @@ Dialog {
Layout.fillWidth: true Layout.fillWidth: true
placeholderText: i18n("Report subject") placeholderText: i18n("Report subject")
} }
ColumnLayout { ColumnLayout {
Layout.fillWidth: true Layout.fillWidth: true
@ -54,50 +55,41 @@ Dialog {
Layout.fillWidth: true Layout.fillWidth: true
height: parent.height / 5 height: parent.height / 5
title: i18n("Description") title: i18n("Description")
TextArea { TextArea {
id: description id: description
anchors.fill: parent anchors.fill: parent
textFormat: TextEdit.PlainText textFormat: TextEdit.PlainText
} }
} }
GroupBox { GroupBox {
Layout.fillWidth: true Layout.fillWidth: true
height: parent.height / 5 height: parent.height / 5
title: i18n("Steps to reproduce") title: i18n("Steps to reproduce")
TextArea { TextArea {
id: reproduce id: reproduce
anchors.fill: parent anchors.fill: parent
textFormat: TextEdit.PlainText textFormat: TextEdit.PlainText
} }
} }
GroupBox { GroupBox {
Layout.fillWidth: true Layout.fillWidth: true
height: parent.height / 5 height: parent.height / 5
title: i18n("Expected result") title: i18n("Expected result")
TextArea { TextArea {
id: expected id: expected
anchors.fill: parent anchors.fill: parent
textFormat: TextEdit.PlainText textFormat: TextEdit.PlainText
} }
} }
GroupBox { GroupBox {
Layout.fillWidth: true Layout.fillWidth: true
Layout.alignment: Qt.AlignBottom Layout.alignment: Qt.AlignBottom
title: i18n("Logs") title: i18n("Logs")
ColumnLayout { ColumnLayout {
anchors.fill: parent anchors.fill: parent
Layout.fillWidth: true Layout.fillWidth: true
Row { Row {
Layout.fillWidth: true Layout.fillWidth: true
Label { Label {
width: parent.width * 2 / 5 width: parent.width * 2 / 5
horizontalAlignment: Text.AlignJustify horizontalAlignment: Text.AlignJustify
@ -105,20 +97,17 @@ Dialog {
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
text: i18n("Use command") text: i18n("Use command")
} }
TextField { TextField {
width: parent.width * 3 / 5 width: parent.width * 3 / 5
readOnly: true readOnly: true
text: "QT_LOGGING_RULES=*=true plasmawindowed org.kde.plasma.awesomewidget" text: "QT_LOGGING_RULES=*=true plasmawindowed org.kde.plasma.awesomewidget"
} }
} }
Button { Button {
Layout.fillWidth: true Layout.fillWidth: true
text: i18n("Load log file") text: i18n("Load log file")
onClicked: logPath.open() onClicked: logPath.open()
} }
TextArea { TextArea {
id: logBody id: logBody
Layout.fillWidth: true Layout.fillWidth: true
@ -138,11 +127,16 @@ Dialog {
} }
onAccepted: { onAccepted: {
const text = awBugReporter.generateText(description.text, reproduce.text, expected.text, logBody.text) if (debug) console.debug()
var text = awBugReporter.generateText(description.text, reproduce.text,
expected.text, logBody.text)
awBugReporter.sendBugReport(title.text, text) awBugReporter.sendBugReport(title.text, text)
} }
onReset: { onReset: {
if (debug) console.debug()
title.text = "" title.text = ""
description.text = "" description.text = ""
reproduce.text = "" reproduce.text = ""
@ -150,6 +144,8 @@ Dialog {
} }
Component.onCompleted: { Component.onCompleted: {
if (debug) console.debug()
awBugReporter.doConnect() awBugReporter.doConnect()
} }
} }

View File

@ -32,11 +32,9 @@ Row {
id: label id: label
height: parent.height height: parent.height
width: parent.width * 2 / 5 width: parent.width * 2 / 5
horizontalAlignment: Text.AlignRight horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
} }
Button { Button {
id: button id: button
width: parent.width * 3 / 5 width: parent.width * 3 / 5

View File

@ -30,7 +30,6 @@ Row {
height: parent.heigth height: parent.heigth
width: parent.width * 2 / 5 width: parent.width * 2 / 5
} }
CheckBox { CheckBox {
id: checkBox id: checkBox
width: parent.width * 3 / 5 width: parent.width * 3 / 5

View File

@ -20,11 +20,10 @@ import QtQuick.Dialogs
ButtonSelector { ButtonSelector {
background: Rectangle { // TODO somehow doesn't work
implicitWidth: 100 // background: Rectangle {
implicitHeight: 25 // color: value
color: value // }
}
onButtonActivated: colorDialog.visible = true onButtonActivated: colorDialog.visible = true

View File

@ -39,16 +39,14 @@ Row {
horizontalAlignment: Text.AlignRight horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
} }
ComboBox { ComboBox {
id: comboBox id: comboBox
width: parent.width * 3 / 5 width: parent.width * 3 / 5
textRole: "label" textRole: 'label'
onCurrentIndexChanged: valueEdited(comboBox.model[comboBox.currentIndex]["name"]) onCurrentIndexChanged: valueEdited(comboBox.model[comboBox.currentIndex]['name'])
Component.onCompleted: { Component.onCompleted: {
const total = comboBox.model.length var total = comboBox.model.length
for (let i = 0; i < total; i++) { for (var i = 0; i < total; i++) {
if (comboBox.model[i]["name"] === value) if (comboBox.model[i]["name"] === value)
comboBox.currentIndex = i comboBox.currentIndex = i
} }

View File

@ -37,9 +37,8 @@ Item {
fileMode: FileDialog.SaveFile fileMode: FileDialog.SaveFile
title: i18n("Export") title: i18n("Export")
currentFolder: awConfig.configurationDirectory() currentFolder: awConfig.configurationDirectory()
onAccepted: { onAccepted: {
const status = awConfig.exportConfiguration( var status = awConfig.exportConfiguration(
configuration, configuration,
fileDialog.fileUrl.toString().replace("file://", "")) fileDialog.fileUrl.toString().replace("file://", ""))
if (status) { if (status) {
@ -52,6 +51,7 @@ Item {
messageDialog.open() messageDialog.open()
} }
} }
function open() { function open() {
return fileDialog.open() return fileDialog.open()
} }

View File

@ -21,7 +21,6 @@ import QtQuick 2.15
// required by i18n functions // required by i18n functions
import org.kde.plasma.core as PlasmaCore import org.kde.plasma.core as PlasmaCore
QtObject { QtObject {
property variant fontWeight: { property variant fontWeight: {
"light": Font.Light, "light": Font.Light,

View File

@ -30,7 +30,6 @@ Row {
text: i18n("Bgcolor") text: i18n("Bgcolor")
textField: textArea textField: textArea
} }
HtmlEditorFont { HtmlEditorFont {
width: parent.width * 3 / 15 width: parent.width * 3 / 15
textField: textArea textField: textArea
@ -46,7 +45,6 @@ Row {
textField: textArea textField: textArea
end: "<br>\n" end: "<br>\n"
} }
// font properties // font properties
HtmlEditorButton { HtmlEditorButton {
width: parent.width / 15 width: parent.width / 15
@ -55,7 +53,6 @@ Row {
start: "<b>" start: "<b>"
end: "</b>" end: "</b>"
} }
HtmlEditorButton { HtmlEditorButton {
width: parent.width / 15 width: parent.width / 15
icon.name: "format-text-italic" icon.name: "format-text-italic"
@ -63,7 +60,6 @@ Row {
start: "<i>" start: "<i>"
end: "</i>" end: "</i>"
} }
HtmlEditorButton { HtmlEditorButton {
width: parent.width / 15 width: parent.width / 15
icon.name: "format-text-underline" icon.name: "format-text-underline"
@ -71,7 +67,6 @@ Row {
start: "<u>" start: "<u>"
end: "</u>" end: "</u>"
} }
HtmlEditorButton { HtmlEditorButton {
width: parent.width / 15 width: parent.width / 15
icon.name: "format-text-strikethrough" icon.name: "format-text-strikethrough"
@ -88,7 +83,6 @@ Row {
start: "<p align=\"left\">" start: "<p align=\"left\">"
end: "</p>" end: "</p>"
} }
HtmlEditorButton { HtmlEditorButton {
width: parent.width / 15 width: parent.width / 15
icon.name: "format-justify-center" icon.name: "format-justify-center"
@ -96,7 +90,6 @@ Row {
start: "<p align=\"center\">" start: "<p align=\"center\">"
end: "</p>" end: "</p>"
} }
HtmlEditorButton { HtmlEditorButton {
width: parent.width / 15 width: parent.width / 15
icon.name: "format-justify-right" icon.name: "format-justify-right"
@ -104,7 +97,6 @@ Row {
start: "<p align=\"right\">" start: "<p align=\"right\">"
end: "</p>" end: "</p>"
} }
HtmlEditorButton { HtmlEditorButton {
width: parent.width / 15 width: parent.width / 15
icon.name: "format-justify-fill" icon.name: "format-justify-fill"

View File

@ -31,7 +31,7 @@ Button {
function updateText() { function updateText() {
// get selected text // get selected text
const selected = textField.selectedText() var selected = textField.selectedText()
// remove it from widget // remove it from widget
textField.removeSelection() textField.removeSelection()
// insert edited text // insert edited text

View File

@ -36,13 +36,13 @@ HtmlEditorButton {
clickedEvent: function() { clickedEvent: function() {
// get new font // get new font
const defaultFont = { var defaultFont = {
"color": defaultFontColor, "color": defaultFontColor,
"family": defaultFontFamily, "family": defaultFontFamily,
"size": defaultFontSize "size": defaultFontSize
} }
// we are using custom selector as soon as we need to select color as well // we are using custom selector as soon as we need to select color as well
const font = awActions.getFont(defaultFont) var font = awActions.getFont(defaultFont)
// check status // check status
if (!font.applied) if (!font.applied)

View File

@ -57,13 +57,14 @@ Item {
} }
onAccepted: { onAccepted: {
const importConfig = awConfig.importConfiguration( var importConfig = awConfig.importConfiguration(
fileDialog.fileUrl.toString().replace("file://", ""), fileDialog.fileUrl.toString().replace("file://", ""),
importPlasmoid.checked, importExtensions.checked, importPlasmoid.checked, importExtensions.checked,
importAdds.checked) importAdds.checked)
configurationReceived(importConfig) configurationReceived(importConfig)
} }
} }
function open() { function open() {
return fileDialog.open() return fileDialog.open()
} }

View File

@ -39,7 +39,6 @@ Row {
horizontalAlignment: Text.AlignRight horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
} }
SpinBox { SpinBox {
id: spinBox id: spinBox
width: parent.width * 3 / 5 width: parent.width * 3 / 5

View File

@ -35,7 +35,6 @@ Row {
horizontalAlignment: Text.AlignRight horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
} }
TextField { TextField {
id: textField id: textField
width: parent.width * 3 / 5 width: parent.width * 3 / 5

View File

@ -49,15 +49,15 @@ void TestAWDateTimeFormatter::test_values()
void TestAWDateTimeFormatter::test_conversion() void TestAWDateTimeFormatter::test_conversion()
{ {
auto now = QDateTime::currentDateTime(); QDateTime now = QDateTime::currentDateTime();
QCOMPARE(formatter->convert(now), QLocale::system().toString(now, format)); QCOMPARE(formatter->convert(now), now.toString(format));
} }
void TestAWDateTimeFormatter::test_copy() void TestAWDateTimeFormatter::test_copy()
{ {
formatter->setTranslateString(false); formatter->setTranslateString(false);
auto *newFormatter = formatter->copy("/dev/null", 1); AWDateTimeFormatter *newFormatter = formatter->copy("/dev/null", 1);
QCOMPARE(newFormatter->format(), formatter->format()); QCOMPARE(newFormatter->format(), formatter->format());
QCOMPARE(newFormatter->translateString(), formatter->translateString()); QCOMPARE(newFormatter->translateString(), formatter->translateString());

View File

@ -39,13 +39,13 @@ void TestNetworkSource::cleanupTestCase()
void TestNetworkSource::test_sources() void TestNetworkSource::test_sources()
{ {
QCOMPARE(source->sources(), QStringList({"device", "ssid"})); QCOMPARE(source->sources(), QStringList() << src << "network/current/ssid");
} }
void TestNetworkSource::test_values() void TestNetworkSource::test_values()
{ {
QVERIFY(source->data("device").toString().length() > 0); QVERIFY(source->data(src).toString().count() > 0);
} }

View File

@ -38,6 +38,7 @@ private slots:
private: private:
NetworkSource *source = nullptr; NetworkSource *source = nullptr;
QString src = "network/current/name";
}; };

View File

@ -43,23 +43,23 @@ void TestPlayerSource::test_buildString()
{ {
QString randomString = AWTestLibrary::randomString(1, 40); QString randomString = AWTestLibrary::randomString(1, 40);
QString str = PlayerSource::buildString("", randomString, 20); QString str = PlayerSource::buildString("", randomString, 20);
QCOMPARE(str.length(), 20); QCOMPARE(str.count(), 20);
str = PlayerSource::buildString(str, randomString, 20); str = PlayerSource::buildString(str, randomString, 20);
QCOMPARE(str.length(), 20); QCOMPARE(str.count(), 20);
str = PlayerSource::buildString("", AWTestLibrary::randomString(1, 10), 20); str = PlayerSource::buildString("", AWTestLibrary::randomString(1, 10), 20);
QCOMPARE(str.length(), 20); QCOMPARE(str.count(), 20);
} }
void TestPlayerSource::test_stripString() void TestPlayerSource::test_stripString()
{ {
QString str = PlayerSource::buildString("", AWTestLibrary::randomString(1, 40), 20); QString str = PlayerSource::buildString("", AWTestLibrary::randomString(1, 40), 20);
QCOMPARE(str.length(), 20); QCOMPARE(str.count(), 20);
str = PlayerSource::buildString("", AWTestLibrary::randomString(1, 10), 20); str = PlayerSource::buildString("", AWTestLibrary::randomString(1, 10), 20);
QCOMPARE(str.length(), 20); QCOMPARE(str.count(), 20);
} }
@ -85,7 +85,7 @@ void TestPlayerSource::test_mpd()
// init spy // init spy
QSignalSpy spy(source, SIGNAL(dataReceived(const QVariantHash &))); QSignalSpy spy(source, SIGNAL(dataReceived(const QVariantHash &)));
QVariant firstValue = source->data("title"); QVariant firstValue = source->data("player/title");
if (!source->isMpdSocketConnected()) if (!source->isMpdSocketConnected())
QSKIP("No mpd found"); QSKIP("No mpd found");
@ -95,10 +95,10 @@ void TestPlayerSource::test_mpd()
QVariantHash secondValue = arguments.at(0).toHash(); QVariantHash secondValue = arguments.at(0).toHash();
// actually nothing to test here just print warning if no information found // actually nothing to test here just print warning if no information found
if (secondValue["title"].toString() == "unknown") if (secondValue["player/title"].toString() == "unknown")
QSKIP("No mpd found"); QSKIP("No mpd found");
QVERIFY(secondValue["progress"].toInt() < secondValue["duration"].toInt()); QVERIFY(secondValue["player/progress"].toInt() < secondValue["player/duration"].toInt());
} }
@ -109,9 +109,9 @@ void TestPlayerSource::test_mpris()
PlayerSource *source = new PlayerSource(this, args); PlayerSource *source = new PlayerSource(this, args);
_test_sources(source); _test_sources(source);
QString value = source->data("title").toString(); QString value = source->data("player/title").toString();
int progress = source->data("progress").toInt(); int progress = source->data("player/progress").toInt();
int duration = source->data("duration").toInt(); int duration = source->data("player/duration").toInt();
// actually nothing to test here just print warning if no information found // actually nothing to test here just print warning if no information found
if (value == "unknown") if (value == "unknown")

View File

@ -45,9 +45,9 @@ void TestProcessesSource::test_sources()
void TestProcessesSource::test_values() void TestProcessesSource::test_values()
{ {
QVERIFY(source->data("running").toInt() > 0); QVERIFY(source->data("ps/running/count").toInt() > 0);
QVERIFY(source->data("list").toStringList().count() > 0); QVERIFY(source->data("ps/running/list").toStringList().count() > 0);
QVERIFY(source->data("count").toInt() > 0); QVERIFY(source->data("ps/total/count").toInt() > 0);
} }