From 213595b3c12e572a6740ed359431dc99dc1a5f89 Mon Sep 17 00:00:00 2001 From: arcan1s Date: Tue, 20 Jan 2015 01:08:21 +0300 Subject: [PATCH] split plugin to classes rewrite extscripts fix building implement several methods --- sources/awesome-widget-kf5/plugin/.directory | 3 + .../awesome-widget-kf5/plugin/CMakeLists.txt | 6 +- .../awesome-widget-kf5/plugin/awactions.cpp | 210 ++++++++++++++ sources/awesome-widget-kf5/plugin/awactions.h | 56 ++++ .../plugin/awesomewidget.cpp | 19 +- .../plugin/{awadds.cpp => awkeys.cpp} | 256 +++++------------- .../plugin/{awadds.h => awkeys.h} | 40 +-- .../plugin/graphicalitem.cpp | 22 ++ .../awesome-widget-kf5/plugin/graphicalitem.h | 6 +- sources/ext-sysmon/extscript.cpp | 214 ++++++++------- sources/ext-sysmon/extscript.h | 66 +++-- sources/ext-sysmon/extsysmon.cpp | 3 + sources/version.h.in | 2 + 13 files changed, 569 insertions(+), 334 deletions(-) create mode 100644 sources/awesome-widget-kf5/plugin/.directory create mode 100644 sources/awesome-widget-kf5/plugin/awactions.cpp create mode 100644 sources/awesome-widget-kf5/plugin/awactions.h rename sources/awesome-widget-kf5/plugin/{awadds.cpp => awkeys.cpp} (64%) rename sources/awesome-widget-kf5/plugin/{awadds.h => awkeys.h} (66%) diff --git a/sources/awesome-widget-kf5/plugin/.directory b/sources/awesome-widget-kf5/plugin/.directory new file mode 100644 index 0000000..d629f4e --- /dev/null +++ b/sources/awesome-widget-kf5/plugin/.directory @@ -0,0 +1,3 @@ +[Dolphin] +Timestamp=2015,1,19,23,14,34 +Version=3 diff --git a/sources/awesome-widget-kf5/plugin/CMakeLists.txt b/sources/awesome-widget-kf5/plugin/CMakeLists.txt index c7ded69..4c33cad 100644 --- a/sources/awesome-widget-kf5/plugin/CMakeLists.txt +++ b/sources/awesome-widget-kf5/plugin/CMakeLists.txt @@ -17,13 +17,17 @@ include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/../ ${PROJECT_TRDPARTY_DIR} + ../../ext-sysmon + ${CMAKE_CURRENT_BINARY_DIR}/../../ext-sysmon ${Qt_INCLUDE} ${Kf5_INCLUDE}) file (GLOB SUBPROJECT_SOURCE *.cpp) file (GLOB SUBPROJECT_NOTIFY *.notifyrc) file (GLOB SUBPROJECT_UI *.ui) -file (GLOB_RECURSE SUBPROJECT_SOURCE *.cpp ${PROJECT_TRDPARTY_DIR}/task/*.cpp) +# task source is required by extscripts +file (GLOB_RECURSE SUBPROJECT_SOURCE *.cpp ${PROJECT_TRDPARTY_DIR}/task/*.cpp + ../../ext-sysmon/extscript.cpp) set (TASK_HEADER ${PROJECT_TRDPARTY_DIR}/task/task.h) qt5_wrap_cpp (TASK_MOC_SOURCE ${TASK_HEADER}) diff --git a/sources/awesome-widget-kf5/plugin/awactions.cpp b/sources/awesome-widget-kf5/plugin/awactions.cpp new file mode 100644 index 0000000..fc17d91 --- /dev/null +++ b/sources/awesome-widget-kf5/plugin/awactions.cpp @@ -0,0 +1,210 @@ +/*************************************************************************** + * 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/ * + ***************************************************************************/ + +#include "awactions.h" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "extscript.h" +#include "graphicalitem.h" +#include "version.h" + + +AWActions::AWActions(QObject *parent) + : QObject(parent) +{ + // debug + QProcessEnvironment environment = QProcessEnvironment::systemEnvironment(); + QString debugEnv = environment.value(QString("DEBUG"), QString("no")); + debug = (debugEnv == QString("yes")); +} + + +AWActions::~AWActions() +{ + if (debug) qDebug() << PDEBUG; +} + + +void AWActions::checkUpdates() +{ + if (debug) qDebug() << PDEBUG; + + QNetworkAccessManager *manager = new QNetworkAccessManager(this); + connect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(versionReplyRecieved(QNetworkReply *))); + + manager->get(QNetworkRequest(QUrl(VERSION_API))); +} + + +void AWActions::runCmd(const QString cmd) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Cmd" << cmd; + + QProcess command; + sendNotification(QString("Info"), i18n("Run %1", cmd)); + + command.startDetached(cmd); +} + + +void AWActions::sendNotification(const QString eventId, const QString message) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Event" << eventId; + if (debug) qDebug() << PDEBUG << ":" << "Message" << message; + + KNotification *notification = KNotification::event(eventId, QString("Awesome Widget ::: ") + eventId, message); + notification->setComponentName(QString("plasma-applet-org.kde.plasma.awesome-widget")); +} + + +void AWActions::showReadme() +{ + if (debug) qDebug() << PDEBUG; + + QDesktopServices::openUrl(QString(HOMEPAGE)); +} + + +QMap AWActions::readDataEngineConfiguration() +{ + if (debug) qDebug() << PDEBUG; + + 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; + + 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")); + 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(); + ireadAll(); + if (!answer.contains(QString("tag_name"))) return; + QString version = QString(VERSION); + if (debug) qDebug() << PDEBUG << answer; + for (int i=0; i +#include +#include + + +class QNetworkReply; + +class AWActions : public QObject +{ + Q_OBJECT + +public: + AWActions(QObject *parent = 0); + ~AWActions(); + + 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(); + // dataengine + Q_INVOKABLE QMap readDataEngineConfiguration(); + Q_INVOKABLE void writeDataEngineConfiguration(const QMap configuration); + +private slots: + void showUpdates(QString version); + void versionReplyRecieved(QNetworkReply *reply); + +private: + QMap updateDataEngineConfiguration(QMap rawConfig); + // variables + bool debug = false; +}; + + +#endif /* AWACTIONS_H */ diff --git a/sources/awesome-widget-kf5/plugin/awesomewidget.cpp b/sources/awesome-widget-kf5/plugin/awesomewidget.cpp index 9225c5d..8cbd292 100644 --- a/sources/awesome-widget-kf5/plugin/awesomewidget.cpp +++ b/sources/awesome-widget-kf5/plugin/awesomewidget.cpp @@ -19,15 +19,25 @@ #include -#include "awadds.h" +#include "awactions.h" +#include "awkeys.h" -static QObject *aw_singletontype_provider(QQmlEngine *engine, QJSEngine *scriptEngine) +static QObject *awactions_singletontype_provider(QQmlEngine *engine, QJSEngine *scriptEngine) { Q_UNUSED(engine); Q_UNUSED(scriptEngine); - return new AWAdds(); + return new AWActions(); +} + + +static QObject *awkeys_singletontype_provider(QQmlEngine *engine, QJSEngine *scriptEngine) +{ + Q_UNUSED(engine); + Q_UNUSED(scriptEngine); + + return new AWKeys(); } @@ -35,5 +45,6 @@ void AWPlugin::registerTypes(const char *uri) { Q_ASSERT(uri == QLatin1String("org.kde.plasma.private.awesome-widget")); - qmlRegisterSingletonType(uri, 1, 0, "AWAdds", aw_singletontype_provider); + qmlRegisterSingletonType(uri, 1, 0, "AWActions", awactions_singletontype_provider); + qmlRegisterSingletonType(uri, 1, 0, "AWKeys", awkeys_singletontype_provider); } diff --git a/sources/awesome-widget-kf5/plugin/awadds.cpp b/sources/awesome-widget-kf5/plugin/awkeys.cpp similarity index 64% rename from sources/awesome-widget-kf5/plugin/awadds.cpp rename to sources/awesome-widget-kf5/plugin/awkeys.cpp index 2b95498..d6009f7 100644 --- a/sources/awesome-widget-kf5/plugin/awadds.cpp +++ b/sources/awesome-widget-kf5/plugin/awkeys.cpp @@ -15,34 +15,23 @@ * along with awesome-widgets. If not, see http://www.gnu.org/licenses/ * ***************************************************************************/ -#include "awadds.h" - -#include -#include +#include "awkeys.h" #include -#include -#include -#include +#include #include -#include -#include -#include #include -#include #include -#include #include #include -//#include #include "extscript.h" #include "graphicalitem.h" #include "version.h" -AWAdds::AWAdds(QObject *parent) +AWKeys::AWKeys(QObject *parent) : QObject(parent) { // debug @@ -54,24 +43,27 @@ AWAdds::AWAdds(QObject *parent) } -AWAdds::~AWAdds() +AWKeys::~AWKeys() { if (debug) qDebug() << PDEBUG; } -void AWAdds::checkUpdates() +void AWKeys::initKeys(const QString pattern) { if (debug) qDebug() << PDEBUG; - QNetworkAccessManager *manager = new QNetworkAccessManager(this); - connect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(versionReplyRecieved(QNetworkReply *))); + // clear + foundBars.clear(); + foundKeys.clear(); - manager->get(QNetworkRequest(QUrl(VERSION_API))); + // init + foundBars = findGraphicalItems(pattern); + foundKeys = findKeys(pattern); } -void AWAdds::initValues() +void AWKeys::initValues() { if (debug) qDebug() << PDEBUG; @@ -87,7 +79,7 @@ void AWAdds::initValues() } -bool AWAdds::isDebugEnabled() +bool AWKeys::isDebugEnabled() { if (debug) qDebug() << PDEBUG; @@ -95,7 +87,7 @@ bool AWAdds::isDebugEnabled() } -QString AWAdds::networkDevice(const QString custom) +QString AWKeys::networkDevice(const QString custom) { if (debug) qDebug() << PDEBUG; if (debug) qDebug() << PDEBUG << ":" << "Custom device" << custom; @@ -117,7 +109,7 @@ QString AWAdds::networkDevice(const QString custom) } -int AWAdds::numberCpus() +int AWKeys::numberCpus() { if (debug) qDebug() << PDEBUG; @@ -125,26 +117,35 @@ int AWAdds::numberCpus() } -QString AWAdds::parsePattern(const QString pattern, const QMap dict, - const QMap values, - const QStringList foundKeys, const QStringList foundBars) +QString AWKeys::parsePattern(const QString pattern, const QMap values) { if (debug) qDebug() << PDEBUG; - if (debug) qDebug() << PDEBUG << ":" << "Dictionary" << dict; QString parsed = pattern; parsed.replace(QString("$$"), QString("$\\$\\")); for (int i=0; igetImage(values[foundBars[i]].toFloat())); + parsed.replace(QString("$") + foundBars[i], getItemByTag(foundBars[i])->image(values[foundBars[i]].toFloat())); parsed.replace(QString("$\\$\\"), QString("$$")); return parsed; } -float AWAdds::tempepature(const float temp, const QString units) +QStringList AWKeys::sourcesForDataEngine(const QString pattern, const QString dataEngine) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Pattern" << pattern; + if (debug) qDebug() << PDEBUG << ":" << "DataEngine" << dataEngine; + + QStringList sources; + + return sources; +} + + +float AWKeys::temperature(const float temp, const QString units) { if (debug) qDebug() << PDEBUG; @@ -168,7 +169,7 @@ float AWAdds::tempepature(const float temp, const QString units) } -QMap AWAdds::counts() +QMap AWKeys::counts() { if (debug) qDebug() << PDEBUG; @@ -194,7 +195,7 @@ QMap AWAdds::counts() } -QStringList AWAdds::dictKeys() +QStringList AWKeys::dictKeys() { if (debug) qDebug() << PDEBUG; @@ -298,7 +299,38 @@ QStringList AWAdds::dictKeys() } -QStringList AWAdds::timeKeys() +QStringList AWKeys::extScriptsInfo() +{ + if (debug) qDebug() << PDEBUG; + + QStringList info; + for (int i=0; ifileName()); + info.append(extScripts[i]->name()); + info.append(extScripts[i]->comment()); + info.append(extScripts[i]->executable()); + } + + return info; +} + + +QStringList AWKeys::graphicalItemsInfo() +{ + if (debug) qDebug() << PDEBUG; + + QStringList info; + for (int i=0; ifileName()); + info.append(graphicalItems[i]->name() + graphicalItems[i]->bar()); + info.append(graphicalItems[i]->comment()); + } + + return info; +} + + +QStringList AWKeys::timeKeys() { if (debug) qDebug() << PDEBUG; @@ -324,13 +356,13 @@ QStringList AWAdds::timeKeys() } -QStringList AWAdds::findGraphicalItems(const QString pattern) +QStringList AWKeys::findGraphicalItems(const QString pattern) { if (debug) qDebug() << PDEBUG; QStringList orderedKeys; for (int i=0; igetName() + graphicalItems[i]->getBar()); + orderedKeys.append(graphicalItems[i]->name() + graphicalItems[i]->bar()); orderedKeys.sort(); QStringList selectedKeys; @@ -344,7 +376,7 @@ QStringList AWAdds::findGraphicalItems(const QString pattern) } -QString AWAdds::findKeys(const QString pattern) +QStringList AWKeys::findKeys(const QString pattern) { QStringList selectedKeys; for (int i=0; isetComponentName(QString("plasma-applet-org.kde.plasma.awesome-widget")); -} - - -void AWAdds::showReadme() -{ - if (debug) qDebug() << PDEBUG; - - QDesktopServices::openUrl(QString(HOMEPAGE)); -} - - -QMap AWAdds::readDataEngineConfiguration() -{ - if (debug) qDebug() << PDEBUG; - - 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; - - 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")); - settings.endGroup(); - - return updateDataEngineConfiguration(rawConfig); -} - - -QMap AWAdds::updateDataEngineConfiguration(QMap rawConfig) -{ - if (debug) qDebug() << PDEBUG; - - for (int i=rawConfig[QString("PKGNULL")].toString().split(QString(","), QString::SkipEmptyParts).count(); - ireadAll(); - if (!answer.contains(QString("tag_name"))) return; - QString version = QString(VERSION); - if (debug) qDebug() << PDEBUG << answer; - for (int i=0; i AWAdds::getExtScripts() +QList AWKeys::getExtScripts() { if (debug) qDebug() << PDEBUG; @@ -532,7 +420,7 @@ QList AWAdds::getExtScripts() } -QList AWAdds::getGraphicalItems() +QList AWKeys::getGraphicalItems() { if (debug) qDebug() << PDEBUG; @@ -563,13 +451,13 @@ QList AWAdds::getGraphicalItems() } -GraphicalItem *AWAdds::getItemByTag(const QString tag) +GraphicalItem *AWKeys::getItemByTag(const QString tag) { if (debug) qDebug() << PDEBUG; GraphicalItem *item = nullptr; for (int i=0; i< graphicalItems.count(); i++) { - if ((graphicalItems[i]->getName() + graphicalItems[i]->getBar()) != tag) continue; + if ((graphicalItems[i]->name() + graphicalItems[i]->bar()) != tag) continue; item = graphicalItems[i]; break; } diff --git a/sources/awesome-widget-kf5/plugin/awadds.h b/sources/awesome-widget-kf5/plugin/awkeys.h similarity index 66% rename from sources/awesome-widget-kf5/plugin/awadds.h rename to sources/awesome-widget-kf5/plugin/awkeys.h index 4f3adea..55a2e50 100644 --- a/sources/awesome-widget-kf5/plugin/awadds.h +++ b/sources/awesome-widget-kf5/plugin/awkeys.h @@ -16,8 +16,8 @@ ***************************************************************************/ -#ifndef AWADDS_H -#define AWADDS_H +#ifndef AWKEYS_H +#define AWKEYS_H #include #include @@ -27,55 +27,43 @@ class ExtScript; class GraphicalItem; -class QNetworkReply; -class AWAdds : public QObject +class AWKeys : public QObject { Q_OBJECT public: - AWAdds(QObject *parent = 0); - ~AWAdds(); + AWKeys(QObject *parent = 0); + ~AWKeys(); - Q_INVOKABLE void checkUpdates(); + Q_INVOKABLE void initKeys(const QString pattern); Q_INVOKABLE void initValues(); Q_INVOKABLE bool isDebugEnabled(); Q_INVOKABLE QString networkDevice(const QString custom = QString("")); Q_INVOKABLE int numberCpus(); - Q_INVOKABLE QString parsePattern(const QString pattern, const QMap dict, - const QMap values, - const QStringList foundKeys, const QStringList foundBars); - Q_INVOKABLE float tempepature(const float temp, const QString units = QString("Celsius")); + Q_INVOKABLE QString parsePattern(const QString pattern, const QMap values); + Q_INVOKABLE QStringList sourcesForDataEngine(const QString pattern, + const QString dataEngine = QString("systemmonitor")); + Q_INVOKABLE float temperature(const float temp, const QString units = QString("Celsius")); // keys Q_INVOKABLE QMap counts(); Q_INVOKABLE QStringList dictKeys(); -// Q_INVOKABLE QStringList graphicalItemsNames(); + Q_INVOKABLE QStringList extScriptsInfo(); + Q_INVOKABLE QStringList graphicalItemsInfo(); Q_INVOKABLE QStringList timeKeys(); Q_INVOKABLE QStringList findGraphicalItems(const QString pattern); Q_INVOKABLE QStringList findKeys(const QString pattern); - // actions - 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(); - // dataengine - Q_INVOKABLE QMap readDataEngineConfiguration(); - Q_INVOKABLE void writeDataEngineConfiguration(const QMap configuration); - -private slots: - void showUpdates(QString version); - void versionReplyRecieved(QNetworkReply *reply); private: QList getExtScripts(); QList getGraphicalItems(); GraphicalItem *getItemByTag(const QString tag); - QMap updateDataEngineConfiguration(QMap rawConfig); // variables bool debug = false; QList graphicalItems; QList extScripts; - QStringList keys; + QStringList foundBars, foundKeys, keys; }; -#endif /* AWADDS_H */ +#endif /* AWKEYS_H */ diff --git a/sources/awesome-widget-kf5/plugin/graphicalitem.cpp b/sources/awesome-widget-kf5/plugin/graphicalitem.cpp index 1a129de..6dd8159 100644 --- a/sources/awesome-widget-kf5/plugin/graphicalitem.cpp +++ b/sources/awesome-widget-kf5/plugin/graphicalitem.cpp @@ -31,6 +31,8 @@ #include +#include "version.h" + GraphicalItem::GraphicalItem(QWidget *parent, const QString desktopName, const QStringList directories, const bool debugCmd) : QDialog(parent), @@ -143,6 +145,14 @@ QString GraphicalItem::fileName() } +int GraphicalItem::apiVersion() +{ + if (debug) qDebug() << PDEBUG; + + return m_apiVersion; +} + + QString GraphicalItem::name() { if (debug) qDebug() << PDEBUG; @@ -254,6 +264,15 @@ int GraphicalItem::width() } +void GraphicalItem::setApiVersion(const int _apiVersion) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Version" << _apiVersion; + + m_apiVersion = _apiVersion; +} + + void GraphicalItem::setName(const QString _name) { if (debug) qDebug() << PDEBUG; @@ -382,6 +401,7 @@ void GraphicalItem::readConfiguration() settings.beginGroup(QString("Desktop Entry")); setName(settings.value(QString("Name"), m_name).toString()); setComment(settings.value(QString("Comment"), m_comment).toString()); + setApiVersion(settings.value(QString("X-AW-ApiVersion"), AWGIAPI).toInt()); setBar(settings.value(QString("X-AW-Value"), m_bar).toString()); setActiveColor(settings.value(QString("X-AW-ActiveColor"), m_activeColor).toString()); setInactiveColor(settings.value(QString("X-AW-InactiveColor"), m_inactiveColor).toString()); @@ -415,6 +435,7 @@ void GraphicalItem::showConfiguration(const QStringList tags) setName(ui->label_nameValue->text()); setComment(ui->lineEdit_comment->text()); + setApiVersion(AWGIAPI); setBar(ui->comboBox_value->currentText()); setActiveColor(ui->pushButton_activeColor->text().remove(QChar('&'))); setInactiveColor(ui->pushButton_inactiveColor->text().remove(QChar('&'))); @@ -448,6 +469,7 @@ void GraphicalItem::writeConfiguration() settings.setValue(QString("Encoding"), QString("UTF-8")); settings.setValue(QString("Name"), m_name); settings.setValue(QString("Comment"), m_comment); + settings.setValue(QString("X-AW-ApiVersion"), m_apiVersion); settings.setValue(QString("X-AW-Value"), m_bar); settings.setValue(QString("X-AW-ActiveColor"), m_activeColor); settings.setValue(QString("X-AW-InactiveColor"), m_inactiveColor); diff --git a/sources/awesome-widget-kf5/plugin/graphicalitem.h b/sources/awesome-widget-kf5/plugin/graphicalitem.h index 48c5f6d..b14cc92 100644 --- a/sources/awesome-widget-kf5/plugin/graphicalitem.h +++ b/sources/awesome-widget-kf5/plugin/graphicalitem.h @@ -29,8 +29,9 @@ class GraphicalItem; class GraphicalItem : public QDialog { Q_OBJECT + Q_PROPERTY(int apiVersion READ apiVersion WRITE setApiVersion) Q_PROPERTY(QString name READ name WRITE setName) - Q_PROPERTY(QString comment READ comment WRITE setName) + Q_PROPERTY(QString comment READ comment WRITE setComment) Q_PROPERTY(QString bar READ bar WRITE setBar) Q_PROPERTY(QString activeColor READ activeColor WRITE setActiveColor) Q_PROPERTY(QString inactiveColor READ inactiveColor WRITE setInactiveColor) @@ -56,6 +57,7 @@ public: QString fileName(); QString image(const float value); // get methods + int apiVersion(); QString name(); QString comment(); QString bar(); @@ -68,6 +70,7 @@ public: int height(); int width(); // set methods + void setApiVersion(const int _apiVersion = 0); void setName(const QString _name = QString("none")); void setComment(const QString _comment = QString("empty")); void setBar(const QString _bar = QString("cpu")); @@ -96,6 +99,7 @@ private: bool debug; Ui::GraphicalItem *ui; // properties + int m_apiVersion = 0; QString m_name = QString("none"); QString m_comment = QString("empty"); QString m_bar = QString("cpu"); diff --git a/sources/ext-sysmon/extscript.cpp b/sources/ext-sysmon/extscript.cpp index 8694b0c..10ee162 100644 --- a/sources/ext-sysmon/extscript.cpp +++ b/sources/ext-sysmon/extscript.cpp @@ -26,15 +26,17 @@ #include #include +#include "version.h" + ExtScript::ExtScript(QWidget *parent, const QString scriptName, const QStringList directories, const bool debugCmd) : QDialog(parent), - fileName(scriptName), - dirs(directories), + m_fileName(scriptName), + m_dirs(directories), debug(debugCmd), ui(new Ui::ExtScript) { - _name = fileName; + m_name = m_fileName; readConfiguration(); ui->setupUi(this); } @@ -48,68 +50,76 @@ ExtScript::~ExtScript() } -QString ExtScript::getComment() +int ExtScript::apiVersion() { if (debug) qDebug() << PDEBUG; - return _comment; + return m_apiVersion; } -QString ExtScript::getExec() +QString ExtScript::comment() { if (debug) qDebug() << PDEBUG; - return _exec; + return m_comment; } -QString ExtScript::getFileName() +QString ExtScript::executable() { if (debug) qDebug() << PDEBUG; - return fileName; + return m_executable; } -int ExtScript::getInterval() +QString ExtScript::fileName() { if (debug) qDebug() << PDEBUG; - return _interval; + return m_fileName; } -QString ExtScript::getName() +int ExtScript::interval() { if (debug) qDebug() << PDEBUG; - return _name; + return m_interval; } -QString ExtScript::getPrefix() +QString ExtScript::name() { if (debug) qDebug() << PDEBUG; - return _prefix; + return m_name; } -ExtScript::Redirect ExtScript::getRedirect() +QString ExtScript::prefix() { if (debug) qDebug() << PDEBUG; - return _redirect; + return m_prefix; } -QString ExtScript::getStrRedirect() +ExtScript::Redirect ExtScript::redirect() +{ + if (debug) qDebug() << PDEBUG; + + return m_redirect; +} + + +QString ExtScript::strRedirect() { if (debug) qDebug() << PDEBUG; QString value; - switch (_redirect) { + switch (m_redirect) { case stdout2stderr: value = QString("stdout2stderr"); break; @@ -129,7 +139,7 @@ bool ExtScript::hasOutput() { if (debug) qDebug() << PDEBUG; - return _output; + return m_output; } @@ -137,7 +147,16 @@ bool ExtScript::isActive() { if (debug) qDebug() << PDEBUG; - return _active; + return m_active; +} + + +void ExtScript::setApiVersion(const int _apiVersion) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Version" << _apiVersion; + + m_apiVersion = _apiVersion; } @@ -146,25 +165,25 @@ void ExtScript::setActive(const bool state) if (debug) qDebug() << PDEBUG; if (debug) qDebug() << PDEBUG << ":" << "State" << state; - _active = state; + m_active = state; } -void ExtScript::setComment(const QString comment) +void ExtScript::setComment(const QString _comment) { if (debug) qDebug() << PDEBUG; - if (debug) qDebug() << PDEBUG << ":" << "Comment" << comment; + if (debug) qDebug() << PDEBUG << ":" << "Comment" << _comment; - _comment = comment; + m_comment = _comment; } -void ExtScript::setExec(const QString exec) +void ExtScript::setExecutable(const QString _executable) { if (debug) qDebug() << PDEBUG; - if (debug) qDebug() << PDEBUG << ":" << "Executable" << exec; + if (debug) qDebug() << PDEBUG << ":" << "Executable" << _executable; - _exec = exec; + m_executable = _executable; } @@ -173,49 +192,58 @@ void ExtScript::setHasOutput(const bool state) if (debug) qDebug() << PDEBUG; if (debug) qDebug() << PDEBUG << ":" << "State" << state; - _output = state; + m_output = state; } -void ExtScript::setInterval(const int interval) +void ExtScript::setInterval(const int _interval) { if (debug) qDebug() << PDEBUG; - if (debug) qDebug() << PDEBUG << ":" << "Interval" << interval; - if (interval <= 0) return; + if (debug) qDebug() << PDEBUG << ":" << "Interval" << _interval; + if (_interval <= 0) return; - _interval = interval; + m_interval = _interval; } -void ExtScript::setName(const QString name) +void ExtScript::setName(const QString _name) { if (debug) qDebug() << PDEBUG; - if (debug) qDebug() << PDEBUG << ":" << "Name" << name; + if (debug) qDebug() << PDEBUG << ":" << "Name" << _name; - _name = name; + m_name = _name; } -void ExtScript::setPrefix(const QString prefix) +void ExtScript::setPrefix(const QString _prefix) { if (debug) qDebug() << PDEBUG; - if (debug) qDebug() << PDEBUG << ":" << "Prefix" << prefix; + if (debug) qDebug() << PDEBUG << ":" << "Prefix" << _prefix; - _prefix = prefix; + m_prefix = _prefix; } -void ExtScript::setRedirect(const QString redirect) +void ExtScript::setRedirect(const Redirect _redirect) { if (debug) qDebug() << PDEBUG; - if (debug) qDebug() << PDEBUG << ":" << "Redirect" << redirect; + if (debug) qDebug() << PDEBUG << ":" << "Redirect" << _redirect; - if (redirect == QString("stdout2sdterr")) - _redirect = stdout2stderr; - else if (redirect == QString("stderr2sdtout")) - _redirect = stderr2stdout; + m_redirect = _redirect; +} + + +void ExtScript::setStrRedirect(const QString _redirect) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Redirect" << _redirect; + + if (_redirect == QString("stdout2sdterr")) + m_redirect = stdout2stderr; + else if (_redirect == QString("stderr2sdtout")) + m_redirect = stderr2stdout; else - _redirect = nothing; + m_redirect = nothing; } @@ -223,23 +251,25 @@ void ExtScript::readConfiguration() { if (debug) qDebug() << PDEBUG; - for (int i=dirs.count()-1; i>=0; i--) { - if (!QDir(dirs[i]).entryList(QDir::Files).contains(fileName)) continue; - QSettings settings(dirs[i] + QDir::separator() + fileName, QSettings::IniFormat); + for (int i=m_dirs.count()-1; i>=0; i--) { + if (!QDir(m_dirs[i]).entryList(QDir::Files).contains(m_fileName)) continue; + QSettings settings(m_dirs[i] + QDir::separator() + m_fileName, QSettings::IniFormat); + settings.beginGroup(QString("Desktop Entry")); - setName(settings.value(QString("Name"), _name).toString()); - setComment(settings.value(QString("Comment"), _comment).toString()); - setExec(settings.value(QString("Exec"), _exec).toString()); - setPrefix(settings.value(QString("X-AW-Prefix"), _prefix).toString()); - setActive(settings.value(QString("X-AW-Active"), QVariant(_active).toString()).toString() == QString("true")); - setHasOutput(settings.value(QString("X-AW-Output"), QVariant(_output).toString()).toString() == QString("true")); - setRedirect(settings.value(QString("X-AW-Redirect"), getStrRedirect()).toString()); - setInterval(settings.value(QString("X-AW-Interval"), _interval).toInt()); + setName(settings.value(QString("Name"), m_name).toString()); + setComment(settings.value(QString("Comment"), m_comment).toString()); + setApiVersion(settings.value(QString("X-AW-ApiVersion"), AWESAPI).toInt()); + setExecutable(settings.value(QString("Exec"), m_executable).toString()); + setPrefix(settings.value(QString("X-AW-Prefix"), m_prefix).toString()); + setActive(settings.value(QString("X-AW-Active"), QVariant(m_active)).toString() == QString("true")); + setHasOutput(settings.value(QString("X-AW-Output"), QVariant(m_output)).toString() == QString("true")); + setStrRedirect(settings.value(QString("X-AW-Redirect"), strRedirect()).toString()); + setInterval(settings.value(QString("X-AW-Interval"), m_interval).toInt()); settings.endGroup(); } - if (!_output) - setRedirect(QString("stdout2stderr")); + if (!m_output) + setRedirect(stdout2stderr); } @@ -248,17 +278,17 @@ ExtScript::ScriptData ExtScript::run(const int time) if (debug) qDebug() << PDEBUG; ScriptData response; - response.active = _active; - response.name = _name; + response.active = m_active; + response.name = m_name; response.refresh = false; - if (!_active) return response; - if (time != _interval) return response; + if (!m_active) return response; + if (time != m_interval) return response; response.refresh = true; QStringList cmdList; - if (!_prefix.isEmpty()) - cmdList.append(_prefix); - cmdList.append(_exec); + if (!m_prefix.isEmpty()) + cmdList.append(m_prefix); + cmdList.append(m_executable); if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmdList.join(QChar(' ')); TaskResult process = runTask(cmdList.join(QChar(' '))); if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode; @@ -266,7 +296,7 @@ ExtScript::ScriptData ExtScript::run(const int time) QString info = QString::number(process.exitCode) + QString(":") + QTextCodec::codecForMib(106)->toUnicode(process.error).trimmed(); QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed(); - switch(_redirect) { + switch (m_redirect) { case stdout2stderr: if (debug) qDebug() << PDEBUG << ":" << "Debug" << info; if (debug) qDebug() << PDEBUG << ":" << "Output" << qoutput; @@ -288,30 +318,31 @@ void ExtScript::showConfiguration() { if (debug) qDebug() << PDEBUG; - ui->lineEdit_name->setText(_name); - ui->lineEdit_comment->setText(_comment); - ui->lineEdit_command->setText(_exec); - ui->lineEdit_prefix->setText(_prefix); - if (_active) + ui->lineEdit_name->setText(m_name); + ui->lineEdit_comment->setText(m_comment); + ui->lineEdit_command->setText(m_executable); + ui->lineEdit_prefix->setText(m_prefix); + if (m_active) ui->checkBox_active->setCheckState(Qt::Checked); else ui->checkBox_active->setCheckState(Qt::Unchecked); - if (_output) + if (m_output) ui->checkBox_output->setCheckState(Qt::Checked); else ui->checkBox_output->setCheckState(Qt::Unchecked); - ui->comboBox_redirect->setCurrentIndex((int)_redirect); - ui->spinBox_interval->setValue(_interval); + ui->comboBox_redirect->setCurrentIndex(static_cast(m_redirect)); + ui->spinBox_interval->setValue(m_interval); int ret = exec(); if (ret != 1) return; setName(ui->lineEdit_name->text()); setComment(ui->lineEdit_comment->text()); - setExec(ui->lineEdit_command->text()); + setApiVersion(AWESAPI); + setExecutable(ui->lineEdit_command->text()); setPrefix(ui->lineEdit_prefix->text()); setActive(ui->checkBox_active->checkState() == Qt::Checked); setHasOutput(ui->checkBox_output->checkState() == Qt::Checked); - setRedirect(ui->comboBox_redirect->currentText()); + setStrRedirect(ui->comboBox_redirect->currentText()); setInterval(ui->spinBox_interval->value()); writeConfiguration(); @@ -322,9 +353,9 @@ void ExtScript::tryDelete() { if (debug) qDebug() << PDEBUG; - for (int i=0; i ps = getPsStats(); for (int i=0; i