diff --git a/sources/awesome-widget-kf5/package/contents/ui/main.qml b/sources/awesome-widget-kf5/package/contents/ui/main.qml
index 648c388..da09468 100644
--- a/sources/awesome-widget-kf5/package/contents/ui/main.qml
+++ b/sources/awesome-widget-kf5/package/contents/ui/main.qml
@@ -17,6 +17,7 @@
import QtQuick 2.4
import QtQuick.Controls 1.3 as QtControls
+import QtQuick.Layouts 1.1
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 2.0 as PlasmaComponents
@@ -39,7 +40,7 @@ Item {
property variant tooltipSettings: {
"tooltipNumber": plasmoid.configuration.tooltipNumber,
"useTooltipBackground": plasmoid.configuration.useTooltipBackground,
- "tooltipBackgroung": plasmoid.configuration.tooltipBackgroung,
+ "tooltipBackground": plasmoid.configuration.tooltipBackground,
"cpuTooltip": plasmoid.configuration.cpuTooltip,
"cpuclTooltip": plasmoid.configuration.cpuclTooltip,
"memTooltip": plasmoid.configuration.memTooltip,
@@ -61,6 +62,14 @@ Item {
// init
+ Plasmoid.preferredRepresentation: Plasmoid.fullRepresentation
+ Plasmoid.compactRepresentation: Plasmoid.fullRepresentation
+
+ Layout.fillWidth: plasmoid.formFactor != PlasmaCore.Planar
+ Layout.fillHeight: plasmoid.formFactor != PlasmaCore.Planar
+ Layout.minimumHeight: text.height
+ Layout.minimumWidth: text.width
+
Plasmoid.icon: "utilities-system-monitor"
Plasmoid.backgroundHints: plasmoid.configuration.background ? "DefaultBackground" : "NoBackground"
Plasmoid.associatedApplication: "ksysguard"
@@ -68,18 +77,19 @@ Item {
PlasmaCore.DataSource {
id: systemmonitorDE
engine: "systemmonitor"
+ connectedSources: systemmonitorDE.sources
interval: plasmoid.configuration.interval
onNewData: {
if (debug) console.log("[main::onNewData] : Update source " + sourceName)
- AWKeys.setDataBySource(sourceName, data, settings)
+ if (AWKeys.setDataBySource(sourceName, data, settings)) disconnectSource(sourceName)
}
onSourceAdded: {
if (debug) console.log("[main::onSourceAdded] : Source " + source)
- if (AWKeys.addDevice(source)) systemmonitorDE.connectSource(source)
+ AWKeys.addDevice(source)
}
}
@@ -110,27 +120,35 @@ Item {
}
}
+
// ui
Grid {
- id: mainGrid
columns: 1
Text {
id: text
+ height: contentHeight
+ width: contentWidth
+ textFormat: Text.RichText
+ wrapMode: Text.NoWrap
+
+ horizontalAlignment: general.align[plasmoid.configuration.textAlign]
+ verticalAlignment: Text.AlignVCenter
+
color: plasmoid.configuration.fontColor
font.family: plasmoid.configuration.fontFamily
font.italic: plasmoid.configuration.fontStyle == "italic" ? true : false
font.pointSize: plasmoid.configuration.fontSize
font.weight: general.fontWeight[plasmoid.configuration.fontWeight]
- horizontalAlignment: general.align[plasmoid.configuration.textAlign]
- textFormat: Text.RichText
+
text: plasmoid.configuration.text
PlasmaCore.ToolTipArea {
+ id: rootTooltip
+ mainItem: Text {
id: tooltip
- height: 100
- width: 500
- mainText: "Awesome Widget"
+ textFormat: Text.RichText
+ }
}
}
}
@@ -138,25 +156,32 @@ Item {
Component.onCompleted: {
if (debug) console.log("[main::onCompleted]")
- // init submodule
- 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("checkUpdates", i18n("Check updates"), "system-software-update")
+// plasmoid.setAction("report", i18n("Mail to developers"), "email")
+ // init submodule
+ Plasmoid.userConfiguringChanged(true)
}
onNeedUpdate: {
if (debug) console.log("[main::onNeedUpdate]")
text.text = AWKeys.parsePattern(plasmoid.configuration.text)
- // FIXME change to pixmap/image/etc
- tooltip.image = AWKeys.toolTipImage()
+ tooltip.text = AWKeys.toolTipImage()
// update geometry
text.update()
- height = text.contentHeight
- width = text.contentWidth
+ height = text.height
+ width = text.width
update()
+ rootTooltip.height = AWKeys.toolTipSize().height
+ rootTooltip.width = AWKeys.toolTipSize().width
+ }
+
+ Plasmoid.onUserConfiguringChanged: {
+ // init submodule
+ AWKeys.initKeys(plasmoid.configuration.text, tooltipSettings)
}
function action_checkUpdates() {
@@ -171,6 +196,12 @@ Item {
AWActions.showReadme()
}
+ function action_report() {
+ if (debug) console.log("[main::action_report]")
+
+ AWActions.sendEmail()
+ }
+
function action_requestKey() {
if (debug) console.log("[main::action_requestKey]")
diff --git a/sources/awesome-widget-kf5/package/contents/ui/widget.qml b/sources/awesome-widget-kf5/package/contents/ui/widget.qml
index f174ec0..f232e56 100644
--- a/sources/awesome-widget-kf5/package/contents/ui/widget.qml
+++ b/sources/awesome-widget-kf5/package/contents/ui/widget.qml
@@ -64,7 +64,7 @@ Item {
Column {
id: pageColumn
- width: units.gridUnit * 50
+ width: units.gridUnit * 25
QtControls.Label {
width: parent.width
horizontalAlignment: Text.AlignHCenter
@@ -78,6 +78,7 @@ Item {
width: parent.width
QtControls.Button {
text: i18n("Font")
+ iconName: "font"
onClicked: {
if (debug) console.log("[widget::onClicked] : Font button")
@@ -207,12 +208,17 @@ Item {
textPattern.insert(pos, "
" + selected + "
setComponentName(QString("plasma-applet-org.kde.plasma.awesome-widget"));
}
@@ -199,6 +194,13 @@ void AWActions::writeDataEngineConfiguration(const QMap confi
}
+void AWActions::sendNotification(const QString eventId, const QString message)
+{
+ KNotification *notification = KNotification::event(eventId, QString("Awesome Widget ::: ") + eventId, message);
+ notification->setComponentName(QString("plasma-applet-org.kde.plasma.awesome-widget"));
+}
+
+
void AWActions::showUpdates(QString version)
{
if (debug) qDebug() << PDEBUG;
diff --git a/sources/awesome-widget-kf5/plugin/awactions.h b/sources/awesome-widget-kf5/plugin/awactions.h
index e577af5..0008620 100644
--- a/sources/awesome-widget-kf5/plugin/awactions.h
+++ b/sources/awesome-widget-kf5/plugin/awactions.h
@@ -36,7 +36,7 @@ public:
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 sendEmail();
Q_INVOKABLE void showReadme();
// configuration slots
Q_INVOKABLE QString getAboutText(const QString type = "header");
@@ -45,6 +45,9 @@ public:
Q_INVOKABLE QMap readDataEngineConfiguration();
Q_INVOKABLE void writeDataEngineConfiguration(const QMap configuration);
+public slots:
+ Q_INVOKABLE static void sendNotification(const QString eventId, const QString message);
+
private slots:
void showUpdates(QString version);
void versionReplyRecieved(QNetworkReply *reply);
diff --git a/sources/awesome-widget-kf5/plugin/awkeys.cpp b/sources/awesome-widget-kf5/plugin/awkeys.cpp
index cf45df8..00cd702 100644
--- a/sources/awesome-widget-kf5/plugin/awkeys.cpp
+++ b/sources/awesome-widget-kf5/plugin/awkeys.cpp
@@ -19,7 +19,7 @@
#include
-// #include
+#include
#include
#include
#include
@@ -80,15 +80,6 @@ AWKeys::~AWKeys()
}
-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 tooltipParams)
{
@@ -101,7 +92,7 @@ void AWKeys::initKeys(const QString pattern,
keys.clear();
foundBars.clear();
foundKeys.clear();
- toolTip = nullptr;
+ if (toolTip != nullptr) delete toolTip;
// init
extScripts = getExtScripts();
@@ -130,6 +121,7 @@ QString AWKeys::parsePattern(const QString pattern)
if (!ready) return pattern;
QString parsed = pattern;
+ parsed.replace(QString(" "), QString(" "));
parsed.replace(QString("$$"), QString("$\\$\\"));
for (int i=0; iimage();
-// QByteArray byteArray;
-// QBuffer buffer(&byteArray);
-// tooltip.save(&buffer, "PNG");
-// return QString("
").arg(QString(byteArray.toBase64()));
+ QPixmap tooltip = toolTip->image();
+ QByteArray byteArray;
+ QBuffer buffer(&byteArray);
+ tooltip.save(&buffer, "PNG");
+
+ return QString("
").arg(QString(byteArray.toBase64()));
+}
+
+
+QSize AWKeys::toolTipSize()
+{
+ if (debug) qDebug() << PDEBUG;
+
+ return toolTip->getSize();
}
@@ -672,6 +673,9 @@ bool AWKeys::setDataBySource(const QString sourceName,
values[QString("cuptime")].replace(QString("$h"), QString("%1").arg(hours));
values[QString("cuptime")].replace(QString("$mm"), QString("%1").arg(minutes, 2, 10, QChar('0')));
values[QString("cuptime")].replace(QString("$m"), QString("%1").arg(minutes));
+ } else {
+ if (debug) qDebug() << PDEBUG << ":" << "Source not found";
+ return true;
}
return false;
@@ -954,6 +958,15 @@ void AWKeys::copyUpgrade(const QString original)
}
+bool AWKeys::checkKeys(const QMap data)
+{
+ if (debug) qDebug() << PDEBUG;
+ if (debug) qDebug() << PDEBUG << ":" << "Data" << data;
+
+ return (data.count() != 0);
+}
+
+
QString AWKeys::networkDevice()
{
if (debug) qDebug() << PDEBUG;
diff --git a/sources/awesome-widget-kf5/plugin/awkeys.h b/sources/awesome-widget-kf5/plugin/awkeys.h
index 6dea441..58639c0 100644
--- a/sources/awesome-widget-kf5/plugin/awkeys.h
+++ b/sources/awesome-widget-kf5/plugin/awkeys.h
@@ -25,7 +25,6 @@
#include
#include
#include
-#include
#include
#include
@@ -50,12 +49,12 @@ public:
AWKeys(QObject *parent = 0);
~AWKeys();
- Q_INVOKABLE bool checkKeys(const QMap data);
Q_INVOKABLE void initKeys(const QString pattern,
const QMap tooltipParams);
Q_INVOKABLE bool isDebugEnabled();
Q_INVOKABLE QString parsePattern(const QString pattern);
- Q_INVOKABLE QPixmap toolTipImage();
+ Q_INVOKABLE QString toolTipImage();
+ Q_INVOKABLE QSize toolTipSize();
// keys
Q_INVOKABLE bool addDevice(const QString source);
Q_INVOKABLE QStringList dictKeys();
@@ -82,6 +81,7 @@ private slots:
private:
// methods
+ bool checkKeys(const QMap data);
QString networkDevice();
int numberCpus();
float temperature(const float temp, const QString units = QString("Celsius"));
diff --git a/sources/awesome-widget-kf5/plugin/awtooltip.cpp b/sources/awesome-widget-kf5/plugin/awtooltip.cpp
index e9f86ec..b6cad96 100644
--- a/sources/awesome-widget-kf5/plugin/awtooltip.cpp
+++ b/sources/awesome-widget-kf5/plugin/awtooltip.cpp
@@ -56,6 +56,8 @@ AWToolTip::AWToolTip(QObject *parent,
boundaries[QString("downTooltip")] = 1.0;
boundaries[QString("upTooltip")] = 1.0;
boundaries[QString("batTooltip")] = 100.0;
+ size.setHeight(105.0);
+ size.setWidth(100.0 * counts);
if (configuration[QString("cpuTooltip")].toBool()) requiredKeys.append(QString("cpuTooltip"));
if (configuration[QString("cpuclTooltip")].toBool()) requiredKeys.append(QString("cpuclTooltip"));
@@ -76,17 +78,25 @@ AWToolTip::~AWToolTip()
}
+QSize AWToolTip::getSize()
+{
+ if (debug) qDebug() << PDEBUG;
+
+ return size;
+}
+
+
QPixmap AWToolTip::image()
{
if (debug) qDebug() << PDEBUG;
- toolTipView->resize(100.0 * counts, 105.0);
+ toolTipView->resize(size);
// create image
toolTipScene->clear();
QPen pen = QPen();
// background
if (configuration[QString("useTooltipBackground")].toBool())
- toolTipScene->setBackgroundBrush(QColor(configuration[QString("tooltipBackground")].toString()));
+ toolTipScene->setBackgroundBrush(QBrush(QColor(configuration[QString("tooltipBackground")].toString())));
else
toolTipScene->setBackgroundBrush(QBrush(Qt::NoBrush));
bool down = false;
diff --git a/sources/awesome-widget-kf5/plugin/awtooltip.h b/sources/awesome-widget-kf5/plugin/awtooltip.h
index b633638..859fb64 100644
--- a/sources/awesome-widget-kf5/plugin/awtooltip.h
+++ b/sources/awesome-widget-kf5/plugin/awtooltip.h
@@ -36,6 +36,7 @@ public:
QMap settings = QMap());
~AWToolTip();
+ QSize getSize();
QPixmap image();
void setData(const QString source, float value,
const bool ac = true);
@@ -51,6 +52,7 @@ private:
QMap boundaries;
QMap> data;
QStringList requiredKeys;
+ QSize size;
};
diff --git a/sources/extsysmon/extsysmon.cpp b/sources/extsysmon/extsysmon.cpp
index 2278f80..cffe788 100644
--- a/sources/extsysmon/extsysmon.cpp
+++ b/sources/extsysmon/extsysmon.cpp
@@ -449,11 +449,23 @@ float ExtendedSysMon::getHddTemp(const QString cmd, const QString device)
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
+ bool smartctl = cmd.contains(QString("smartctl"));
+ if (debug) qDebug() << PDEBUG << ":" << "Define smartctl" << smartctl;
+
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
- if (qoutput.split(QChar(':'), QString::SkipEmptyParts).count() >= 3) {
- QString temp = qoutput.split(QChar(':'), QString::SkipEmptyParts)[2];
- temp.remove(QChar(0260)).remove(QChar('C'));
- value = temp.toFloat();
+ if (smartctl) {
+ for (int i=0; i