diff --git a/sources/CMakeLists.txt b/sources/CMakeLists.txt index 7fc00c2..eeda57a 100644 --- a/sources/CMakeLists.txt +++ b/sources/CMakeLists.txt @@ -5,7 +5,7 @@ cmake_policy (SET CMP0002 OLD) cmake_policy (SET CMP0011 NEW) cmake_policy (SET CMP0015 NEW) -project (awesome-widgets) +project (awesomewidgets) set (PROJECT_AUTHOR "Evgeniy Alekseev") set (PROJECT_CONTACT "esalexeev@gmail.com") set (PROJECT_LICENSE "GPLv3") diff --git a/sources/awesome-widget-kf5/package/contents/config/main.xml b/sources/awesome-widget-kf5/package/contents/config/main.xml index d90e4a7..fd72949 100644 --- a/sources/awesome-widget-kf5/package/contents/config/main.xml +++ b/sources/awesome-widget-kf5/package/contents/config/main.xml @@ -26,24 +26,6 @@ Celsius - - - - - - - - / - - - /dev/sda - - - disk/sda_(8:0) - - - - (*) diff --git a/sources/awesome-widget-kf5/package/contents/ui/advanced.qml b/sources/awesome-widget-kf5/package/contents/ui/advanced.qml index 8bf549f..2ee6c94 100644 --- a/sources/awesome-widget-kf5/package/contents/ui/advanced.qml +++ b/sources/awesome-widget-kf5/package/contents/ui/advanced.qml @@ -17,8 +17,7 @@ import QtQuick 2.0 import QtQuick.Controls 1.3 as QtControls -import QtQuick.Layouts 1.0 as QtLayouts -import QtQuick.Controls.Styles 1.3 as QtStyles +import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.private.awesomewidget 1.0 @@ -31,6 +30,33 @@ Item { implicitHeight: pageColumn.implicitHeight property bool debug: AWKeys.isDebugEnabled() + property variant settings: { + "customTime": plasmoid.configuration.customTime, + "customUptime": plasmoid.configuration.customUptime, + "tempUnits": plasmoid.configuration.tempUnits, + "acOnline": plasmoid.configuration.acOnline, + "acOffline": plasmoid.configuration.acOffline + } + property variant tooltipSettings: { + "tooltipNumber": plasmoid.configuration.tooltipNumber, + "useTooltipBackground": plasmoid.configuration.useTooltipBackground, + "tooltipBackgroung": plasmoid.configuration.tooltipBackgroung, + "cpuTooltip": plasmoid.configuration.cpuTooltip, + "cpuclTooltip": plasmoid.configuration.cpuclTooltip, + "memTooltip": plasmoid.configuration.memTooltip, + "swapTooltip": plasmoid.configuration.swapTooltip, + "downTooltip": plasmoid.configuration.downTooltip, + "upTooltip": plasmoid.configuration.downTooltip, + "batteryTooltip": plasmoid.configuration.batteryTooltip, + "cpuTooltipColor": plasmoid.configuration.cpuTooltipColor, + "cpuclTooltipColor": plasmoid.configuration.cpuclTooltipColor, + "memTooltipColor": plasmoid.configuration.memTooltipColor, + "swapTooltipColor": plasmoid.configuration.swapTooltipColor, + "downTooltipColor": plasmoid.configuration.downTooltipColor, + "upTooltipColor": plasmoid.configuration.upTooltipColor, + "batteryTooltipColor": plasmoid.configuration.batteryTooltipColor, + "batteryInTooltipColor": plasmoid.configuration.batteryInTooltipColor + } property alias cfg_background: background.checked property alias cfg_customTime: customTime.text @@ -146,126 +172,6 @@ Item { } } - Row { - height: implicitHeight - width: parent.width - QtControls.Label { - height: implicitHeight - width: parent.width * 2 / 5 - horizontalAlignment: Text.AlignRight - verticalAlignment: Text.AlignVCenter - text: i18n("Temperature devices") - } - QtControls.Button { - width: parent.width * 3 / 5 - text: i18n("Select devices") - onClicked: plasmoid.configuration.tempDevice = AWActions.selectDevices( - AWActions.getTempDevices(), - plasmoid.configuration.tempDevice.split("@@") - ) - } - } - - Row { - height: implicitHeight - width: parent.width - QtControls.Label { - height: implicitHeight - width: parent.width * 2 / 5 - horizontalAlignment: Text.AlignRight - verticalAlignment: Text.AlignVCenter - text: i18n("Fan devices") - } - QtControls.Button { - width: parent.width * 3 / 5 - text: i18n("Select devices") - onClicked: plasmoid.configuration.fanDevice = AWActions.selectDevice( - AWActions.getFanDevices(), - plasmoid.configuration.fanDevice.split("@@") - ) - } - } - - Row { - height: implicitHeight - width: parent.width - QtControls.Label { - height: implicitHeight - width: parent.width * 2 / 5 - horizontalAlignment: Text.AlignRight - verticalAlignment: Text.AlignVCenter - text: i18n("Mount devices") - } - QtControls.Button { - width: parent.width * 3 / 5 - text: i18n("Select devices") - onClicked: plasmoid.configuration.mount = AWActions.selectDevices( - AWActions.getMountDevices(), - plasmoid.configuration.mount.split("@@") - ) - } - } - - Row { - height: implicitHeight - width: parent.width - QtControls.Label { - height: implicitHeight - width: parent.width * 2 / 5 - horizontalAlignment: Text.AlignRight - verticalAlignment: Text.AlignVCenter - text: i18n("HDD devices (speed)") - } - QtControls.Button { - width: parent.width * 3 / 5 - text: i18n("Select devices") - onClicked: plasmoid.configuration.disk = AWActions.selectDevices( - AWActions.getDiskDevices(), - plasmoid.configuration.disk.split("@@") - ) - } - } - - Row { - height: implicitHeight - width: parent.width - QtControls.Label { - height: implicitHeight - width: parent.width * 2 / 5 - horizontalAlignment: Text.AlignRight - verticalAlignment: Text.AlignVCenter - text: i18n("HDD devices (temp)") - } - QtControls.Button { - width: parent.width * 3 / 5 - text: i18n("Select devices") - onClicked: plasmoid.configuration.hdd = AWActions.selectDevices( - AWActions.getHddDevices(), - plasmoid.configuration.hdd.split("@@") - ) - } - } - - Row { - height: implicitHeight - width: parent.width - QtControls.Label { - height: implicitHeight - width: parent.width * 2 / 5 - horizontalAlignment: Text.AlignRight - verticalAlignment: Text.AlignVCenter - text: i18n("Network devices") - } - QtControls.Button { - width: parent.width * 3 / 5 - text: i18n("Select devices") - onClicked: plasmoid.configuration.customNetdev = AWActions.selectDevices( - AWActions.getNetworkDevices(), - plasmoid.configuration.customNetdev.split("@@") - ) - } - } - Row { height: implicitHeight width: parent.width @@ -304,7 +210,7 @@ Item { height: implicitHeight width: parent.width QtControls.Label { - height: implicitHeight + height: parent.height width: parent.width * 2 / 5 horizontalAlignment: Text.AlignRight verticalAlignment: Text.AlignVCenter @@ -318,11 +224,52 @@ Item { } } + // we need to initializate DataEngines here too + // because we need to get keys and values + PlasmaCore.DataSource { + id: systemmonitorDE + engine: "systemmonitor" + connectedSources: systemmonitorDE.sources + interval: 5000 + + onNewData: { + if (debug) console.log("[advanced::onNewData] : Update source " + sourceName) + + AWKeys.setDataBySource(sourceName, data, settings) + } + } + + PlasmaCore.DataSource { + id: extsysmonDE + engine: "extsysmon" + connectedSources: ["battery", "custom", "desktop", "netdev", "gpu", + "gputemp", "hddtemp", "pkg", "player", "ps", "update"] + interval: 5000 + + onNewData: { + if (debug) console.log("[advanced::onNewData] : Update source " + sourceName) + + AWKeys.setDataBySource(sourceName, data, settings) + } + } + + PlasmaCore.DataSource { + id: timeDE + engine: "time" + connectedSources: ["Local"] + interval: 5000 + + onNewData: { + if (debug) console.log("[advanced::onNewData] : Update source " + sourceName) + + AWKeys.setDataBySource(sourceName, data, settings) + } + } Component.onCompleted: { if (debug) console.log("[advanced::onCompleted]") // init submodule - AWKeys.initKeys(pattern, settings, tooltipSettings) + AWKeys.initKeys(plasmoid.configuration.text, tooltipSettings) } } diff --git a/sources/awesome-widget-kf5/package/contents/ui/appearance.qml b/sources/awesome-widget-kf5/package/contents/ui/appearance.qml index d3f4dfb..d7be19b 100644 --- a/sources/awesome-widget-kf5/package/contents/ui/appearance.qml +++ b/sources/awesome-widget-kf5/package/contents/ui/appearance.qml @@ -19,7 +19,6 @@ import QtQuick 2.0 import QtQuick.Controls 1.3 as QtControls import QtQuick.Controls.Styles 1.3 as QtStyles import QtQuick.Dialogs 1.1 as QtDialogs -import QtQuick.Layouts 1.0 as QtLayouts import org.kde.plasma.private.awesomewidget 1.0 import "." diff --git a/sources/awesome-widget-kf5/package/contents/ui/general.qml b/sources/awesome-widget-kf5/package/contents/ui/general.qml index 548d972..dc26a78 100644 --- a/sources/awesome-widget-kf5/package/contents/ui/general.qml +++ b/sources/awesome-widget-kf5/package/contents/ui/general.qml @@ -33,37 +33,4 @@ QtObject { "right": Text.AlignRight, "justify": Text.AlignJustify } - property variant settings: { - "customTime": plasmoid.configuration.customTime, - "customUptime": plasmoid.configuration.customUptime, - "tempUnits": plasmoid.configuration.tempUnits, - "tempDevice": plasmoid.configuration.tempDevice, - "fanDevice": plasmoid.configuration.fanDevice, - "mount": plasmoid.configuration.mount, - "hdd": plasmoid.configuration.hdd, - "disk": plasmoid.configuration.disk, - "customNetdev": plasmoid.configuration.customNetdev, - "acOnline": plasmoid.configuration.acOnline, - "acOffline": plasmoid.configuration.acOffline - } - property variant tooltipSettings: { - "tooltipNumber": plasmoid.configuration.tooltipNumber, - "useTooltipBackground": plasmoid.configuration.useTooltipBackground, - "tooltipBackgroung": plasmoid.configuration.tooltipBackgroung, - "cpuTooltip": plasmoid.configuration.cpuTooltip, - "cpuclTooltip": plasmoid.configuration.cpuclTooltip, - "memTooltip": plasmoid.configuration.memTooltip, - "swapTooltip": plasmoid.configuration.swapTooltip, - "downTooltip": plasmoid.configuration.downTooltip, - "upTooltip": plasmoid.configuration.downTooltip, - "batteryTooltip": plasmoid.configuration.batteryTooltip, - "cpuTooltipColor": plasmoid.configuration.cpuTooltipColor, - "cpuclTooltipColor": plasmoid.configuration.cpuclTooltipColor, - "memTooltipColor": plasmoid.configuration.memTooltipColor, - "swapTooltipColor": plasmoid.configuration.swapTooltipColor, - "downTooltipColor": plasmoid.configuration.downTooltipColor, - "upTooltipColor": plasmoid.configuration.upTooltipColor, - "batteryTooltipColor": plasmoid.configuration.batteryTooltipColor, - "batteryInTooltipColor": plasmoid.configuration.batteryInTooltipColor - } } diff --git a/sources/awesome-widget-kf5/package/contents/ui/main.qml b/sources/awesome-widget-kf5/package/contents/ui/main.qml index 34ea94b..b5fceef 100644 --- a/sources/awesome-widget-kf5/package/contents/ui/main.qml +++ b/sources/awesome-widget-kf5/package/contents/ui/main.qml @@ -29,6 +29,33 @@ Item { id: main property bool debug: AWKeys.isDebugEnabled() + property variant settings: { + "customTime": plasmoid.configuration.customTime, + "customUptime": plasmoid.configuration.customUptime, + "tempUnits": plasmoid.configuration.tempUnits, + "acOnline": plasmoid.configuration.acOnline, + "acOffline": plasmoid.configuration.acOffline + } + property variant tooltipSettings: { + "tooltipNumber": plasmoid.configuration.tooltipNumber, + "useTooltipBackground": plasmoid.configuration.useTooltipBackground, + "tooltipBackgroung": plasmoid.configuration.tooltipBackgroung, + "cpuTooltip": plasmoid.configuration.cpuTooltip, + "cpuclTooltip": plasmoid.configuration.cpuclTooltip, + "memTooltip": plasmoid.configuration.memTooltip, + "swapTooltip": plasmoid.configuration.swapTooltip, + "downTooltip": plasmoid.configuration.downTooltip, + "upTooltip": plasmoid.configuration.downTooltip, + "batteryTooltip": plasmoid.configuration.batteryTooltip, + "cpuTooltipColor": plasmoid.configuration.cpuTooltipColor, + "cpuclTooltipColor": plasmoid.configuration.cpuclTooltipColor, + "memTooltipColor": plasmoid.configuration.memTooltipColor, + "swapTooltipColor": plasmoid.configuration.swapTooltipColor, + "downTooltipColor": plasmoid.configuration.downTooltipColor, + "upTooltipColor": plasmoid.configuration.upTooltipColor, + "batteryTooltipColor": plasmoid.configuration.batteryTooltipColor, + "batteryInTooltipColor": plasmoid.configuration.batteryInTooltipColor + } signal needUpdate @@ -42,34 +69,34 @@ Item { PlasmaCore.DataSource { id: systemmonitorDE engine: "systemmonitor" - connectedSources: systemmonitorDE.sources + connectedSources: [] interval: plasmoid.configuration.interval onNewData: { if (debug) console.log("[main::onNewData] : Update source " + sourceName) - if (!AWActions.checkKeys(data)) return - if (AWKeys.isReady()) AWKeys.setDataBySource(sourceName, data, general.settings) + AWKeys.setDataBySource(sourceName, data, settings) } onSourceAdded: { if (debug) console.log("[main::onSourceAdded] : Source " + source) - AWActions.addDevice(source) + systemmonitorDE.connectSource(source) + AWKeys.addDevice(source) } } PlasmaCore.DataSource { id: extsysmonDE engine: "extsysmon" - connectedSources: extsysmonDE.sources + connectedSources: ["battery", "custom", "desktop", "netdev", "gpu", + "gputemp", "hddtemp", "pkg", "player", "ps", "update"] interval: plasmoid.configuration.interval onNewData: { if (debug) console.log("[main::onNewData] : Update source " + sourceName) - if (!AWActions.checkKeys(data)) return - if (AWKeys.isReady()) AWKeys.setDataBySource(sourceName, data, general.settings) + AWKeys.setDataBySource(sourceName, data, settings) // update if (sourceName == "update") needUpdate() } @@ -84,8 +111,7 @@ Item { onNewData: { if (debug) console.log("[main::onNewData] : Update source " + sourceName) - if (!AWActions.checkKeys(data)) return - if (AWKeys.isReady()) AWKeys.setDataBySource(sourceName, data, general.settings) + AWKeys.setDataBySource(sourceName, data, settings) } } @@ -111,10 +137,11 @@ Item { if (debug) console.log("[main::onCompleted]") // init submodule - AWKeys.initKeys(plasmoid.configuration.text, general.settings, general.tooltipSettings) + AWKeys.initKeys(plasmoid.configuration.text, tooltipSettings) // actions + plasmoid.setAction("requestKey", i18n("Request key"), "utilities-system-monitor") plasmoid.setAction("showReadme", i18n("Show README"), "text-x-readme") - plasmoid.setAction("updateText", i18n("Update text"), "stock-refresh") + plasmoid.setAction("updateText", i18n("Update text"), "view-refresh") plasmoid.setAction("checkUpdates", i18n("Check updates"), "system-software-update") } @@ -141,6 +168,14 @@ Item { AWActions.showReadme() } + function action_requestKey() { + if (debug) console.log("[main::action_requestKey]") + + var message = AWKeys.graphicalValueByKey(); + if (message.length == 0) return + AWActions.sendNotification("tag", message) + } + function action_updateText() { if (debug) console.log("[main::action_updateText]") } diff --git a/sources/awesome-widget-kf5/package/contents/ui/widget.qml b/sources/awesome-widget-kf5/package/contents/ui/widget.qml index 0738175..aae6bae 100644 --- a/sources/awesome-widget-kf5/package/contents/ui/widget.qml +++ b/sources/awesome-widget-kf5/package/contents/ui/widget.qml @@ -17,9 +17,7 @@ import QtQuick 2.0 import QtQuick.Controls 1.3 as QtControls -import QtQuick.Dialogs 1.1 as QtDialogs -import QtQuick.Layouts 1.0 as QtLayouts -import QtQuick.Controls.Styles 1.3 as QtStyles +import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.private.awesomewidget 1.0 import "." @@ -33,6 +31,33 @@ Item { implicitHeight: pageColumn.implicitHeight property bool debug: AWKeys.isDebugEnabled() + property variant settings: { + "customTime": plasmoid.configuration.customTime, + "customUptime": plasmoid.configuration.customUptime, + "tempUnits": plasmoid.configuration.tempUnits, + "acOnline": plasmoid.configuration.acOnline, + "acOffline": plasmoid.configuration.acOffline + } + property variant tooltipSettings: { + "tooltipNumber": plasmoid.configuration.tooltipNumber, + "useTooltipBackground": plasmoid.configuration.useTooltipBackground, + "tooltipBackgroung": plasmoid.configuration.tooltipBackgroung, + "cpuTooltip": plasmoid.configuration.cpuTooltip, + "cpuclTooltip": plasmoid.configuration.cpuclTooltip, + "memTooltip": plasmoid.configuration.memTooltip, + "swapTooltip": plasmoid.configuration.swapTooltip, + "downTooltip": plasmoid.configuration.downTooltip, + "upTooltip": plasmoid.configuration.downTooltip, + "batteryTooltip": plasmoid.configuration.batteryTooltip, + "cpuTooltipColor": plasmoid.configuration.cpuTooltipColor, + "cpuclTooltipColor": plasmoid.configuration.cpuclTooltipColor, + "memTooltipColor": plasmoid.configuration.memTooltipColor, + "swapTooltipColor": plasmoid.configuration.swapTooltipColor, + "downTooltipColor": plasmoid.configuration.downTooltipColor, + "upTooltipColor": plasmoid.configuration.upTooltipColor, + "batteryTooltipColor": plasmoid.configuration.batteryTooltipColor, + "batteryInTooltipColor": plasmoid.configuration.batteryInTooltipColor + } property alias cfg_text: textPattern.text @@ -220,10 +245,52 @@ Item { } } + // we need to initializate DataEngines here too + // because we need to get keys and values + PlasmaCore.DataSource { + id: systemmonitorDE + engine: "systemmonitor" + connectedSources: systemmonitorDE.sources + interval: 5000 + + onNewData: { + if (debug) console.log("[widget::onNewData] : Update source " + sourceName) + + AWKeys.setDataBySource(sourceName, data, settings) + } + } + + PlasmaCore.DataSource { + id: extsysmonDE + engine: "extsysmon" + connectedSources: ["battery", "custom", "desktop", "netdev", "gpu", + "gputemp", "hddtemp", "pkg", "player", "ps", "update"] + interval: 5000 + + onNewData: { + if (debug) console.log("[widget::onNewData] : Update source " + sourceName) + + AWKeys.setDataBySource(sourceName, data, settings) + } + } + + PlasmaCore.DataSource { + id: timeDE + engine: "time" + connectedSources: ["Local"] + interval: 5000 + + onNewData: { + if (debug) console.log("[widget::onNewData] : Update source " + sourceName) + + AWKeys.setDataBySource(sourceName, data, settings) + } + } + Component.onCompleted: { if (debug) console.log("[widget::onCompleted]") // init submodule - AWKeys.initKeys(plasmoid.configuration.text, general.settings, general.tooltipSettings) + AWKeys.initKeys(plasmoid.configuration.text, tooltipSettings) } } diff --git a/sources/awesome-widget-kf5/plugin/CMakeLists.txt b/sources/awesome-widget-kf5/plugin/CMakeLists.txt index 8431aee..9b73bef 100644 --- a/sources/awesome-widget-kf5/plugin/CMakeLists.txt +++ b/sources/awesome-widget-kf5/plugin/CMakeLists.txt @@ -41,4 +41,4 @@ target_link_libraries (${PLUGIN_NAME} ${Qt_LIBRARIES} ${Kf5_LIBRARIES}) install (TARGETS ${PLUGIN_NAME} DESTINATION ${QML_INSTALL_DIR}/org/kde/plasma/private/awesomewidget) install (FILES qmldir DESTINATION ${QML_INSTALL_DIR}/org/kde/plasma/private/awesomewidget) install (FILES ${SUBPROJECT_NOTIFY} DESTINATION ${KNOTIFYRC_INSTALL_DIR}) -install (DIRECTORY ${SUBPROJECT_DESKTOPS} DESTINATION ${DATA_INSTALL_DIR}/${PLUGIN_NAME}) +install (DIRECTORY ${SUBPROJECT_DESKTOPS} DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}) diff --git a/sources/awesome-widget-kf5/plugin/awactions.cpp b/sources/awesome-widget-kf5/plugin/awactions.cpp index d2714dc..7484a5e 100644 --- a/sources/awesome-widget-kf5/plugin/awactions.cpp +++ b/sources/awesome-widget-kf5/plugin/awactions.cpp @@ -23,16 +23,12 @@ #include #include #include -#include -#include #include #include -#include #include #include #include #include -#include #include #include @@ -60,15 +56,6 @@ AWActions::~AWActions() } -bool AWActions::checkKeys(const QMap data) -{ - if (debug) qDebug() << PDEBUG; - if (debug) qDebug() << PDEBUG << ":" << "Data" << data; - - return (data.count() != 0); -} - - void AWActions::checkUpdates() { if (debug) qDebug() << PDEBUG; @@ -111,31 +98,6 @@ void AWActions::showReadme() } -void AWActions::addDevice(const QString source) -{ - if (debug) qDebug() << PDEBUG; - if (debug) qDebug() << PDEBUG << ":" << "Source" << source; - - QRegExp diskRegexp = QRegExp(QString("disk/(?:md|sd|hd)[a-z|0-9]_.*/Rate/(?:rblk)")); - QRegExp fanRegexp = QRegExp(QString("lmsensors/.*/fan.*")); - QRegExp mountRegexp = QRegExp(QString("partitions/.*/filllevel")); - QRegExp tempRegexp = QRegExp(QString("lmsensors/.*temp.*/.*")); - - if (diskRegexp.indexIn(source) > -1) { - QStringList splitSource = source.split(QChar('/')); - QString device = splitSource[0] + QString("/") + splitSource[1]; - diskDevices.append(device); - } else if (fanRegexp.indexIn(source) > -1) - fanDevices.append(source); - else if (mountRegexp.indexIn(source) > -1) { - QString device = source; - device.remove(QString("partitions")).remove(QString("/filllevel")); - mountDevices.append(device); - } else if (tempRegexp.indexIn(source) > -1) - tempDevices.append(source); -} - - QString AWActions::getAboutText(const QString type) { if (debug) qDebug() << PDEBUG; @@ -173,74 +135,6 @@ QString AWActions::getAboutText(const QString type) } -QStringList AWActions::getDiskDevices() -{ - if (debug) qDebug() << PDEBUG; - - diskDevices.sort(); - - return diskDevices; -} - - -QStringList AWActions::getFanDevices() -{ - if (debug) qDebug() << PDEBUG; - - fanDevices.sort(); - - return fanDevices; -} - - -QStringList AWActions::getHddDevices() -{ - if (debug) qDebug() << PDEBUG; - - QStringList allDevices = QDir(QString("/dev")).entryList(QDir::System, QDir::Name); - QStringList devices = allDevices.filter(QRegExp(QString("^[hms]d[a-z]$"))); - for (int i=0; i rawInterfaceList = QNetworkInterface::allInterfaces(); - for (int i=0; i AWActions::getFont(const QMap defaultFont) { if (debug) qDebug() << PDEBUG; @@ -308,38 +202,20 @@ QMap AWActions::readDataEngineConfiguration() QString fileName = QStandardPaths::locate(QStandardPaths::ConfigLocation, QString("plasma-dataengine-extsysmon.conf")); if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << fileName; QSettings settings(fileName, QSettings::IniFormat); - QMap rawConfig; + QMap configuration; settings.beginGroup(QString("Configuration")); - rawConfig[QString("ACPIPATH")] = settings.value(QString("ACPIPATH"), QString("/sys/class/power_supply/")); - rawConfig[QString("GPUDEV")] = settings.value(QString("GPUDEV"), QString("auto")); - rawConfig[QString("HDDDEV")] = settings.value(QString("HDDDEV"), QString("all")); - rawConfig[QString("HDDTEMPCMD")] = settings.value(QString("HDDTEMPCMD"), QString("sudo hddtemp")); - rawConfig[QString("MPDADDRESS")] = settings.value(QString("MPDADDRESS"), QString("localhost")); - rawConfig[QString("MPDPORT")] = settings.value(QString("MPDPORT"), QString("6600")); - rawConfig[QString("MPRIS")] = settings.value(QString("MPRIS"), QString("auto")); - rawConfig[QString("PKGCMD")] = settings.value(QString("PKGCMD"), QString("pacman -Qu")); - rawConfig[QString("PKGNULL")] = settings.value(QString("PKGNULL"), QString("0")); - rawConfig[QString("PLAYER")] = settings.value(QString("PLAYER"), QString("mpris")); + configuration[QString("ACPIPATH")] = settings.value(QString("ACPIPATH"), QString("/sys/class/power_supply/")); + configuration[QString("GPUDEV")] = settings.value(QString("GPUDEV"), QString("auto")); + configuration[QString("HDDDEV")] = settings.value(QString("HDDDEV"), QString("all")); + configuration[QString("HDDTEMPCMD")] = settings.value(QString("HDDTEMPCMD"), QString("sudo hddtemp")); + configuration[QString("MPDADDRESS")] = settings.value(QString("MPDADDRESS"), QString("localhost")); + configuration[QString("MPDPORT")] = settings.value(QString("MPDPORT"), QString("6600")); + configuration[QString("MPRIS")] = settings.value(QString("MPRIS"), QString("auto")); + configuration[QString("PLAYER")] = settings.value(QString("PLAYER"), QString("mpris")); settings.endGroup(); - return updateDataEngineConfiguration(rawConfig); -} - - -QMap AWActions::updateDataEngineConfiguration(QMap rawConfig) -{ - if (debug) qDebug() << PDEBUG; - - for (int i=rawConfig[QString("PKGNULL")].toString().split(QString(","), QString::SkipEmptyParts).count(); - i data); Q_INVOKABLE void checkUpdates(); Q_INVOKABLE void runCmd(const QString cmd = QString("/usr/bin/true")); Q_INVOKABLE void sendNotification(const QString eventId, const QString message); Q_INVOKABLE void showReadme(); // configuration slots - Q_INVOKABLE void addDevice(const QString source); Q_INVOKABLE QString getAboutText(const QString type = "header"); - Q_INVOKABLE QStringList getDiskDevices(); - Q_INVOKABLE QStringList getFanDevices(); - Q_INVOKABLE QStringList getHddDevices(); - Q_INVOKABLE QStringList getMountDevices(); - Q_INVOKABLE QStringList getNetworkDevices(); - Q_INVOKABLE QStringList getTempDevices(); Q_INVOKABLE QMap getFont(const QMap defaultFont); - Q_INVOKABLE QString selectDevices(const QStringList source, const QStringList current); // dataengine Q_INVOKABLE QMap readDataEngineConfiguration(); Q_INVOKABLE void writeDataEngineConfiguration(const QMap configuration); @@ -59,10 +50,8 @@ private slots: void versionReplyRecieved(QNetworkReply *reply); private: - QMap updateDataEngineConfiguration(QMap rawConfig); // variables bool debug = false; - QStringList diskDevices, fanDevices, mountDevices, tempDevices; }; diff --git a/sources/awesome-widget-kf5/plugin/awkeys.cpp b/sources/awesome-widget-kf5/plugin/awkeys.cpp index 40e68e7..2cf9bfb 100644 --- a/sources/awesome-widget-kf5/plugin/awkeys.cpp +++ b/sources/awesome-widget-kf5/plugin/awkeys.cpp @@ -66,12 +66,29 @@ AWKeys::~AWKeys() { if (debug) qDebug() << PDEBUG; + delete toolTip; + delete createButton; + delete copyButton; + delete dialogButtons; + delete widgetDialog; delete dialog; + + graphicalItems.clear(); + extScripts.clear(); + extUpgrade.clear(); +} + + +bool AWKeys::checkKeys(const QMap data) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Data" << data; + + return (data.count() != 0); } void AWKeys::initKeys(const QString pattern, - const QMap params, const QMap tooltipParams) { if (debug) qDebug() << PDEBUG; @@ -80,7 +97,6 @@ void AWKeys::initKeys(const QString pattern, extScripts.clear(); extUpgrade.clear(); graphicalItems.clear(); - counts.clear(); keys.clear(); foundBars.clear(); foundKeys.clear(); @@ -90,7 +106,6 @@ void AWKeys::initKeys(const QString pattern, extScripts = getExtScripts(); extUpgrade = getExtUpgrade(); graphicalItems = getGraphicalItems(); - counts = getCounts(params); keys = dictKeys(); foundBars = findGraphicalItems(pattern); foundKeys = findKeys(pattern); @@ -108,17 +123,10 @@ bool AWKeys::isDebugEnabled() } -bool AWKeys::isReady() -{ - if (debug) qDebug() << PDEBUG; - - return ready; -} - - QString AWKeys::parsePattern(const QString pattern) { if (debug) qDebug() << PDEBUG; + if (!ready) return pattern; QString parsed = pattern; parsed.replace(QString("$$"), QString("$\\$\\")); @@ -140,6 +148,31 @@ QPixmap AWKeys::toolTipImage() } +void AWKeys::addDevice(const QString source) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Source" << source; + + QRegExp diskRegexp = QRegExp(QString("disk/(?:md|sd|hd)[a-z|0-9]_.*/Rate/(?:rblk)")); + QRegExp fanRegexp = QRegExp(QString("lmsensors/.*/fan.*")); + QRegExp mountRegexp = QRegExp(QString("partitions/.*/filllevel")); + QRegExp tempRegexp = QRegExp(QString("lmsensors/.*temp.*/.*")); + + if (diskRegexp.indexIn(source) > -1) { + QString device = source; + device.remove(QString("/Rate/rblk")); + diskDevices.append(device); + } else if (fanRegexp.indexIn(source) > -1) + fanDevices.append(source); + else if (mountRegexp.indexIn(source) > -1) { + QString device = source; + device.remove(QString("partitions")).remove(QString("/filllevel")); + mountDevices.append(device); + } else if (tempRegexp.indexIn(source) > -1) + tempDevices.append(source); +} + + QStringList AWKeys::dictKeys() { if (debug) qDebug() << PDEBUG; @@ -155,17 +188,17 @@ QStringList AWKeys::dictKeys() allKeys.append(QString("uptime")); allKeys.append(QString("cuptime")); // cpuclock - for (int i=counts[QString("cpu")].toInt()-1; i>=0; i--) + for (int i=numberCpus()-1; i>=0; i--) allKeys.append(QString("cpucl") + QString::number(i)); allKeys.append(QString("cpucl")); // cpu - for (int i=counts[QString("cpu")].toInt()-1; i>=0; i--) + for (int i=numberCpus()-1; i>=0; i--) allKeys.append(QString("cpu") + QString::number(i)); allKeys.append(QString("cpu")); // temperature - for (int i=counts[QString("temp")].toInt()-1; i>=0; i--) + for (int i=tempDevices.count()-1; i>=0; i--) allKeys.append(QString("temp") + QString::number(i)); - for (int i=counts[QString("fan")].toInt()-1; i>=0; i--) + for (int i=fanDevices.count()-1; i>=0; i--) allKeys.append(QString("fan") + QString::number(i)); // gputemp allKeys.append(QString("gputemp")); @@ -190,7 +223,7 @@ QStringList AWKeys::dictKeys() allKeys.append(QString("swaptotgb")); allKeys.append(QString("swap")); // hdd - for (int i=counts[QString("mount")].toInt()-1; i>=0; i--) { + for (int i=mountDevices.count()-1; i>=0; i--) { allKeys.append(QString("hddmb") + QString::number(i)); allKeys.append(QString("hddgb") + QString::number(i)); allKeys.append(QString("hddfreemb") + QString::number(i)); @@ -200,12 +233,12 @@ QStringList AWKeys::dictKeys() allKeys.append(QString("hdd") + QString::number(i)); } // hdd speed - for (int i=counts[QString("disk")].toInt()-1; i>=0; i--) { + for (int i=diskDevices.count()-1; i>=0; i--) { allKeys.append(QString("hddr") + QString::number(i)); allKeys.append(QString("hddw") + QString::number(i)); } // hdd temp - for (int i=counts[QString("hddtemp")].toInt()-1; i>=0; i--) { + for (int i=getHddDevices.count()-1; i>=0; i--) { allKeys.append(QString("hddtemp") + QString::number(i)); allKeys.append(QString("hddtemp") + QString::number(i)); } @@ -215,7 +248,10 @@ QStringList AWKeys::dictKeys() allKeys.append(QString("netdev")); // battery allKeys.append(QString("ac")); - for (int i=counts[QString("bat")].toInt()-1; i>=0; i--) + QStringList allBatteryDevices = QDir(QString("/sys/class/power_supply")) + .entryList(QDir::Dirs | QDir::NoDotAndDotDot, + QDir::Name); + for (int i=allBatteryDevices.filter(QRegExp(QString("BAT.*"))).count()-1; i>=0; i--) allKeys.append(QString("bat") + QString::number(i)); allKeys.append(QString("bat")); // player @@ -229,10 +265,10 @@ QStringList AWKeys::dictKeys() allKeys.append(QString("pstotal")); allKeys.append(QString("ps")); // package manager - for (int i=counts[QString("pkg")].toInt()-1; i>=0; i--) + for (int i=extUpgrade.count()-1; i>=0; i--) allKeys.append(QString("pkgcount") + QString::number(i)); // custom - for (int i=counts[QString("custom")].toInt()-1; i>=0; i--) + for (int i=extScripts.count()-1; i>=0; i--) allKeys.append(QString("custom") + QString::number(i)); // desktop allKeys.append(QString("desktop")); @@ -243,6 +279,74 @@ QStringList AWKeys::dictKeys() } +QStringList AWKeys::getDiskDevices() +{ + if (debug) qDebug() << PDEBUG; + + diskDevices.sort(); + + return diskDevices; +} + + +QStringList AWKeys::getFanDevices() +{ + if (debug) qDebug() << PDEBUG; + + fanDevices.sort(); + + return fanDevices; +} + + +QStringList AWKeys::getHddDevices() +{ + if (debug) qDebug() << PDEBUG; + + QStringList allDevices = QDir(QString("/dev")).entryList(QDir::System, QDir::Name); + QStringList devices = allDevices.filter(QRegExp(QString("^[hms]d[a-z]$"))); + for (int i=0; i rawInterfaceList = QNetworkInterface::allInterfaces(); + for (int i=0; i data, const QMap params) @@ -250,6 +354,10 @@ void AWKeys::setDataBySource(const QString sourceName, if (debug) qDebug() << PDEBUG; if (debug) qDebug() << PDEBUG << ":" << "Source" << sourceName; + // checking + if (!checkKeys(data)) return; + if (!ready) return; + // regular expressions QRegExp cpuRegExp = QRegExp(QString("cpu/cpu.*/TotalLoad")); QRegExp cpuclRegExp = QRegExp(QString("cpu/cpu.*/clock")); @@ -307,7 +415,7 @@ void AWKeys::setDataBySource(const QString sourceName, // read speed QString device = sourceName; device.remove(QString("/Rate/rblk")); - for (int i=0; isetData(QString("down"), data[QString("value")].toFloat()); } @@ -413,7 +521,7 @@ void AWKeys::setDataBySource(const QString sourceName, // upload speed QString device = sourceName; device.remove(QString("network/interfaces/")).remove(QString("/transmitter/data")); - if (device == networkDevice(params[QString("customNetdev")].toString())) { + if (device == networkDevice()) { values[QString("up")] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0); toolTip->setData(QString("up"), data[QString("value")].toFloat()); } @@ -453,13 +561,13 @@ void AWKeys::setDataBySource(const QString sourceName, } else if (sourceName.contains(tempRegExp)) { // temperature devices if (data[QString("units")].toString() == QString("rpm")) { - for (int i=0; i"); + message += i18n("Value: %1", valueByKey(tag)); + + return message; +} + + QString AWKeys::valueByKey(QString key) { if (debug) qDebug() << PDEBUG; @@ -638,7 +763,7 @@ void AWKeys::copyBar(const QString original) if (exit) break; } QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, - QString("plasma_applet_awesome-widget/desktops"), + QString("awesomewidgets/desktops"), QStandardPaths::LocateDirectory); bool ok; QString name = QInputDialog::getText(0, i18n("Enter file name"), @@ -685,7 +810,7 @@ void AWKeys::copyScript(const QString original) if (debug) qDebug() << PDEBUG; QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, - QString("plasma_dataengine_extsysmon/scripts"), + QString("awesomewidgets/scripts"), QStandardPaths::LocateDirectory); bool ok; QString name = QInputDialog::getText(0, i18n("Enter file name"), @@ -724,7 +849,7 @@ void AWKeys::copyUpgrade(const QString original) if (debug) qDebug() << PDEBUG; QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, - QString("plasma_dataengine_extsysmon/upgrade"), + QString("awesomewidgets/upgrade"), QStandardPaths::LocateDirectory); bool ok; QString name = QInputDialog::getText(0, i18n("Enter file name"), @@ -755,23 +880,20 @@ void AWKeys::copyUpgrade(const QString original) } -QString AWKeys::networkDevice(const QString custom) +QString AWKeys::networkDevice() { if (debug) qDebug() << PDEBUG; - if (debug) qDebug() << PDEBUG << ":" << "Custom device" << custom; QString device = QString("lo"); - if (custom.isEmpty()) { - QList rawInterfaceList = QNetworkInterface::allInterfaces(); - for (int i=0; i rawInterfaceList = QNetworkInterface::allInterfaces(); + for (int i=0; i AWKeys::getCounts(const QMap params) -{ - if (debug) qDebug() << PDEBUG; - - QMap awCounts; - awCounts[QString("cpu")] = numberCpus(); - awCounts[QString("custom")] = extScripts.count(); - awCounts[QString("disk")] = params[QString("disk")].toString().split(QString("@@")).count(); - awCounts[QString("fan")] = params[QString("fanDevice")].toString().split(QString("@@")).count(); - awCounts[QString("hddtemp")] = params[QString("hdd")].toString().split(QString("@@")).count(); - awCounts[QString("mount")] = params[QString("mount")].toString().split(QString("@@")).count(); - awCounts[QString("pkg")] = extUpgrade.count(); - awCounts[QString("temp")] = params[QString("tempDevice")].toString().split(QString("@@")).count(); - - return awCounts; -} - - QList AWKeys::getExtScripts() { if (debug) qDebug() << PDEBUG; @@ -867,13 +971,13 @@ QList AWKeys::getExtScripts() QList externalScripts; // create directory at $HOME QString localDir = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + - QString("/plasma_dataengine_extsysmon/scripts"); + QString("/awesomewidgets/scripts"); QDir localDirectory; if ((!localDirectory.exists(localDir)) && (localDirectory.mkpath(localDir))) if (debug) qDebug() << PDEBUG << ":" << "Created directory" << localDir; QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, - QString("plasma_dataengine_extsysmon/scripts"), + QString("awesomewidgets/scripts"), QStandardPaths::LocateDirectory); QStringList names; for (int i=0; i AWKeys::getExtUpgrade() QList externalUpgrade; // create directory at $HOME QString localDir = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + - QString("/plasma_dataengine_extsysmon/upgrade"); + QString("/awesomewidgets/upgrade"); QDir localDirectory; if ((!localDirectory.exists(localDir)) && (localDirectory.mkpath(localDir))) if (debug) qDebug() << PDEBUG << ":" << "Created directory" << localDir; QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, - QString("plasma_dataengine_extsysmon/upgrade"), + QString("awesomewidgets/upgrade"), QStandardPaths::LocateDirectory); QStringList names; for (int i=0; i AWKeys::getGraphicalItems() QList items; // create directory at $HOME QString localDir = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + - QString("/plasma_applet_awesome-widget/desktops"); + QString("/awesomewidgets/desktops"); QDir localDirectory; if (localDirectory.mkpath(localDir)) if (debug) qDebug() << PDEBUG << ":" << "Created directory" << localDir; QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, - QString("plasma_applet_awesome-widget/desktops"), + QString("awesomewidgets/desktops"), QStandardPaths::LocateDirectory); QStringList names; for (int i=0; i data); Q_INVOKABLE void initKeys(const QString pattern, - const QMap params, const QMap tooltipParams); Q_INVOKABLE bool isDebugEnabled(); - Q_INVOKABLE bool isReady(); Q_INVOKABLE QString parsePattern(const QString pattern); Q_INVOKABLE QPixmap toolTipImage(); // keys + Q_INVOKABLE void addDevice(const QString source); Q_INVOKABLE QStringList dictKeys(); + Q_INVOKABLE QStringList getDiskDevices(); + Q_INVOKABLE QStringList getFanDevices(); + Q_INVOKABLE QStringList getHddDevices(); + Q_INVOKABLE QStringList getMountDevices(); + Q_INVOKABLE QStringList getNetworkDevices(); + Q_INVOKABLE QStringList getTempDevices(); Q_INVOKABLE void setDataBySource(const QString sourceName, const QMap data, const QMap params); // values + Q_INVOKABLE QString graphicalValueByKey(); Q_INVOKABLE QString valueByKey(QString key); // configuration Q_INVOKABLE void editItem(const QString type); @@ -75,14 +82,13 @@ private slots: private: // methods - QString networkDevice(const QString custom = QString("")); + QString networkDevice(); int numberCpus(); float temperature(const float temp, const QString units = QString("Celsius")); // find methods QStringList findGraphicalItems(const QString pattern); QStringList findKeys(const QString pattern); // get methods - QMap getCounts(const QMap params); QList getExtScripts(); QList getExtUpgrade(); QList getGraphicalItems(); @@ -103,8 +109,8 @@ private: QList extScripts; QList extUpgrade; QStringList foundBars, foundKeys, keys; - QMap counts; QMap values; + QStringList diskDevices, fanDevices, mountDevices, tempDevices; }; diff --git a/sources/extsysmon/CMakeLists.txt b/sources/extsysmon/CMakeLists.txt index 84177ee..c35e054 100644 --- a/sources/extsysmon/CMakeLists.txt +++ b/sources/extsysmon/CMakeLists.txt @@ -69,5 +69,5 @@ else () endif () install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP} DESTINATION ${SERVICES_INSTALL_DIR}) install (FILES ${SUBPROJECT_CONF} DESTINATION ${CONFIG_INSTALL_DIR}) -install (DIRECTORY ${SUBPROJECT_SCRIPTS} DESTINATION ${DATA_INSTALL_DIR}/${PLUGIN_NAME}) -install (DIRECTORY ${SUBPROJECT_UPGRADE} DESTINATION ${DATA_INSTALL_DIR}/${PLUGIN_NAME}) +install (DIRECTORY ${SUBPROJECT_SCRIPTS} DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}) +install (DIRECTORY ${SUBPROJECT_UPGRADE} DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}) diff --git a/sources/extsysmon/extsysmon.cpp b/sources/extsysmon/extsysmon.cpp index 5b248fe..24da651 100644 --- a/sources/extsysmon/extsysmon.cpp +++ b/sources/extsysmon/extsysmon.cpp @@ -125,20 +125,20 @@ void ExtendedSysMon::initScripts() QString localDir; QStringList dirs; #ifdef BUILD_KDE4 - localDir = KStandardDirs::locateLocal("data", "plasma_dataengine_extsysmon/scripts"); + localDir = KStandardDirs::locateLocal("data", "awesomewidgets/scripts"); if (KStandardDirs::makeDir(localDir)) if (debug) qDebug() << PDEBUG << ":" << "Created directory" << localDir; - dirs = KGlobal::dirs()->findDirs("data", "plasma_dataengine_extsysmon/scripts"); + dirs = KGlobal::dirs()->findDirs("data", "awesomewidgets/scripts"); #else localDir = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + - QString("/plasma_dataengine_extsysmon/scripts"); + QString("/awesomewidgets/scripts"); QDir localDirectory; if ((!localDirectory.exists(localDir)) && (localDirectory.mkpath(localDir))) if (debug) qDebug() << PDEBUG << ":" << "Created directory" << localDir; dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, - QString("plasma_dataengine_extsysmon/scripts"), + QString("awesomewidgets/scripts"), QStandardPaths::LocateDirectory); #endif /* BUILD_KDE4 */ @@ -166,20 +166,20 @@ void ExtendedSysMon::initUpgrade() QString localDir; QStringList dirs; #ifdef BUILD_KDE4 - localDir = KStandardDirs::locateLocal("data", "plasma_dataengine_extsysmon/upgrade"); + localDir = KStandardDirs::locateLocal("data", "awesomewidgets/upgrade"); if (KStandardDirs::makeDir(localDir)) if (debug) qDebug() << PDEBUG << ":" << "Created directory" << localDir; - dirs = KGlobal::dirs()->findDirs("data", "plasma_dataengine_extsysmon/upgrade"); + dirs = KGlobal::dirs()->findDirs("data", "awesomewidgets/upgrade"); #else localDir = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + - QString("/plasma_dataengine_extsysmon/upgrade"); + QString("/awesomewidgets/upgrade"); QDir localDirectory; if ((!localDirectory.exists(localDir)) && (localDirectory.mkpath(localDir))) if (debug) qDebug() << PDEBUG << ":" << "Created directory" << localDir; dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, - QString("plasma_dataengine_extsysmon/upgrade"), + QString("awesomewidgets/upgrade"), QStandardPaths::LocateDirectory); #endif /* BUILD_KDE4 */