Merge pull request #90 from arcan1s/development

Master update
This commit is contained in:
Evgenii Alekseev 2016-04-21 17:46:47 +04:00
commit 7eb82c8c8d
22 changed files with 463 additions and 390 deletions

View File

@ -0,0 +1,37 @@
diff --git a/sources/awesome-widget/plugin/awkeysaggregator.cpp b/sources/awesome-widget/plugin/awkeysaggregator.cpp
index 7a1887b..9f39e2f 100644
--- a/sources/awesome-widget/plugin/awkeysaggregator.cpp
+++ b/sources/awesome-widget/plugin/awkeysaggregator.cpp
@@ -34,8 +34,8 @@ AWKeysAggregator::AWKeysAggregator(QObject *parent)
// default formaters
// memory
m_formater[QString("mem")] = Float;
- m_formater[QString("memtotmb")] = IntegerFive;
- m_formater[QString("memtotgb")] = Float;
+ m_formater[QString("memtotmb")] = MemMBFormat;
+ m_formater[QString("memtotgb")] = MemGBFormat;
// network
m_formater[QString("down")] = NetSmartFormat;
m_formater[QString("downkb")] = Integer;
@@ -45,8 +45,8 @@ AWKeysAggregator::AWKeysAggregator(QObject *parent)
m_formater[QString("upunits")] = NetSmartUnits;
// swap
m_formater[QString("swap")] = Float;
- m_formater[QString("swaptotmb")] = IntegerFive;
- m_formater[QString("swaptotgb")] = Float;
+ m_formater[QString("swaptotmb")] = MemMBFormat;
+ m_formater[QString("swaptotgb")] = MemGBFormat;
}
@@ -338,8 +338,8 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
m_map[source] = key;
m_formater[key] = Float;
// additional keys
- m_formater[QString("hddtotmb%1").arg(index)] = IntegerFive;
- m_formater[QString("hddtotgb%1").arg(index)] = Float;
+ m_formater[QString("hddtotmb%1").arg(index)] = MemMBFormat;
+ m_formater[QString("hddtotgb%1").arg(index)] = MemGBFormat;
}
} else if (source.contains(mountFreeRegExp)) {
// free space

@ -1 +1 @@
Subproject commit ef47b1146e88caaa9be4f68d5b42919f36ab051c Subproject commit e7bcf8ee858e7be3012168e12c7b14ccc28535b4

View File

@ -42,14 +42,14 @@ include(changelog.cmake)
# flags # flags
if (CMAKE_COMPILER_IS_GNUCXX) if (CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "-Wall -Wno-cpp -std=c++14") set(CMAKE_CXX_FLAGS "-Wall -Wno-cpp -std=c++11")
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0") set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG") set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
set(CMAKE_CXX_FLAGS_OPTIMIZATION "-Ofast -DNDEBUG") set(CMAKE_CXX_FLAGS_OPTIMIZATION "-Ofast -DNDEBUG")
# avoid newer gcc warnings # avoid newer gcc warnings
add_definitions(-D_DEFAULT_SOURCE) add_definitions(-D_DEFAULT_SOURCE)
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang") elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_CXX_FLAGS "-Wall -std=c++14 -stdlib=libc++") set(CMAKE_CXX_FLAGS "-Wall -std=c++11 -stdlib=libc++")
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0") set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG") set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
set(CMAKE_CXX_FLAGS_OPTIMIZATION "-Ofast -DNDEBUG") set(CMAKE_CXX_FLAGS_OPTIMIZATION "-Ofast -DNDEBUG")

View File

@ -84,7 +84,7 @@ Item {
// ui // ui
Text { Text {
id: text id: text
anchors.fill: parent anchors.fill: Layout
renderType: Text.NativeRendering renderType: Text.NativeRendering
textFormat: Text.RichText textFormat: Text.RichText
wrapMode: plasmoid.configuration.wrapText ? Text.WordWrap : Text.NoWrap wrapMode: plasmoid.configuration.wrapText ? Text.WordWrap : Text.NoWrap

View File

@ -61,7 +61,22 @@ Item {
height: implicitHeight height: implicitHeight
width: parent.width width: parent.width
QtControls.Button { QtControls.Button {
width: parent.width * 3 / 12 width: parent.width * 3 / 15
text: i18n("Bgcolor")
onClicked: backgroundDialog.visible = true
QtDialogs.ColorDialog {
id: backgroundDialog
title: i18n("Select a color")
onAccepted: {
var text = textPattern.text
textPattern.text = "<body bgcolor=\"" + backgroundDialog.color + "\">" + text + "</body>"
}
}
}
QtControls.Button {
width: parent.width * 3 / 15
text: i18n("Font") text: i18n("Font")
iconName: "font" iconName: "font"
@ -73,123 +88,119 @@ Item {
"size": plasmoid.configuration.fontSize "size": plasmoid.configuration.fontSize
} }
var font = awActions.getFont(defaultFont) var font = awActions.getFont(defaultFont)
var pos = textPattern.cursorPosition if (font.applied != 1) {
if (debug) console.debug("No font selected")
return
}
var selected = textPattern.selectedText var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd) textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "<span style=\"color:" + font.color + textPattern.insert(textPattern.cursorPosition,
"; font-family:'" + font.family + "<span style=\"color:" + font.color +
"'; font-size:" + font.size + "pt;\">" + "; font-family:'" + font.family +
selected + "</span>") "'; font-size:" + font.size + "pt;\">" +
selected + "</span>")
} }
} }
QtControls.Button { QtControls.Button {
width: parent.width / 12 width: parent.width / 15
iconName: "format-indent-more" iconName: "format-indent-more"
onClicked: { onClicked: {
if (debug) console.debug("Indent button") if (debug) console.debug("Indent button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd) textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, selected + "<br>\n") textPattern.insert(textPattern.cursorPosition, selected + "<br>\n")
} }
} }
QtControls.Button { QtControls.Button {
width: parent.width / 12 width: parent.width / 15
iconName: "format-text-bold" iconName: "format-text-bold"
onClicked: { onClicked: {
if (debug) console.debug("Bold button") if (debug) console.debug("Bold button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd) textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "<b>" + selected + "</b>") textPattern.insert(textPattern.cursorPosition, "<b>" + selected + "</b>")
} }
} }
QtControls.Button { QtControls.Button {
width: parent.width / 12 width: parent.width / 15
iconName: "format-text-italic" iconName: "format-text-italic"
onClicked: { onClicked: {
if (debug) console.debug("Italic button") if (debug) console.debug("Italic button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd) textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "<i>" + selected + "</i>") textPattern.insert(textPattern.cursorPosition, "<i>" + selected + "</i>")
} }
} }
QtControls.Button { QtControls.Button {
width: parent.width / 12 width: parent.width / 15
iconName: "format-text-underline" iconName: "format-text-underline"
onClicked: { onClicked: {
if (debug) console.debug("Underline button") if (debug) console.debug("Underline button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd) textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "<u>" + selected + "</u>") textPattern.insert(textPattern.cursorPosition, "<u>" + selected + "</u>")
} }
} }
QtControls.Button { QtControls.Button {
width: parent.width / 12 width: parent.width / 15
iconName: "format-text-strikethrough" iconName: "format-text-strikethrough"
onClicked: { onClicked: {
if (debug) console.debug("Strike button") if (debug) console.debug("Strike button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd) textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "<s>" + selected + "</s>") textPattern.insert(textPattern.cursorPosition, "<s>" + selected + "</s>")
} }
} }
QtControls.Button { QtControls.Button {
width: parent.width / 12 width: parent.width / 15
iconName: "format-justify-left" iconName: "format-justify-left"
onClicked: { onClicked: {
if (debug) console.debug("Left button") if (debug) console.debug("Left button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd) textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "<p align=\"left\">" + selected + "</p>") textPattern.insert(textPattern.cursorPosition, "<p align=\"left\">" + selected + "</p>")
} }
} }
QtControls.Button { QtControls.Button {
width: parent.width / 12 width: parent.width / 15
iconName: "format-justify-center" iconName: "format-justify-center"
onClicked: { onClicked: {
if (debug) console.debug("Center button") if (debug) console.debug("Center button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd) textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "<p align=\"center\">" + selected + "</p>") textPattern.insert(textPattern.cursorPosition, "<p align=\"center\">" + selected + "</p>")
} }
} }
QtControls.Button { QtControls.Button {
width: parent.width / 12 width: parent.width / 15
iconName: "format-justify-right" iconName: "format-justify-right"
onClicked: { onClicked: {
if (debug) console.debug("Right button") if (debug) console.debug("Right button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd) textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "<p align=\"right\">" + selected + "</p>") textPattern.insert(textPattern.cursorPosition, "<p align=\"right\">" + selected + "</p>")
} }
} }
QtControls.Button { QtControls.Button {
width: parent.width / 12 width: parent.width / 15
iconName: "format-justify-fill" iconName: "format-justify-fill"
onClicked: { onClicked: {
if (debug) console.debug("Justify button") if (debug) console.debug("Justify button")
var pos = textPattern.cursorPosition
var selected = textPattern.selectedText var selected = textPattern.selectedText
textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd) textPattern.remove(textPattern.selectionStart, textPattern.selectionEnd)
textPattern.insert(pos, "<p align=\"justify\">" + selected + "</p>") textPattern.insert(textPattern.cursorPosition, "<p align=\"justify\">" + selected + "</p>")
} }
} }
} }

View File

@ -154,11 +154,14 @@ QVariantMap AWActions::getFont(const QVariantMap defaultFont) const
qCDebug(LOG_AW) << "Default font is" << defaultFont; qCDebug(LOG_AW) << "Default font is" << defaultFont;
QVariantMap fontMap; QVariantMap fontMap;
int ret = 0;
CFont defaultCFont = CFont(defaultFont[QString("family")].toString(), CFont defaultCFont = CFont(defaultFont[QString("family")].toString(),
defaultFont[QString("size")].toInt(), 400, false, defaultFont[QString("size")].toInt(), 400, false,
defaultFont[QString("color")].toString()); defaultFont[QString("color")].toString());
CFont font CFont font = CFontDialog::getFont(i18n("Select font"), defaultCFont, false,
= CFontDialog::getFont(i18n("Select font"), defaultCFont, false, false); false, &ret);
fontMap[QString("applied")] = ret;
fontMap[QString("color")] = font.color().name(); fontMap[QString("color")] = font.color().name();
fontMap[QString("family")] = font.family(); fontMap[QString("family")] = font.family();
fontMap[QString("size")] = font.pointSize(); fontMap[QString("size")] = font.pointSize();

View File

@ -312,14 +312,12 @@ QString AWKeys::parsePattern(QString pattern) const
// bars // bars
for (auto bar : m_foundBars) { for (auto bar : m_foundBars) {
GraphicalItem *item = keyOperator->giByKey(bar); GraphicalItem *item = keyOperator->giByKey(bar);
if (item->isCustom()) QString image
pattern.replace( = item->isCustom()
QString("$%1").arg(bar), ? item->image(AWPatternFunctions::expandLambdas(
item->image(AWPatternFunctions::expandLambdas( item->bar(), aggregator, values, item->usedKeys()))
item->bar(), aggregator, values, item->usedKeys()))); : item->image(values[item->bar()]);
else pattern.replace(QString("$%1").arg(bar), image);
pattern.replace(QString("$%1").arg(bar),
item->image(values[item->bar()]));
} }
// prepare strings // prepare strings

View File

@ -33,20 +33,20 @@ AWKeysAggregator::AWKeysAggregator(QObject *parent)
// default formaters // default formaters
// memory // memory
m_formater[QString("mem")] = Float; m_formater[QString("mem")] = FormaterType::Float;
m_formater[QString("memtotmb")] = IntegerFive; m_formater[QString("memtotmb")] = FormaterType::MemMBFormat;
m_formater[QString("memtotgb")] = Float; m_formater[QString("memtotgb")] = FormaterType::MemGBFormat;
// network // network
m_formater[QString("down")] = NetSmartFormat; m_formater[QString("down")] = FormaterType::NetSmartFormat;
m_formater[QString("downkb")] = Integer; m_formater[QString("downkb")] = FormaterType::Integer;
m_formater[QString("downunits")] = NetSmartUnits; m_formater[QString("downunits")] = FormaterType::NetSmartUnits;
m_formater[QString("up")] = NetSmartFormat; m_formater[QString("up")] = FormaterType::NetSmartFormat;
m_formater[QString("upkb")] = Integer; m_formater[QString("upkb")] = FormaterType::Integer;
m_formater[QString("upunits")] = NetSmartUnits; m_formater[QString("upunits")] = FormaterType::NetSmartUnits;
// swap // swap
m_formater[QString("swap")] = Float; m_formater[QString("swap")] = FormaterType::Float;
m_formater[QString("swaptotmb")] = IntegerFive; m_formater[QString("swaptotmb")] = FormaterType::MemMBFormat;
m_formater[QString("swaptotgb")] = Float; m_formater[QString("swaptotgb")] = FormaterType::MemGBFormat;
} }
@ -65,35 +65,35 @@ QString AWKeysAggregator::formater(const QVariant &data,
QLocale loc = m_translate ? QLocale::system() : QLocale::c(); QLocale loc = m_translate ? QLocale::system() : QLocale::c();
// case block // case block
switch (m_formater[key]) { switch (m_formater[key]) {
case Float: case FormaterType::Float:
output = QString("%1").arg(data.toFloat(), 5, 'f', 1); output = QString("%1").arg(data.toFloat(), 5, 'f', 1);
break; break;
case FloatTwoSymbols: case FormaterType::FloatTwoSymbols:
output = QString("%1").arg(data.toFloat(), 5, 'f', 2); output = QString("%1").arg(data.toFloat(), 5, 'f', 2);
break; break;
case Integer: case FormaterType::Integer:
output = QString("%1").arg(data.toFloat(), 4, 'f', 0); output = QString("%1").arg(data.toFloat(), 4, 'f', 0);
break; break;
case IntegerFive: case FormaterType::IntegerFive:
output = QString("%1").arg(data.toFloat(), 5, 'f', 0); output = QString("%1").arg(data.toFloat(), 5, 'f', 0);
break; break;
case IntegerThree: case FormaterType::IntegerThree:
output = QString("%1").arg(data.toFloat(), 3, 'f', 0); output = QString("%1").arg(data.toFloat(), 3, 'f', 0);
break; break;
case List: case FormaterType::List:
output = data.toStringList().join(QChar(',')); output = data.toStringList().join(QChar(','));
break; break;
case ACFormat: case FormaterType::ACFormat:
output = data.toBool() ? m_acOnline : m_acOffline; output = data.toBool() ? m_acOnline : m_acOffline;
break; break;
case MemGBFormat: case FormaterType::MemGBFormat:
output output
= QString("%1").arg(data.toFloat() / (1024.0 * 1024.0), 5, 'f', 1); = QString("%1").arg(data.toFloat() / (1024.0 * 1024.0), 5, 'f', 1);
break; break;
case MemMBFormat: case FormaterType::MemMBFormat:
output = QString("%1").arg(data.toFloat() / 1024.0, 5, 'f', 0); output = QString("%1").arg(data.toFloat() / 1024.0, 5, 'f', 0);
break; break;
case NetSmartFormat: case FormaterType::NetSmartFormat:
output = [](const float value) { output = [](const float value) {
if (value > 1024.0) if (value > 1024.0)
return QString("%1").arg(value / 1024.0, 4, 'f', 1); return QString("%1").arg(value / 1024.0, 4, 'f', 1);
@ -101,41 +101,41 @@ QString AWKeysAggregator::formater(const QVariant &data,
return QString("%1").arg(value, 4, 'f', 0); return QString("%1").arg(value, 4, 'f', 0);
}(data.toFloat()); }(data.toFloat());
break; break;
case NetSmartUnits: case FormaterType::NetSmartUnits:
if (data.toFloat() > 1024.0) if (data.toFloat() > 1024.0)
output = m_translate ? i18n("MB/s") : QString("MB/s"); output = m_translate ? i18n("MB/s") : QString("MB/s");
else else
output = m_translate ? i18n("KB/s") : QString("KB/s"); output = m_translate ? i18n("KB/s") : QString("KB/s");
break; break;
case Quotes: case FormaterType::Quotes:
// first cast // first cast
output = QString("%1").arg(data.toDouble(), 0, 'f'); output = QString("%1").arg(data.toDouble(), 0, 'f');
output = output.rightJustified(8, QLatin1Char(' '), true); output = output.rightJustified(8, QLatin1Char(' '), true);
break; break;
case Temperature: case FormaterType::Temperature:
output = QString("%1").arg(temperature(data.toFloat()), 5, 'f', 1); output = QString("%1").arg(temperature(data.toFloat()), 5, 'f', 1);
break; break;
case Time: case FormaterType::Time:
output = data.toDateTime().toString(); output = data.toDateTime().toString();
break; break;
case TimeCustom: case FormaterType::TimeCustom:
output = m_customTime; output = m_customTime;
[&output, loc, this](const QDateTime dt) { [&output, loc, this](const QDateTime dt) {
for (auto key : timeKeys) for (auto key : timeKeys)
output.replace(QString("$%1").arg(key), loc.toString(dt, key)); output.replace(QString("$%1").arg(key), loc.toString(dt, key));
}(data.toDateTime()); }(data.toDateTime());
break; break;
case TimeISO: case FormaterType::TimeISO:
output = data.toDateTime().toString(Qt::ISODate); output = data.toDateTime().toString(Qt::ISODate);
break; break;
case TimeLong: case FormaterType::TimeLong:
output = loc.toString(data.toDateTime(), QLocale::LongFormat); output = loc.toString(data.toDateTime(), QLocale::LongFormat);
break; break;
case TimeShort: case FormaterType::TimeShort:
output = loc.toString(data.toDateTime(), QLocale::ShortFormat); output = loc.toString(data.toDateTime(), QLocale::ShortFormat);
break; break;
case Uptime: case FormaterType::Uptime:
case UptimeCustom: case FormaterType::UptimeCustom:
output = output =
[](QString source, const int uptime) { [](QString source, const int uptime) {
int seconds = uptime - uptime % 60; int seconds = uptime - uptime % 60;
@ -152,16 +152,13 @@ QString AWKeysAggregator::formater(const QVariant &data,
QString("%1").arg(minutes, 2, 10, QChar('0'))); QString("%1").arg(minutes, 2, 10, QChar('0')));
source.replace(QString("$m"), QString("%1").arg(minutes)); source.replace(QString("$m"), QString("%1").arg(minutes));
return source; return source;
}(m_formater[key] == Uptime ? QString("$ddd$hhh$mmm") }(m_formater[key] == FormaterType::Uptime ? QString("$ddd$hhh$mmm")
: m_customUptime, : m_customUptime,
static_cast<int>(data.toFloat())); static_cast<int>(data.toFloat()));
break; break;
case NoFormat: case FormaterType::NoFormat:
output = data.toString(); output = data.toString();
break; break;
default:
output = QString();
break;
} }
return output; return output;
@ -254,52 +251,52 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
if (source == QString("battery/ac")) { if (source == QString("battery/ac")) {
// AC // AC
m_map[source] = QString("ac"); m_map[source] = QString("ac");
m_formater[QString("ac")] = ACFormat; m_formater[QString("ac")] = FormaterType::ACFormat;
} else if (source.startsWith(QString("battery/"))) { } else if (source.startsWith(QString("battery/"))) {
// battery stats // battery stats
QString key = source; QString key = source;
key.remove(QString("battery/")); key.remove(QString("battery/"));
m_map[source] = key; m_map[source] = key;
m_formater[key] = IntegerThree; m_formater[key] = FormaterType::IntegerThree;
} else if (source == QString("cpu/system/TotalLoad")) { } else if (source == QString("cpu/system/TotalLoad")) {
// cpu // cpu
m_map[source] = QString("cpu"); m_map[source] = QString("cpu");
m_formater[QString("cpu")] = Float; m_formater[QString("cpu")] = FormaterType::Float;
} else if (source.contains(cpuRegExp)) { } else if (source.contains(cpuRegExp)) {
// cpus // cpus
QString key = source; QString key = source;
key.remove(QString("cpu/")).remove(QString("/TotalLoad")); key.remove(QString("cpu/")).remove(QString("/TotalLoad"));
m_map[source] = key; m_map[source] = key;
m_formater[key] = Float; m_formater[key] = FormaterType::Float;
} else if (source == QString("cpu/system/AverageClock")) { } else if (source == QString("cpu/system/AverageClock")) {
// cpucl // cpucl
m_map[source] = QString("cpucl"); m_map[source] = QString("cpucl");
m_formater[QString("cpucl")] = Integer; m_formater[QString("cpucl")] = FormaterType::Integer;
} else if (source.contains(cpuclRegExp)) { } else if (source.contains(cpuclRegExp)) {
// cpucls // cpucls
QString key = source; QString key = source;
key.remove(QString("cpu/cpu")).remove(QString("/clock")); key.remove(QString("cpu/cpu")).remove(QString("/clock"));
key = QString("cpucl%1").arg(key); key = QString("cpucl%1").arg(key);
m_map[source] = key; m_map[source] = key;
m_formater[key] = Integer; m_formater[key] = FormaterType::Integer;
} else if (source.startsWith(QString("custom"))) { } else if (source.startsWith(QString("custom"))) {
// custom // custom
QString key = source; QString key = source;
key.remove(QString("custom/")); key.remove(QString("custom/"));
m_map[source] = key; m_map[source] = key;
m_formater[key] = NoFormat; m_formater[key] = FormaterType::NoFormat;
} else if (source == QString("desktop/current/name")) { } else if (source == QString("desktop/current/name")) {
// current desktop name // current desktop name
m_map[source] = QString("desktop"); m_map[source] = QString("desktop");
m_formater[QString("desktop")] = NoFormat; m_formater[QString("desktop")] = FormaterType::NoFormat;
} else if (source == QString("desktop/current/number")) { } else if (source == QString("desktop/current/number")) {
// current desktop number // current desktop number
m_map[source] = QString("ndesktop"); m_map[source] = QString("ndesktop");
m_formater[QString("ndesktop")] = NoFormat; m_formater[QString("ndesktop")] = FormaterType::NoFormat;
} else if (source == QString("desktop/total/number")) { } else if (source == QString("desktop/total/number")) {
// desktop count // desktop count
m_map[source] = QString("tdesktops"); m_map[source] = QString("tdesktops");
m_formater[QString("tdesktops")] = NoFormat; m_formater[QString("tdesktops")] = FormaterType::NoFormat;
} else if (source.contains(hddrRegExp)) { } else if (source.contains(hddrRegExp)) {
// read speed // read speed
QString device = source; QString device = source;
@ -308,7 +305,7 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
if (index > -1) { if (index > -1) {
QString key = QString("hddr%1").arg(index); QString key = QString("hddr%1").arg(index);
m_map[source] = key; m_map[source] = key;
m_formater[key] = Integer; m_formater[key] = FormaterType::Integer;
} }
} else if (source.contains(hddwRegExp)) { } else if (source.contains(hddwRegExp)) {
// write speed // write speed
@ -318,16 +315,16 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
if (index > -1) { if (index > -1) {
QString key = QString("hddw%1").arg(index); QString key = QString("hddw%1").arg(index);
m_map[source] = key; m_map[source] = key;
m_formater[key] = Integer; m_formater[key] = FormaterType::Integer;
} }
} else if (source == QString("gpu/load")) { } else if (source == QString("gpu/load")) {
// gpu load // gpu load
m_map[source] = QString("gpu"); m_map[source] = QString("gpu");
m_formater[QString("gpu")] = Float; m_formater[QString("gpu")] = FormaterType::Float;
} else if (source == QString("gpu/temperature")) { } else if (source == QString("gpu/temperature")) {
// gpu temperature // gpu temperature
m_map[source] = QString("gputemp"); m_map[source] = QString("gputemp");
m_formater[QString("gputemp")] = Temperature; m_formater[QString("gputemp")] = FormaterType::Temperature;
} else if (source.contains(mountFillRegExp)) { } else if (source.contains(mountFillRegExp)) {
// fill level // fill level
QString device = source; QString device = source;
@ -336,10 +333,12 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
if (index > -1) { if (index > -1) {
QString key = QString("hdd%1").arg(index); QString key = QString("hdd%1").arg(index);
m_map[source] = key; m_map[source] = key;
m_formater[key] = Float; m_formater[key] = FormaterType::Float;
// additional keys // additional keys
m_formater[QString("hddtotmb%1").arg(index)] = IntegerFive; m_formater[QString("hddtotmb%1").arg(index)]
m_formater[QString("hddtotgb%1").arg(index)] = Float; = FormaterType::MemMBFormat;
m_formater[QString("hddtotgb%1").arg(index)]
= FormaterType::MemGBFormat;
} }
} else if (source.contains(mountFreeRegExp)) { } else if (source.contains(mountFreeRegExp)) {
// free space // free space
@ -350,11 +349,11 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
// mb // mb
QString key = QString("hddfreemb%1").arg(index); QString key = QString("hddfreemb%1").arg(index);
m_map[source] = key; m_map[source] = key;
m_formater[key] = MemMBFormat; m_formater[key] = FormaterType::MemMBFormat;
// gb // gb
key = QString("hddfreegb%1").arg(index); key = QString("hddfreegb%1").arg(index);
m_map.insertMulti(source, key); m_map.insertMulti(source, key);
m_formater[key] = MemGBFormat; m_formater[key] = FormaterType::MemGBFormat;
} }
} else if (source.contains(mountUsedRegExp)) { } else if (source.contains(mountUsedRegExp)) {
// used // used
@ -365,11 +364,11 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
// mb // mb
QString key = QString("hddmb%1").arg(index); QString key = QString("hddmb%1").arg(index);
m_map[source] = key; m_map[source] = key;
m_formater[key] = MemMBFormat; m_formater[key] = FormaterType::MemMBFormat;
// gb // gb
key = QString("hddgb%1").arg(index); key = QString("hddgb%1").arg(index);
m_map.insertMulti(source, key); m_map.insertMulti(source, key);
m_formater[key] = MemGBFormat; m_formater[key] = FormaterType::MemGBFormat;
} }
} else if (source.startsWith(QString("hdd/temperature"))) { } else if (source.startsWith(QString("hdd/temperature"))) {
// hdd temperature // hdd temperature
@ -379,7 +378,7 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
if (index > -1) { if (index > -1) {
QString key = QString("hddtemp%1").arg(index); QString key = QString("hddtemp%1").arg(index);
m_map[source] = key; m_map[source] = key;
m_formater[key] = Temperature; m_formater[key] = FormaterType::Temperature;
} }
} else if (source.startsWith(QString("cpu/system/loadavg"))) { } else if (source.startsWith(QString("cpu/system/loadavg"))) {
// load average // load average
@ -387,35 +386,35 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
time.remove(QString("cpu/system/loadavg")); time.remove(QString("cpu/system/loadavg"));
QString key = QString("la%1").arg(time); QString key = QString("la%1").arg(time);
m_map[source] = key; m_map[source] = key;
m_formater[key] = FloatTwoSymbols; m_formater[key] = FormaterType::FloatTwoSymbols;
} else if (source == QString("mem/physical/application")) { } else if (source == QString("mem/physical/application")) {
// app memory // app memory
// mb // mb
m_map[source] = QString("memmb"); m_map[source] = QString("memmb");
m_formater[QString("memmb")] = MemMBFormat; m_formater[QString("memmb")] = FormaterType::MemMBFormat;
// gb // gb
m_map.insertMulti(source, QString("memgb")); m_map.insertMulti(source, QString("memgb"));
m_formater[QString("memgb")] = MemGBFormat; m_formater[QString("memgb")] = FormaterType::MemGBFormat;
} else if (source == QString("mem/physical/free")) { } else if (source == QString("mem/physical/free")) {
// free memory // free memory
// mb // mb
m_map[source] = QString("memfreemb"); m_map[source] = QString("memfreemb");
m_formater[QString("memfreemb")] = MemMBFormat; m_formater[QString("memfreemb")] = FormaterType::MemMBFormat;
// gb // gb
m_map.insertMulti(source, QString("memfreegb")); m_map.insertMulti(source, QString("memfreegb"));
m_formater[QString("memfreegb")] = MemGBFormat; m_formater[QString("memfreegb")] = FormaterType::MemGBFormat;
} else if (source == QString("mem/physical/used")) { } else if (source == QString("mem/physical/used")) {
// used memory // used memory
// mb // mb
m_map[source] = QString("memusedmb"); m_map[source] = QString("memusedmb");
m_formater[QString("memusedmb")] = MemMBFormat; m_formater[QString("memusedmb")] = FormaterType::MemMBFormat;
// gb // gb
m_map.insertMulti(source, QString("memusedgb")); m_map.insertMulti(source, QString("memusedgb"));
m_formater[QString("memusedgb")] = MemGBFormat; m_formater[QString("memusedgb")] = FormaterType::MemGBFormat;
} else if (source == QString("network/current/name")) { } else if (source == QString("network/current/name")) {
// network device // network device
m_map[source] = QString("netdev"); m_map[source] = QString("netdev");
m_formater[QString("netdev")] = NoFormat; m_formater[QString("netdev")] = FormaterType::NoFormat;
} else if (source.contains(netRegExp)) { } else if (source.contains(netRegExp)) {
// network speed // network speed
QString type = source.contains(QString("receiver")) ? QString("down") QString type = source.contains(QString("receiver")) ? QString("down")
@ -426,62 +425,62 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
// kb // kb
QString key = QString("%1kb%2").arg(type).arg(index); QString key = QString("%1kb%2").arg(type).arg(index);
m_map[source] = key; m_map[source] = key;
m_formater[key] = Integer; m_formater[key] = FormaterType::Integer;
// smart // smart
key = QString("%1%2").arg(type).arg(index); key = QString("%1%2").arg(type).arg(index);
m_map.insertMulti(source, key); m_map.insertMulti(source, key);
m_formater[key] = NetSmartFormat; m_formater[key] = FormaterType::NetSmartFormat;
// units // units
key = QString("%1units%2").arg(type).arg(index); key = QString("%1units%2").arg(type).arg(index);
m_map.insertMulti(source, key); m_map.insertMulti(source, key);
m_formater[key] = NetSmartUnits; m_formater[key] = FormaterType::NetSmartUnits;
} }
} else if (source.startsWith(QString("upgrade"))) { } else if (source.startsWith(QString("upgrade"))) {
// package manager // package manager
QString key = source; QString key = source;
key.remove(QString("upgrade/")); key.remove(QString("upgrade/"));
m_map[source] = key; m_map[source] = key;
m_formater[key] = IntegerThree; m_formater[key] = FormaterType::IntegerThree;
} else if (source.startsWith(QString("player"))) { } else if (source.startsWith(QString("player"))) {
// player // player
QString key = source; QString key = source;
key.remove(QString("player/")); key.remove(QString("player/"));
m_map[source] = key; m_map[source] = key;
m_formater[key] = NoFormat; m_formater[key] = FormaterType::NoFormat;
} else if (source == QString("ps/running/count")) { } else if (source == QString("ps/running/count")) {
// running processes count // running processes count
m_map[source] = QString("pscount"); m_map[source] = QString("pscount");
m_formater[QString("pscount")] = NoFormat; m_formater[QString("pscount")] = FormaterType::NoFormat;
} else if (source == QString("ps/running/list")) { } else if (source == QString("ps/running/list")) {
// list of running processes // list of running processes
m_map[source] = QString("ps"); m_map[source] = QString("ps");
m_formater[QString("ps")] = List; m_formater[QString("ps")] = FormaterType::List;
} else if (source == QString("ps/total/count")) { } else if (source == QString("ps/total/count")) {
// total processes count // total processes count
m_map[source] = QString("pstotal"); m_map[source] = QString("pstotal");
m_formater[QString("pstotal")] = NoFormat; m_formater[QString("pstotal")] = FormaterType::NoFormat;
} else if (source.startsWith(QString("quotes"))) { } else if (source.startsWith(QString("quotes"))) {
// quotes // quotes
QString key = source; QString key = source;
key.remove(QString("quotes/")); key.remove(QString("quotes/"));
m_map[source] = key; m_map[source] = key;
m_formater[key] = Quotes; m_formater[key] = FormaterType::Quotes;
} else if (source == QString("mem/swap/free")) { } else if (source == QString("mem/swap/free")) {
// free swap // free swap
// mb // mb
m_map[source] = QString("swapfreemb"); m_map[source] = QString("swapfreemb");
m_formater[QString("swapfreemb")] = MemMBFormat; m_formater[QString("swapfreemb")] = FormaterType::MemMBFormat;
// gb // gb
m_map.insertMulti(source, QString("swapfreegb")); m_map.insertMulti(source, QString("swapfreegb"));
m_formater[QString("swapfreegb")] = MemGBFormat; m_formater[QString("swapfreegb")] = FormaterType::MemGBFormat;
} else if (source == QString("mem/swap/used")) { } else if (source == QString("mem/swap/used")) {
// used swap // used swap
// mb // mb
m_map[source] = QString("swapmb"); m_map[source] = QString("swapmb");
m_formater[QString("swapmb")] = MemMBFormat; m_formater[QString("swapmb")] = FormaterType::MemMBFormat;
// gb // gb
m_map.insertMulti(source, QString("swapgb")); m_map.insertMulti(source, QString("swapgb"));
m_formater[QString("swapgb")] = MemGBFormat; m_formater[QString("swapgb")] = FormaterType::MemGBFormat;
} else if (source.startsWith(QString("lmsensors/"))) { } else if (source.startsWith(QString("lmsensors/"))) {
// temperature // temperature
int index = m_devices[QString("temp")].indexOf(source); int index = m_devices[QString("temp")].indexOf(source);
@ -491,49 +490,50 @@ QStringList AWKeysAggregator::registerSource(const QString &source,
if (index > -1) { if (index > -1) {
QString key = QString("temp%1").arg(index); QString key = QString("temp%1").arg(index);
m_map[source] = key; m_map[source] = key;
m_formater[key] = units == QString("°C") ? Temperature : Integer; m_formater[key] = units == QString("°C") ? FormaterType::Temperature
: FormaterType::Integer;
} }
} else if (source == QString("Local")) { } else if (source == QString("Local")) {
// time // time
m_map[source] = QString("time"); m_map[source] = QString("time");
m_formater[QString("time")] = Time; m_formater[QString("time")] = FormaterType::Time;
// custom time // custom time
m_map.insertMulti(source, QString("ctime")); m_map.insertMulti(source, QString("ctime"));
m_formater[QString("ctime")] = TimeCustom; m_formater[QString("ctime")] = FormaterType::TimeCustom;
// ISO time // ISO time
m_map.insertMulti(source, QString("isotime")); m_map.insertMulti(source, QString("isotime"));
m_formater[QString("isotime")] = TimeISO; m_formater[QString("isotime")] = FormaterType::TimeISO;
// long time // long time
m_map.insertMulti(source, QString("longtime")); m_map.insertMulti(source, QString("longtime"));
m_formater[QString("longtime")] = TimeLong; m_formater[QString("longtime")] = FormaterType::TimeLong;
// short time // short time
m_map.insertMulti(source, QString("shorttime")); m_map.insertMulti(source, QString("shorttime"));
m_formater[QString("shorttime")] = TimeShort; m_formater[QString("shorttime")] = FormaterType::TimeShort;
} else if (source == QString("system/uptime")) { } else if (source == QString("system/uptime")) {
// uptime // uptime
m_map[source] = QString("uptime"); m_map[source] = QString("uptime");
m_formater[QString("uptime")] = Uptime; m_formater[QString("uptime")] = FormaterType::Uptime;
// custom uptime // custom uptime
m_map.insertMulti(source, QString("cuptime")); m_map.insertMulti(source, QString("cuptime"));
m_formater[QString("cuptime")] = UptimeCustom; m_formater[QString("cuptime")] = FormaterType::UptimeCustom;
} else if (source.startsWith(QString("weather/temperature"))) { } else if (source.startsWith(QString("weather/temperature"))) {
// temperature // temperature
QString key = source; QString key = source;
key.remove(QString("weather/")); key.remove(QString("weather/"));
m_map[source] = key; m_map[source] = key;
m_formater[key] = Temperature; m_formater[key] = FormaterType::Temperature;
} else if (source.startsWith(QString("weather/"))) { } else if (source.startsWith(QString("weather/"))) {
// other weather // other weather
QString key = source; QString key = source;
key.remove(QString("weather/")); key.remove(QString("weather/"));
m_map[source] = key; m_map[source] = key;
m_formater[key] = NoFormat; m_formater[key] = FormaterType::NoFormat;
} else if (source.startsWith(QString("load/load"))) { } else if (source.startsWith(QString("load/load"))) {
// load source // load source
QString key = source; QString key = source;
key.remove(QString("load/")); key.remove(QString("load/"));
m_map[source] = key; m_map[source] = key;
m_formater[key] = Temperature; m_formater[key] = FormaterType::Temperature;
} }
// drop key from dictionary if no one user requested key required it // drop key from dictionary if no one user requested key required it

View File

@ -36,7 +36,7 @@ class AWKeysAggregator : public QObject
Q_PROPERTY(QString tempUnits MEMBER m_tempUnits WRITE setTempUnits); Q_PROPERTY(QString tempUnits MEMBER m_tempUnits WRITE setTempUnits);
Q_PROPERTY(bool translate MEMBER m_translate WRITE setTranslate); Q_PROPERTY(bool translate MEMBER m_translate WRITE setTranslate);
enum FormaterType { enum class FormaterType {
// general formaters // general formaters
NoFormat = 0, NoFormat = 0,
Float, Float,

View File

@ -74,14 +74,18 @@ bool AWUpdateHelper::checkVersion()
// update version // update version
settings.setValue(QString("Version"), QString(VERSION)); settings.setValue(QString("Version"), QString(VERSION));
settings.sync(); settings.sync();
qCInfo(LOG_AW) << "Found version" << version << "actual one is"
<< m_foundVersion;
qCInfo(LOG_AW) << "Found version" << version << "actual one is" << VERSION; if ((version != m_foundVersion) && (!QString(CHANGELOG).isEmpty())) {
if (version != QVersionNumber::fromString(VERSION)) {
genMessageBox(i18n("Changelog of %1", QString(VERSION)), genMessageBox(i18n("Changelog of %1", QString(VERSION)),
QString(CHANGELOG).replace(QChar('@'), QChar('\n')), QString(CHANGELOG).replace(QChar('@'), QChar('\n')),
QMessageBox::Ok) QMessageBox::Ok)
->open(); ->open();
return true; return true;
} else if (version != m_foundVersion) {
qCWarning(LOG_AW) << "No changelog information provided";
return true;
} else { } else {
qCInfo(LOG_AW) << "No need to update version"; qCInfo(LOG_AW) << "No need to update version";
} }

View File

@ -6,11 +6,11 @@ X-AW-Value=bat
X-AW-Custom=false X-AW-Custom=false
X-AW-Max=100.0 X-AW-Max=100.0
X-AW-Min=0.0 X-AW-Min=0.0
X-AW-ActiveColor="0,0,0,255" X-AW-ActiveColor="color://0,0,0,255"
X-AW-InactiveColor="255,255,255,255" X-AW-InactiveColor="color://255,255,255,255"
X-AW-Type=Horizontal X-AW-Type=Horizontal
X-AW-Direction=LeftToRight X-AW-Direction=LeftToRight
X-AW-Height=25 X-AW-Height=25
X-AW-Width=100 X-AW-Width=100
X-AW-ApiVersion=4 X-AW-ApiVersion=5
X-AW-Number=3 X-AW-Number=3

View File

@ -6,11 +6,11 @@ X-AW-Value=cpu
X-AW-Custom=false X-AW-Custom=false
X-AW-Max=100.0 X-AW-Max=100.0
X-AW-Min=0.0 X-AW-Min=0.0
X-AW-ActiveColor="0,0,0,255" X-AW-ActiveColor="color://0,0,0,255"
X-AW-InactiveColor="255,255,255,255" X-AW-InactiveColor="color://255,255,255,255"
X-AW-Type=Horizontal X-AW-Type=Horizontal
X-AW-Direction=LeftToRight X-AW-Direction=LeftToRight
X-AW-Height=25 X-AW-Height=25
X-AW-Width=100 X-AW-Width=100
X-AW-ApiVersion=4 X-AW-ApiVersion=5
X-AW-Number=0 X-AW-Number=0

View File

@ -6,11 +6,11 @@ X-AW-Value=mem
X-AW-Custom=false X-AW-Custom=false
X-AW-Max=100.0 X-AW-Max=100.0
X-AW-Min=0.0 X-AW-Min=0.0
X-AW-ActiveColor="0,0,0,255" X-AW-ActiveColor="color://0,0,0,255"
X-AW-InactiveColor="255,255,255,255" X-AW-InactiveColor="color://255,255,255,255"
X-AW-Type=Horizontal X-AW-Type=Horizontal
X-AW-Direction=LeftToRight X-AW-Direction=LeftToRight
X-AW-Height=25 X-AW-Height=25
X-AW-Width=100 X-AW-Width=100
X-AW-ApiVersion=4 X-AW-ApiVersion=5
X-AW-Number=1 X-AW-Number=1

View File

@ -6,11 +6,11 @@ X-AW-Value=swap
X-AW-Custom=false X-AW-Custom=false
X-AW-Max=100.0 X-AW-Max=100.0
X-AW-Min=0.0 X-AW-Min=0.0
X-AW-ActiveColor="0,0,0,255" X-AW-ActiveColor="color://0,0,0,255"
X-AW-InactiveColor="255,255,255,255" X-AW-InactiveColor="color://255,255,255,255"
X-AW-Type=Horizontal X-AW-Type=Horizontal
X-AW-Direction=LeftToRight X-AW-Direction=LeftToRight
X-AW-Height=25 X-AW-Height=25
X-AW-Width=100 X-AW-Width=100
X-AW-ApiVersion=4 X-AW-ApiVersion=5
X-AW-Number=2 X-AW-Number=2

View File

@ -112,17 +112,16 @@ QString ExtScript::strRedirect() const
{ {
QString value; QString value;
switch (m_redirect) { switch (m_redirect) {
case stdout2stderr: case Redirect::stdout2stderr:
value = QString("stdout2stderr"); value = QString("stdout2stderr");
break; break;
case stderr2stdout: case Redirect::stderr2stdout:
value = QString("stderr2stdout"); value = QString("stderr2stdout");
break; break;
case swap: case Redirect::swap:
value = QString("swap"); value = QString("swap");
break; break;
case nothing: case Redirect::nothing:
default:
value = QString("nothing"); value = QString("nothing");
break; break;
} }
@ -158,7 +157,7 @@ void ExtScript::setPrefix(const QString _prefix)
void ExtScript::setRedirect(const Redirect _redirect) void ExtScript::setRedirect(const Redirect _redirect)
{ {
qCDebug(LOG_LIB) << "Redirect" << _redirect; qCDebug(LOG_LIB) << "Redirect" << static_cast<int>(_redirect);
m_redirect = _redirect; m_redirect = _redirect;
} }
@ -169,13 +168,13 @@ void ExtScript::setStrRedirect(const QString _redirect)
qCDebug(LOG_LIB) << "Redirect" << _redirect; qCDebug(LOG_LIB) << "Redirect" << _redirect;
if (_redirect == QString("stdout2sdterr")) if (_redirect == QString("stdout2sdterr"))
m_redirect = stdout2stderr; m_redirect = Redirect::stdout2stderr;
else if (_redirect == QString("stderr2sdtout")) else if (_redirect == QString("stderr2sdtout"))
m_redirect = stderr2stdout; m_redirect = Redirect::stderr2stdout;
else if (_redirect == QString("swap")) else if (_redirect == QString("swap"))
m_redirect = swap; m_redirect = Redirect::swap;
else else
m_redirect = nothing; m_redirect = Redirect::nothing;
} }
@ -376,16 +375,15 @@ void ExtScript::updateValue()
QString strValue; QString strValue;
switch (m_redirect) { switch (m_redirect) {
case stdout2stderr: case Redirect::stdout2stderr:
break; break;
case stderr2stdout: case Redirect::stderr2stdout:
strValue = QString("%1\n%2").arg(qdebug).arg(qoutput); strValue = QString("%1\n%2").arg(qdebug).arg(qoutput);
break; break;
case swap: case Redirect::swap:
strValue = qdebug; strValue = qdebug;
break; break;
case nothing: case Redirect::nothing:
default:
strValue = qoutput; strValue = qoutput;
break; break;
} }

View File

@ -37,7 +37,7 @@ class ExtScript : public AbstractExtItem
Q_PROPERTY(Redirect redirect READ redirect WRITE setRedirect) Q_PROPERTY(Redirect redirect READ redirect WRITE setRedirect)
public: public:
enum Redirect { stdout2stderr = 0, nothing, stderr2stdout, swap }; enum class Redirect { stdout2stderr = 0, nothing, stderr2stdout, swap };
explicit ExtScript(QWidget *parent = nullptr, explicit ExtScript(QWidget *parent = nullptr,
const QString scriptName = QString(), const QString scriptName = QString(),
@ -56,7 +56,7 @@ public:
void setExecutable(const QString _executable = QString("/usr/bin/true")); void setExecutable(const QString _executable = QString("/usr/bin/true"));
void setFilters(const QStringList _filters = QStringList()); void setFilters(const QStringList _filters = QStringList());
void setPrefix(const QString _prefix = QString("")); void setPrefix(const QString _prefix = QString(""));
void setRedirect(const Redirect _redirect = nothing); void setRedirect(const Redirect _redirect = Redirect::nothing);
void setStrRedirect(const QString _redirect = QString("nothing")); void setStrRedirect(const QString _redirect = QString("nothing"));
// filters // filters
QString applyFilters(QString _value) const; QString applyFilters(QString _value) const;
@ -80,7 +80,7 @@ private:
QString m_executable = QString("/usr/bin/true"); QString m_executable = QString("/usr/bin/true");
QStringList m_filters = QStringList(); QStringList m_filters = QStringList();
QString m_prefix = QString(""); QString m_prefix = QString("");
Redirect m_redirect = nothing; Redirect m_redirect = Redirect::nothing;
// internal properties // internal properties
QVariantMap jsonFilters = QVariantMap(); QVariantMap jsonFilters = QVariantMap();
int times = 0; int times = 0;

View File

@ -50,9 +50,9 @@ GraphicalItem::GraphicalItem(QWidget *parent, const QString desktopName,
SLOT(changeValue(int))); SLOT(changeValue(int)));
connect(ui->comboBox_type, SIGNAL(currentIndexChanged(int)), this, connect(ui->comboBox_type, SIGNAL(currentIndexChanged(int)), this,
SLOT(changeCountState(int))); SLOT(changeCountState(int)));
connect(ui->pushButton_activeColor, SIGNAL(clicked()), this, connect(ui->toolButton_activeColor, SIGNAL(clicked()), this,
SLOT(changeColor())); SLOT(changeColor()));
connect(ui->pushButton_inactiveColor, SIGNAL(clicked()), this, connect(ui->toolButton_inactiveColor, SIGNAL(clicked()), this,
SLOT(changeColor())); SLOT(changeColor()));
} }
@ -102,22 +102,27 @@ QString GraphicalItem::image(const QVariant &value)
// paint // paint
switch (m_type) { switch (m_type) {
case Vertical: case Type::Vertical:
m_helper->paintVertical(converted); m_helper->paintVertical(converted);
// scale // scale
scale[1] = -2 * static_cast<int>(m_direction) + 1; scale[1] = -2 * static_cast<int>(m_direction) + 1;
break; break;
case Circle: case Type::Circle:
m_helper->paintCircle(converted); m_helper->paintCircle(converted);
// scale // scale
scale[0] = -2 * static_cast<int>(m_direction) + 1; scale[0] = -2 * static_cast<int>(m_direction) + 1;
break; break;
case Graph: case Type::Graph:
m_helper->paintGraph(converted); m_helper->paintGraph(converted);
// direction option is not recognized by this GI type scale[0] = -2 * static_cast<int>(m_direction) + 1;
scale[1] = -1;
break; break;
case Horizontal: case Type::Bars:
default: m_helper->paintBars(converted);
scale[0] = -2 * static_cast<int>(m_direction) + 1;
scale[1] = -1;
break;
case Type::Horizontal:
m_helper->paintHorizontal(converted); m_helper->paintHorizontal(converted);
// scale // scale
scale[0] = -2 * static_cast<int>(m_direction) + 1; scale[0] = -2 * static_cast<int>(m_direction) + 1;
@ -189,17 +194,19 @@ QString GraphicalItem::strType() const
{ {
QString value; QString value;
switch (m_type) { switch (m_type) {
case Vertical: case Type::Vertical:
value = QString("Vertical"); value = QString("Vertical");
break; break;
case Circle: case Type::Circle:
value = QString("Circle"); value = QString("Circle");
break; break;
case Graph: case Type::Graph:
value = QString("Graph"); value = QString("Graph");
break; break;
case Horizontal: case Type::Bars:
default: value = QString("Bars");
break;
case Type::Horizontal:
value = QString("Horizontal"); value = QString("Horizontal");
break; break;
} }
@ -218,11 +225,10 @@ QString GraphicalItem::strDirection() const
{ {
QString value; QString value;
switch (m_direction) { switch (m_direction) {
case RightToLeft: case Direction::RightToLeft:
value = QString("RightToLeft"); value = QString("RightToLeft");
break; break;
case LeftToRight: case Direction::LeftToRight:
default:
value = QString("LeftToRight"); value = QString("LeftToRight");
break; break;
} }
@ -315,7 +321,7 @@ void GraphicalItem::setMinValue(const float _value)
void GraphicalItem::setType(const Type _type) void GraphicalItem::setType(const Type _type)
{ {
qCDebug(LOG_LIB) << "Type" << _type; qCDebug(LOG_LIB) << "Type" << static_cast<int>(_type);
m_type = _type; m_type = _type;
} }
@ -326,19 +332,21 @@ void GraphicalItem::setStrType(const QString _type)
qCDebug(LOG_LIB) << "Type" << _type; qCDebug(LOG_LIB) << "Type" << _type;
if (_type == QString("Vertical")) if (_type == QString("Vertical"))
setType(Vertical); setType(Type::Vertical);
else if (_type == QString("Circle")) else if (_type == QString("Circle"))
setType(Circle); setType(Type::Circle);
else if (_type == QString("Graph")) else if (_type == QString("Graph"))
setType(Graph); setType(Type::Graph);
else if (_type == QString("Bars"))
setType(Type::Bars);
else else
setType(Horizontal); setType(Type::Horizontal);
} }
void GraphicalItem::setDirection(const Direction _direction) void GraphicalItem::setDirection(const Direction _direction)
{ {
qCDebug(LOG_LIB) << "Direction" << _direction; qCDebug(LOG_LIB) << "Direction" << static_cast<int>(_direction);
m_direction = _direction; m_direction = _direction;
} }
@ -349,9 +357,9 @@ void GraphicalItem::setStrDirection(const QString _direction)
qCDebug(LOG_LIB) << "Direction" << _direction; qCDebug(LOG_LIB) << "Direction" << _direction;
if (_direction == QString("RightToLeft")) if (_direction == QString("RightToLeft"))
setDirection(RightToLeft); setDirection(Direction::RightToLeft);
else else
setDirection(LeftToRight); setDirection(Direction::LeftToRight);
} }
@ -370,7 +378,13 @@ void GraphicalItem::setUsedKeys(const QStringList _usedKeys)
qCDebug(LOG_LIB) << "Used keys" << _usedKeys; qCDebug(LOG_LIB) << "Used keys" << _usedKeys;
// remove dubs // remove dubs
m_usedKeys = QSet<QString>::fromList(_usedKeys).toList(); // HACK converting to set may break order
m_usedKeys.clear();
for (auto key : _usedKeys) {
if (m_usedKeys.contains(key))
continue;
m_usedKeys.append(key);
}
} }
@ -415,9 +429,18 @@ void GraphicalItem::readConfiguration()
.toString()); .toString());
setHeight(settings.value(QString("X-AW-Height"), m_height).toInt()); setHeight(settings.value(QString("X-AW-Height"), m_height).toInt());
setWidth(settings.value(QString("X-AW-Width"), m_width).toInt()); setWidth(settings.value(QString("X-AW-Width"), m_width).toInt());
// api == 2 // api == 5
if (apiVersion() < 2) if (apiVersion() < 5) {
setNumber(bar().remove(QString("bar")).toInt()); QString prefix;
prefix = m_activeColor.startsWith(QString("/"))
? QString("file://%1")
: QString("color://%1");
m_activeColor = prefix.arg(m_activeColor);
prefix = m_inactiveColor.startsWith(QString("/"))
? QString("file://%1")
: QString("color://%1");
m_inactiveColor = prefix.arg(m_inactiveColor);
}
settings.endGroup(); settings.endGroup();
} }
@ -438,6 +461,7 @@ int GraphicalItem::showConfiguration(const QVariant args)
ui->lineEdit_name->setText(name()); ui->lineEdit_name->setText(name());
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
ui->label_numberValue->setText(QString("%1").arg(number()));
ui->checkBox_custom->setChecked(m_custom); ui->checkBox_custom->setChecked(m_custom);
ui->comboBox_value->addItems(tags); ui->comboBox_value->addItems(tags);
if (m_custom) { if (m_custom) {
@ -449,12 +473,16 @@ int GraphicalItem::showConfiguration(const QVariant args)
ui->doubleSpinBox_max->setValue(m_maxValue); ui->doubleSpinBox_max->setValue(m_maxValue);
ui->doubleSpinBox_min->setValue(m_minValue); ui->doubleSpinBox_min->setValue(m_minValue);
ui->spinBox_count->setValue(m_count); ui->spinBox_count->setValue(m_count);
ui->checkBox_activeCheck->setChecked( if (m_helper->isColor(m_activeColor))
m_activeColor.startsWith(QString("/"))); ui->comboBox_activeImageType->setCurrentIndex(0);
ui->pushButton_activeColor->setText(m_activeColor); else
ui->checkBox_inactiveCheck->setChecked( ui->comboBox_activeImageType->setCurrentIndex(1);
m_inactiveColor.startsWith(QString("/"))); ui->lineEdit_activeColor->setText(m_activeColor);
ui->pushButton_inactiveColor->setText(m_inactiveColor); if (m_helper->isColor(m_inactiveColor))
ui->comboBox_inactiveImageType->setCurrentIndex(0);
else
ui->comboBox_inactiveImageType->setCurrentIndex(1);
ui->lineEdit_inactiveColor->setText(m_inactiveColor);
ui->comboBox_type->setCurrentIndex(static_cast<int>(m_type)); ui->comboBox_type->setCurrentIndex(static_cast<int>(m_type));
ui->comboBox_direction->setCurrentIndex(static_cast<int>(m_direction)); ui->comboBox_direction->setCurrentIndex(static_cast<int>(m_direction));
ui->spinBox_height->setValue(m_height); ui->spinBox_height->setValue(m_height);
@ -477,8 +505,8 @@ int GraphicalItem::showConfiguration(const QVariant args)
: ui->comboBox_value->currentText()); : ui->comboBox_value->currentText());
setMaxValue(ui->doubleSpinBox_max->value()); setMaxValue(ui->doubleSpinBox_max->value());
setMinValue(ui->doubleSpinBox_min->value()); setMinValue(ui->doubleSpinBox_min->value());
setActiveColor(ui->pushButton_activeColor->text().remove(QChar('&'))); setActiveColor(ui->lineEdit_activeColor->text());
setInactiveColor(ui->pushButton_inactiveColor->text().remove(QChar('&'))); setInactiveColor(ui->lineEdit_inactiveColor->text());
setStrType(ui->comboBox_type->currentText()); setStrType(ui->comboBox_type->currentText());
setStrDirection(ui->comboBox_direction->currentText()); setStrDirection(ui->comboBox_direction->currentText());
setHeight(ui->spinBox_height->value()); setHeight(ui->spinBox_height->value());
@ -518,22 +546,20 @@ void GraphicalItem::writeConfiguration() const
void GraphicalItem::changeColor() void GraphicalItem::changeColor()
{ {
QString outputColor; QLineEdit *lineEdit;
bool imageRequired = sender() == ui->pushButton_activeColor int state;
? ui->checkBox_activeCheck->isChecked() if (sender() == ui->toolButton_activeColor) {
: ui->checkBox_inactiveCheck->isChecked(); lineEdit = ui->lineEdit_activeColor;
state = ui->comboBox_activeImageType->currentIndex();
if (imageRequired) {
QString path = static_cast<QPushButton *>(sender())->text();
QString directory = QFileInfo(path).absolutePath();
outputColor = QFileDialog::getOpenFileName(
this, tr("Select path"), directory,
tr("Images (*.png *.bpm *.jpg);;All files (*.*)"));
qCInfo(LOG_LIB) << "Selected path" << outputColor;
} else { } else {
QColor color = m_helper->stringToColor( lineEdit = ui->lineEdit_inactiveColor;
(static_cast<QPushButton *>(sender()))->text()); state = ui->comboBox_inactiveImageType->currentIndex();
}
qCInfo(LOG_LIB) << "Using state" << state << "and lineEdit" << lineEdit;
QString outputColor;
if (state == 0) {
QColor color = m_helper->stringToColor(lineEdit->text());
QColor newColor = QColorDialog::getColor( QColor newColor = QColorDialog::getColor(
color, this, tr("Select color"), QColorDialog::ShowAlphaChannel); color, this, tr("Select color"), QColorDialog::ShowAlphaChannel);
if (!newColor.isValid()) if (!newColor.isValid())
@ -546,10 +572,23 @@ void GraphicalItem::changeColor()
colorText.append(QString("%1").arg(newColor.blue())); colorText.append(QString("%1").arg(newColor.blue()));
colorText.append(QString("%1").arg(newColor.alpha())); colorText.append(QString("%1").arg(newColor.alpha()));
outputColor = colorText.join(QChar(',')); outputColor = QString("color://%1").arg(colorText.join(QChar(',')));
} else if (state == 1) {
QString path = lineEdit->text();
QString directory = QFileInfo(path).absolutePath();
outputColor = QFileDialog::getOpenFileUrl(
this, tr("Select path"), directory,
tr("Images (*.png *.bpm *.jpg);;All files (*.*)"))
.toString();
qCInfo(LOG_LIB) << "Selected path" << outputColor;
} }
return static_cast<QPushButton *>(sender())->setText(outputColor); if (outputColor.isEmpty()) {
qCWarning(LOG_LIB) << "Empty color selected, skipping";
return;
}
return lineEdit->setText(outputColor);
} }
@ -596,18 +635,24 @@ void GraphicalItem::translate()
{ {
ui->label_name->setText(i18n("Name")); ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_count->setText(i18n("Points count")); ui->label_number->setText(i18n("Tag"));
ui->checkBox_custom->setText(i18n("Use custom formula")); ui->checkBox_custom->setText(i18n("Use custom formula"));
ui->label_value->setText(i18n("Value")); ui->label_value->setText(i18n("Value"));
ui->label_customValue->setText(i18n("Value")); ui->label_customValue->setText(i18n("Value"));
ui->label_max->setText(i18n("Max value")); ui->label_max->setText(i18n("Max value"));
ui->label_min->setText(i18n("Min value")); ui->label_min->setText(i18n("Min value"));
ui->checkBox_activeCheck->setText(i18n("Use image for active")); ui->label_activeImageType->setText(i18n("Active image type"));
ui->label_activeColor->setText(i18n("Active color")); ui->label_inactiveImageType->setText(i18n("Inctive image type"));
ui->checkBox_inactiveCheck->setText(i18n("Use image for inactive"));
ui->label_inactiveColor->setText(i18n("Inactive color"));
ui->label_type->setText(i18n("Type")); ui->label_type->setText(i18n("Type"));
ui->label_count->setText(i18n("Points count"));
ui->label_direction->setText(i18n("Direction")); ui->label_direction->setText(i18n("Direction"));
ui->label_height->setText(i18n("Height")); ui->label_height->setText(i18n("Height"));
ui->label_width->setText(i18n("Width")); ui->label_width->setText(i18n("Width"));
ui->comboBox_activeImageType->clear();
ui->comboBox_activeImageType->addItem(i18n("color"));
ui->comboBox_activeImageType->addItem(i18n("image"));
ui->comboBox_inactiveImageType->clear();
ui->comboBox_inactiveImageType->addItem(i18n("color"));
ui->comboBox_inactiveImageType->addItem(i18n("image"));
} }

View File

@ -49,8 +49,8 @@ class GraphicalItem : public AbstractExtItem
Q_PROPERTY(int width READ width WRITE setWidth) Q_PROPERTY(int width READ width WRITE setWidth)
public: public:
enum Direction { LeftToRight = 0, RightToLeft }; enum class Direction { LeftToRight = 0, RightToLeft = 1 };
enum Type { Horizontal = 0, Vertical, Circle, Graph }; enum class Type { Horizontal = 0, Vertical, Circle, Graph, Bars };
explicit GraphicalItem(QWidget *parent = nullptr, explicit GraphicalItem(QWidget *parent = nullptr,
const QString desktopName = QString(), const QString desktopName = QString(),
@ -76,15 +76,16 @@ public:
QString uniq() const; QString uniq() const;
// set methods // set methods
void setBar(const QString _bar = QString("cpu")); void setBar(const QString _bar = QString("cpu"));
void setActiveColor(const QString _color = QString("0,0,0,130")); void setActiveColor(const QString _color = QString("color://0,0,0,130"));
void setCount(const int _count = 100); void setCount(const int _count = 100);
void setCustom(const bool _custom = false); void setCustom(const bool _custom = false);
void setInactiveColor(const QString _color = QString("255,255,255,130")); void setInactiveColor(const QString _color
= QString("color://255,255,255,130"));
void setMinValue(const float _value = 0.0); void setMinValue(const float _value = 0.0);
void setMaxValue(const float _value = 100.0); void setMaxValue(const float _value = 100.0);
void setType(const Type _type = Horizontal); void setType(const Type _type = Type::Horizontal);
void setStrType(const QString _type = QString("Horizontal")); void setStrType(const QString _type = QString("Horizontal"));
void setDirection(const Direction _direction = LeftToRight); void setDirection(const Direction _direction = Direction::LeftToRight);
void setStrDirection(const QString _direction = QString("LeftToRight")); void setStrDirection(const QString _direction = QString("LeftToRight"));
void setHeight(const int _height = 100); void setHeight(const int _height = 100);
void setUsedKeys(const QStringList _usedKeys = QStringList()); void setUsedKeys(const QStringList _usedKeys = QStringList());
@ -112,12 +113,12 @@ private:
QString m_bar = QString("cpu"); QString m_bar = QString("cpu");
int m_count = 100; int m_count = 100;
bool m_custom = false; bool m_custom = false;
QString m_activeColor; QString m_activeColor = QString("color://0,0,0,130");
QString m_inactiveColor; QString m_inactiveColor = QString("color://255,255,255,130");
float m_minValue = 0.0f; float m_minValue = 0.0f;
float m_maxValue = 100.0f; float m_maxValue = 100.0f;
Type m_type = Horizontal; Type m_type = Type::Horizontal;
Direction m_direction = LeftToRight; Direction m_direction = Direction::LeftToRight;
int m_height = 100; int m_height = 100;
QStringList m_usedKeys; QStringList m_usedKeys;
int m_width = 100; int m_width = 100;

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>416</width> <width>416</width>
<height>537</height> <height>569</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -60,6 +60,27 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QHBoxLayout" name="layout_number">
<item>
<widget class="QLabel" name="label_number">
<property name="text">
<string>Tag</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_numberValue">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item> <item>
<widget class="Line" name="line_2"> <widget class="Line" name="line_2">
<property name="orientation"> <property name="orientation">
@ -100,16 +121,7 @@
<item> <item>
<widget class="QWidget" name="widget_value" native="true"> <widget class="QWidget" name="widget_value" native="true">
<layout class="QHBoxLayout" name="layout_value"> <layout class="QHBoxLayout" name="layout_value">
<property name="leftMargin"> <property name="margin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
@ -135,16 +147,7 @@
<item> <item>
<widget class="QWidget" name="widget_customValue" native="true"> <widget class="QWidget" name="widget_customValue" native="true">
<layout class="QHBoxLayout" name="layout_customValue"> <layout class="QHBoxLayout" name="layout_customValue">
<property name="leftMargin"> <property name="margin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
@ -219,134 +222,74 @@
</widget> </widget>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="layout_activeCheck"> <layout class="QHBoxLayout" name="layout_activeImageType">
<item> <item>
<spacer name="spacer_activeCheck"> <widget class="QLabel" name="label_activeImageType">
<property name="orientation"> <property name="text">
<enum>Qt::Horizontal</enum> <string>Active image type</string>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="alignment">
<size> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<width>40</width>
<height>20</height>
</size>
</property> </property>
</spacer> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="checkBox_activeCheck"> <widget class="QComboBox" name="comboBox_activeImageType"/>
<property name="sizePolicy"> </item>
<sizepolicy hsizetype="Expanding" vsizetype="Fixed"> </layout>
<horstretch>0</horstretch> </item>
<verstretch>0</verstretch> <item>
</sizepolicy> <layout class="QHBoxLayout" name="layout_activeColorButton">
<item>
<widget class="QLineEdit" name="lineEdit_activeColor">
<property name="readOnly">
<bool>true</bool>
</property> </property>
</widget>
</item>
<item>
<widget class="QToolButton" name="toolButton_activeColor">
<property name="text"> <property name="text">
<string>Use image for active</string> <string>...</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item> <item>
<widget class="QWidget" name="widget_activeColor" native="true"> <layout class="QHBoxLayout" name="layout_inactiveImageType">
<layout class="QHBoxLayout" name="layout_activeColor">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_activeColor">
<property name="text">
<string>Active color</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_activeColor">
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="layout_inactiveCheck">
<item> <item>
<spacer name="spacer_inactiveCheck"> <widget class="QLabel" name="label_inactiveImageType">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="checkBox_inactiveCheck">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text"> <property name="text">
<string>Use image for inactive</string> <string>Inactive image type</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QComboBox" name="comboBox_inactiveImageType"/>
</item>
</layout> </layout>
</item> </item>
<item> <item>
<widget class="QWidget" name="widget_inactiveColor" native="true"> <layout class="QHBoxLayout" name="layout_inactiveColorButton">
<layout class="QHBoxLayout" name="layout_inactiveColor"> <item>
<property name="leftMargin"> <widget class="QLineEdit" name="lineEdit_inactiveColor">
<number>0</number> <property name="readOnly">
</property> <bool>true</bool>
<property name="topMargin"> </property>
<number>0</number> </widget>
</property> </item>
<property name="rightMargin"> <item>
<number>0</number> <widget class="QToolButton" name="toolButton_inactiveColor">
</property> <property name="text">
<property name="bottomMargin"> <string>...</string>
<number>0</number> </property>
</property> </widget>
<item> </item>
<widget class="QLabel" name="label_inactiveColor"> </layout>
<property name="text">
<string>Inactive color</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_inactiveColor">
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
</layout>
</widget>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="layout_type"> <layout class="QHBoxLayout" name="layout_type">
@ -382,6 +325,11 @@
<string notr="true">Graph</string> <string notr="true">Graph</string>
</property> </property>
</item> </item>
<item>
<property name="text">
<string notr="true">Bars</string>
</property>
</item>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -417,16 +365,7 @@
<item> <item>
<widget class="QWidget" name="widget_count" native="true"> <widget class="QWidget" name="widget_count" native="true">
<layout class="QHBoxLayout" name="layout_count"> <layout class="QHBoxLayout" name="layout_count">
<property name="leftMargin"> <property name="margin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
<item> <item>

View File

@ -50,29 +50,29 @@ void GraphicalItemHelper::setParameters(const QString active,
// put images to pens if any otherwise set pen colors // put images to pens if any otherwise set pen colors
// Images resize to content here as well // Images resize to content here as well
if (active.startsWith(QString("/"))) { if (isColor(active)) {
m_activePen.setBrush(QBrush(stringToColor(active)));
} else {
qCInfo(LOG_LIB) << "Found path, trying to load Pixmap from" << active; qCInfo(LOG_LIB) << "Found path, trying to load Pixmap from" << active;
QPixmap pixmap = QPixmap(active); QPixmap pixmap = QPixmap(active);
if (pixmap.isNull()) { if (pixmap.isNull()) {
qCInfo(LOG_LIB) << "Invalid pixmap found" << active; qCInfo(LOG_LIB) << "Invalid pixmap found" << active;
m_activePen.setColor(QColor(0, 0, 0, 130)); m_activePen.setBrush(QBrush(QColor(0, 0, 0, 130)));
} else { } else {
m_activePen.setBrush(QBrush(pixmap.scaled(width, height))); m_activePen.setBrush(QBrush(pixmap.scaled(width, height)));
} }
} else {
m_activePen.setColor(stringToColor(active));
} }
if (inactive.startsWith(QString("/"))) { if (isColor(inactive)) {
m_inactivePen.setBrush(QBrush(stringToColor(inactive)));
} else {
qCInfo(LOG_LIB) << "Found path, trying to load Pixmap from" << inactive; qCInfo(LOG_LIB) << "Found path, trying to load Pixmap from" << inactive;
QPixmap pixmap = QPixmap(inactive); QPixmap pixmap = QPixmap(inactive);
if (pixmap.isNull()) { if (pixmap.isNull()) {
qCInfo(LOG_LIB) << "Invalid pixmap found" << inactive; qCInfo(LOG_LIB) << "Invalid pixmap found" << inactive;
m_inactivePen.setColor(QColor(255, 255, 255, 130)); m_inactivePen.setBrush(QBrush(QColor(255, 255, 255, 130)));
} else { } else {
m_inactivePen.setBrush(QBrush(pixmap.scaled(width, height))); m_inactivePen.setBrush(QBrush(pixmap.scaled(width, height)));
} }
} else {
m_inactivePen.setColor(stringToColor(inactive));
} }
m_width = width; m_width = width;
m_height = height; m_height = height;
@ -80,6 +80,30 @@ void GraphicalItemHelper::setParameters(const QString active,
} }
void GraphicalItemHelper::paintBars(const float &value)
{
qCDebug(LOG_LIB) << "Paint with value" << value;
// refresh background image
m_scene->setBackgroundBrush(m_inactivePen.brush());
storeValue(value);
// default norms
float normX
= static_cast<float>(m_width) / static_cast<float>(m_values.count());
float normY = static_cast<float>(m_height - 1);
// paint graph
for (int i = 0; i < m_values.count(); i++) {
float x = i * normX;
float y = 0.5f;
float width = normX;
float height = m_values.at(i) * normY + 0.5f;
m_scene->addRect(x, y, width, height, m_activePen, m_activePen.brush());
}
}
void GraphicalItemHelper::paintCircle(const float &percent) void GraphicalItemHelper::paintCircle(const float &percent)
{ {
qCDebug(LOG_LIB) << "Paint with percent" << percent; qCDebug(LOG_LIB) << "Paint with percent" << percent;
@ -120,9 +144,9 @@ void GraphicalItemHelper::paintGraph(const float &value)
for (int i = 0; i < m_values.count() - 1; i++) { for (int i = 0; i < m_values.count() - 1; i++) {
// some magic here // some magic here
float x1 = i * normX; float x1 = i * normX;
float y1 = -fabs(m_values.at(i)) * normY + 0.5f; float y1 = m_values.at(i) * normY + 0.5f;
float x2 = (i + 1) * normX; float x2 = (i + 1) * normX;
float y2 = -fabs(m_values.at(i + 1)) * normY + 0.5f; float y2 = m_values.at(i + 1) * normY + 0.5f;
m_scene->addLine(x1, y1, x2, y2, m_activePen); m_scene->addLine(x1, y1, x2, y2, m_activePen);
} }
} }
@ -171,14 +195,25 @@ float GraphicalItemHelper::getPercents(const float &value, const float &min,
} }
bool GraphicalItemHelper::isColor(const QString &input)
{
qCDebug(LOG_LIB) << "Define input type in" << input;
return input.startsWith(QString("color://"));
}
QColor GraphicalItemHelper::stringToColor(const QString &color) QColor GraphicalItemHelper::stringToColor(const QString &color)
{ {
qCDebug(LOG_LIB) << "Color" << color; qCDebug(LOG_LIB) << "Color" << color;
QColor qColor;
QStringList listColor = color.split(QChar(',')); QStringList listColor = color.split(QChar(','));
while (listColor.count() < 4) while (listColor.count() < 4)
listColor.append(QString("0")); listColor.append(QString("0"));
// remove prefix
listColor[0].remove(QString("color://"));
// init color
QColor qColor;
qColor.setRed(listColor.at(0).toInt()); qColor.setRed(listColor.at(0).toInt());
qColor.setGreen(listColor.at(1).toInt()); qColor.setGreen(listColor.at(1).toInt());
qColor.setBlue(listColor.at(2).toInt()); qColor.setBlue(listColor.at(2).toInt());

View File

@ -35,12 +35,14 @@ public:
void setParameters(const QString active, const QString inactive, void setParameters(const QString active, const QString inactive,
const int width, const int height, const int count); const int width, const int height, const int count);
// paint methods // paint methods
void paintBars(const float &value);
void paintCircle(const float &percent); void paintCircle(const float &percent);
void paintGraph(const float &value); void paintGraph(const float &value);
void paintHorizontal(const float &percent); void paintHorizontal(const float &percent);
void paintVertical(const float &percent); void paintVertical(const float &percent);
// additional conversion methods // additional conversion methods
float getPercents(const float &value, const float &min, const float &max); float getPercents(const float &value, const float &min, const float &max);
bool isColor(const QString &input);
QColor stringToColor(const QString &color); QColor stringToColor(const QString &color);
private: private:

View File

@ -24,7 +24,7 @@
// configuraion // configuraion
// graphical items api version // graphical items api version
#define AWGIAPI 4 #define AWGIAPI 5
// extquotes api version // extquotes api version
#define AWEQAPI 3 #define AWEQAPI 3
// extscript api version // extscript api version