From a33597983052fbf22c49525c387c020b8d460ec9 Mon Sep 17 00:00:00 2001 From: arcan1s Date: Sun, 16 Nov 2014 13:33:09 +0300 Subject: [PATCH] implement grapicalitem settings --- sources/awesome-widget/advanced.ui | 78 ++++- sources/awesome-widget/awesome-widget.cpp | 2 +- sources/awesome-widget/awesome-widget.h | 2 + sources/awesome-widget/configuration.cpp | 58 ++++ sources/awesome-widget/graphicalitem.cpp | 76 ++++- sources/awesome-widget/graphicalitem.h | 18 +- sources/awesome-widget/graphicalitem.ui | 287 ++++++++++++++++ sources/graphicalitem.cpp | 384 ++++++++++++++++++++++ sources/graphicalitem.h | 87 +++++ 9 files changed, 969 insertions(+), 23 deletions(-) create mode 100644 sources/awesome-widget/graphicalitem.ui create mode 100644 sources/graphicalitem.cpp create mode 100644 sources/graphicalitem.h diff --git a/sources/awesome-widget/advanced.ui b/sources/awesome-widget/advanced.ui index 88a8ee4..43b3018 100644 --- a/sources/awesome-widget/advanced.ui +++ b/sources/awesome-widget/advanced.ui @@ -41,9 +41,9 @@ 0 - -126 + -225 677 - 702 + 801 @@ -74,6 +74,9 @@ Custom time format + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + @@ -96,9 +99,6 @@ $m - minutes w\o zero $ss - seconds $s - seconds w\o zero - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - @@ -116,6 +116,9 @@ $s - seconds w\o zero Custom uptime format + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + @@ -128,9 +131,6 @@ $h - uptime hours without zero $mm - uptime minutes $m - uptime minutes without zero - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - @@ -148,6 +148,9 @@ $m - uptime minutes without zero Temperature units + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + @@ -376,6 +379,9 @@ $m - uptime minutes without zero AC online tag + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + @@ -386,9 +392,6 @@ $m - uptime minutes without zero - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - @@ -406,6 +409,9 @@ $m - uptime minutes without zero AC offline tag + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + @@ -416,13 +422,57 @@ $m - uptime minutes without zero - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - + + + + + + + + + 200 + 0 + + + + Bars + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Add + + + + + + + + + + diff --git a/sources/awesome-widget/awesome-widget.cpp b/sources/awesome-widget/awesome-widget.cpp index b016eb4..7405ad7 100644 --- a/sources/awesome-widget/awesome-widget.cpp +++ b/sources/awesome-widget/awesome-widget.cpp @@ -429,7 +429,7 @@ void AwesomeWidget::getGraphicalItems() if (names.contains(files[j])) continue; if (debug) qDebug() << PDEBUG << ":" << "Found file" << files[j] << "in" << dirs[i]; names.append(files[j]); - GraphicalItem *item = new GraphicalItem(files[j], dirs, debug); + GraphicalItem *item = new GraphicalItem(0, files[j], dirs, debug); graphicalItems[item->getName() + item->getBar()] = item; } } diff --git a/sources/awesome-widget/awesome-widget.h b/sources/awesome-widget/awesome-widget.h index 50fe366..fa6999a 100644 --- a/sources/awesome-widget/awesome-widget.h +++ b/sources/awesome-widget/awesome-widget.h @@ -79,10 +79,12 @@ private slots: void reinit(); void replyRecieved(QNetworkReply *reply); // configuration interface + void addBar(); void addCustomScript(); void addNewPkgCommand(QTableWidgetItem *item); void contextMenuCustomCommand(const QPoint pos); void contextMenuPkgCommand(const QPoint pos); + void editBar(QListWidgetItem *item); void editCustomCommand(const int row, const int column); void editFanItem(QListWidgetItem *item); void editHddItem(QListWidgetItem *item); diff --git a/sources/awesome-widget/configuration.cpp b/sources/awesome-widget/configuration.cpp index c8a1ebd..f31e3ec 100644 --- a/sources/awesome-widget/configuration.cpp +++ b/sources/awesome-widget/configuration.cpp @@ -28,6 +28,7 @@ #include #include +#include #include #include #include @@ -297,6 +298,9 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent) Qt::MatchFixedString)); uiAdvancedConfig.lineEdit_acOnline->setText(configuration[QString("acOnline")]); uiAdvancedConfig.lineEdit_acOffline->setText(configuration[QString("acOffline")]); + uiAdvancedConfig.listWidget_bars->clear(); + for (int i=0; iaddItem(new QListWidgetItem(graphicalItems.keys()[i])); if (configuration[QString("checkUpdates")].toInt() == 0) uiAdvancedConfig.checkBox_updates->setCheckState(Qt::Unchecked); else @@ -473,6 +477,8 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent) this, SLOT(editMountItem(QListWidgetItem *))); connect(uiAdvancedConfig.listWidget_tempDevice, SIGNAL(itemActivated(QListWidgetItem *)), this, SLOT(editTempItem(QListWidgetItem *))); + connect(uiAdvancedConfig.listWidget_bars, SIGNAL(itemActivated(QListWidgetItem *)), + this, SLOT(editBar(QListWidgetItem *))); connect(uiDEConfig.tableWidget_customCommand, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(editCustomCommand(int, int))); connect(uiDEConfig.tableWidget_customCommand, SIGNAL(customContextMenuRequested(QPoint)), @@ -481,6 +487,7 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent) this, SLOT(addNewPkgCommand(QTableWidgetItem *))); connect(uiDEConfig.tableWidget_pkgCommand, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenuPkgCommand(QPoint))); + connect(uiAdvancedConfig.pushButton_bars, SIGNAL(clicked(bool)), this, SLOT(addBar())); connect(uiWidConfig.pushButton_tags, SIGNAL(clicked(bool)), this, SLOT(setFormating())); connect(uiWidConfig.pushButton_br, SIGNAL(clicked(bool)), this, SLOT(setFormating())); connect(uiWidConfig.pushButton_font, SIGNAL(clicked(bool)), this, SLOT(setFontFormating())); @@ -737,6 +744,41 @@ void AwesomeWidget::configChanged() } +void AwesomeWidget::addBar() +{ + if (debug) qDebug() << PDEBUG; + + int number = 0; + while (true) { + bool exit = true; + for (int i=0; igetName() == QString("bar%1").arg(number)) { + number++; + exit = false; + break; + } + if (exit) break; + } + QStringList dirs = KGlobal::dirs()->findDirs("data", "plasma_applet_awesome-widget/desktops"); + bool ok; + QString name = QInputDialog::getText(0, i18n("Enter file name"), + i18n("File name"), QLineEdit::Normal, + QString(""), &ok); + if ((!ok) || (name.isEmpty())) return; + QStringList bars; + bars.append(keys.filter((QRegExp(QString("cpu(?!cl).*"))))); + bars.append(keys.filter((QRegExp(QString("gpu"))))); + bars.append(keys.filter((QRegExp(QString("mem"))))); + bars.append(keys.filter((QRegExp(QString("swap"))))); + bars.append(keys.filter((QRegExp(QString("hdd[0-9].*"))))); + bars.append(keys.filter((QRegExp(QString("bat.*"))))); + + GraphicalItem *item = new GraphicalItem(0, name, dirs, debug); + item->setName(QString("bar%1").arg(number)); + item->showConfiguration(bars); +} + + void AwesomeWidget::addCustomScript() { if (debug) qDebug() << PDEBUG; @@ -842,6 +884,22 @@ void AwesomeWidget::contextMenuPkgCommand(const QPoint pos) } +void AwesomeWidget::editBar(QListWidgetItem *item) +{ + if (debug) qDebug() << PDEBUG; + + QStringList bars; + bars.append(keys.filter((QRegExp(QString("cpu(?!cl).*"))))); + bars.append(keys.filter((QRegExp(QString("gpu$"))))); + bars.append(keys.filter((QRegExp(QString("mem$"))))); + bars.append(keys.filter((QRegExp(QString("swap$"))))); + bars.append(keys.filter((QRegExp(QString("hdd[0-9].*"))))); + bars.append(keys.filter((QRegExp(QString("bat.*"))))); + + graphicalItems[item->text()]->showConfiguration(bars); +} + + void AwesomeWidget::editCustomCommand(const int row, const int column) { Q_UNUSED(column); diff --git a/sources/awesome-widget/graphicalitem.cpp b/sources/awesome-widget/graphicalitem.cpp index 8469103..432382b 100644 --- a/sources/awesome-widget/graphicalitem.cpp +++ b/sources/awesome-widget/graphicalitem.cpp @@ -16,8 +16,10 @@ ***************************************************************************/ #include "graphicalitem.h" +#include "ui_graphicalitem.h" #include +#include #include #include #include @@ -28,18 +30,26 @@ #include -GraphicalItem::GraphicalItem(const QString desktopName, const QStringList directories, const bool debugCmd) - : fileName(desktopName), +GraphicalItem::GraphicalItem(QWidget *parent, const QString desktopName, const QStringList directories, const bool debugCmd) + : QDialog(parent), + fileName(desktopName), dirs(directories), - debug(debugCmd) + debug(debugCmd), + ui(new Ui::GraphicalItem) { readConfiguration(); + + ui->setupUi(this); + connect(ui->pushButton_activeColor, SIGNAL(clicked()), this, SLOT(changeColor())); + connect(ui->pushButton_inactiveColor, SIGNAL(clicked()), this, SLOT(changeColor())); } GraphicalItem::~GraphicalItem() { if (debug) qDebug() << PDEBUG; + + delete ui; } @@ -321,6 +331,47 @@ void GraphicalItem::readConfiguration() } +void GraphicalItem::showConfiguration(const QStringList tags) +{ + if (debug) qDebug() << PDEBUG; + + ui->label_nameValue->setText(_name); + ui->lineEdit_comment->setText(_comment); + ui->comboBox_value->addItems(tags); + ui->comboBox_value->addItem(_bar); + ui->comboBox_value->setCurrentIndex(ui->comboBox_value->count()-1); + ui->pushButton_activeColor->setText(QString("%1,%2,%3,%4") + .arg(_activeColor.red()).arg(_activeColor.green()) + .arg(_activeColor.blue()).arg(_activeColor.alpha())); + ui->pushButton_inactiveColor->setText(QString("%1,%2,%3,%4") + .arg(_inactiveColor.red()).arg(_inactiveColor.green()) + .arg(_inactiveColor.blue()).arg(_inactiveColor.alpha())); + ui->comboBox_type->setCurrentIndex((int)_type); + ui->comboBox_direction->setCurrentIndex((int)_direction); + ui->spinBox_height->setValue(_height); + ui->spinBox_width->setValue(_width); + + int ret = exec(); + if (ret == 0) { + QStringList colorText; + setName(ui->label_nameValue->text()); + setComment(ui->label_comment->text()); + setBar(ui->comboBox_value->currentText()); + colorText = ui->pushButton_activeColor->text().split(QChar(',')); + setActiveColor(QColor(colorText[0].toInt(), colorText[1].toInt(), + colorText[2].toInt(), colorText[3].toInt())); + colorText = ui->pushButton_inactiveColor->text().split(QChar(',')); + setInactiveColor(QColor(colorText[0].toInt(), colorText[1].toInt(), + colorText[2].toInt(), colorText[3].toInt())); + setType(ui->comboBox_type->currentText()); + setDirection(ui->comboBox_direction->currentText()); + setHeight(ui->spinBox_height->value()); + setWidth(ui->spinBox_width->value()); + writeConfiguration(); + } +} + + void GraphicalItem::tryDelete() { if (debug) qDebug() << PDEBUG; @@ -376,3 +427,22 @@ void GraphicalItem::writeConfiguration() settings.endGroup(); settings.sync(); } + + +void GraphicalItem::changeColor() +{ + if (debug) qDebug() << PDEBUG; + + QStringList colorText = ((QPushButton *)sender())->text().split(QChar(',')); + QColor color = QColor(colorText[0].toInt(), colorText[1].toInt(), + colorText[2].toInt(), colorText[3].toInt()); + QColor newColor = QColorDialog::getColor(color, 0, i18n("Select color"), + QColorDialog::ShowAlphaChannel); + + colorText.clear(); + colorText.append(QString("%1").arg(newColor.red())); + colorText.append(QString("%1").arg(newColor.green())); + colorText.append(QString("%1").arg(newColor.blue())); + colorText.append(QString("%1").arg(newColor.alpha())); + ((QPushButton *)sender())->setText(colorText.join(QChar(','))); +} diff --git a/sources/awesome-widget/graphicalitem.h b/sources/awesome-widget/graphicalitem.h index dad320f..5a02a8a 100644 --- a/sources/awesome-widget/graphicalitem.h +++ b/sources/awesome-widget/graphicalitem.h @@ -19,16 +19,19 @@ #define GRAPHICALITEM_H #include -#include +#include +namespace Ui { +class GraphicalItem; +} -class GraphicalItem : public QObject +class GraphicalItem : public QDialog { Q_OBJECT public: enum Direction { - RightToLeft = -1, + RightToLeft = 0, LeftToRight = 1 }; enum Type { @@ -37,7 +40,8 @@ public: Circle }; - GraphicalItem(const QString desktopName, const QStringList directories, const bool debugCmd = false); + explicit GraphicalItem(QWidget *parent = 0, const QString desktopName = QString(), + const QStringList directories = QStringList(), const bool debugCmd = false); ~GraphicalItem(); QString getImage(const float value); // get methods @@ -63,13 +67,18 @@ public: public slots: void readConfiguration(); + void showConfiguration(const QStringList tags = QStringList()); void tryDelete(); void writeConfiguration(); +private slots: + void changeColor(); + private: QString fileName; QStringList dirs; bool debug; + Ui::GraphicalItem *ui; // properties QString _name = QString("none"); QString _comment = QString("empty"); @@ -82,5 +91,4 @@ private: int _width = 100; }; - #endif /* GRAPHICALITEM_H */ diff --git a/sources/awesome-widget/graphicalitem.ui b/sources/awesome-widget/graphicalitem.ui new file mode 100644 index 0000000..1678c71 --- /dev/null +++ b/sources/awesome-widget/graphicalitem.ui @@ -0,0 +1,287 @@ + + + GraphicalItem + + + + 0 + 0 + 408 + 329 + + + + Configuration + + + + + + + + Name + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + + + + Comment + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + Value + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + true + + + + + + + + + + + Active color + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + + + + Inactive color + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + + + + Type + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + Horizontal + + + + + Vertical + + + + + Circle + + + + + + + + + + + + Direction + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + LeftToRight + + + + + RightToLeft + + + + + + + + + + + + Height + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + 2000 + + + 25 + + + + + + + + + + + Width + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + 2000 + + + 25 + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + GraphicalItem + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + GraphicalItem + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/sources/graphicalitem.cpp b/sources/graphicalitem.cpp new file mode 100644 index 0000000..4b2e659 --- /dev/null +++ b/sources/graphicalitem.cpp @@ -0,0 +1,384 @@ +/*************************************************************************** + * 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 "graphicalitem.h" + +#include +#include +#include +#include +#include +#include +#include + +#include + + +GraphicalItem::GraphicalItem(const QString desktopName, const QStringList directories, const bool debugCmd) + : fileName(desktopName), + dirs(directories), + debug(debugCmd) +{ + readConfiguration(); +} + + +GraphicalItem::~GraphicalItem() +{ + if (debug) qDebug() << PDEBUG; +} + + +QString GraphicalItem::getImage(const float value) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Value" << value; + if (_bar == QString("none")) return QString(""); + + float percent = value / 100.0; + int scale[2] = {1, 1}; + QPen pen = QPen(); + QGraphicsScene *scene = new QGraphicsScene(); + scene->setBackgroundBrush(QBrush(Qt::NoBrush)); + QGraphicsView *view = new QGraphicsView(scene); + view->setStyleSheet(QString("background: transparent")); + view->setContentsMargins(0, 0, 0, 0); + view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + view->resize(_width + 5.0, _height + 5.0); + + // paint + switch(_type) { + case Vertical: + pen.setWidth(_width); + // inactive + pen.setColor(_inactiveColor); + scene->addLine(0.5 * _width, 0.0, 0.5 * _width, _height, pen); + // active + pen.setColor(_activeColor); + scene->addLine(0.5 * _width, (1.0 - percent) * _height + 0.5 * _width, 0.5 * _width, _height + 0.5 * _width, pen); + // scale + scale[1] = (int)_direction; + break; + case Circle: + QGraphicsEllipseItem *circle; + pen.setWidth(1.0); + // inactive + pen.setColor(_inactiveColor); + circle = scene->addEllipse(0.0, 0.0, _width, _height, pen, QBrush(_inactiveColor, Qt::SolidPattern)); + circle->setSpanAngle((1.0 - percent) * 360.0 * 16.0); + circle->setStartAngle(180.0 * 16.0 - (1.0 - percent) * 360.0 * 16.0); + // active + pen.setColor(_activeColor); + circle = scene->addEllipse(0.0, 0.0, _width, _height, pen, QBrush(_activeColor, Qt::SolidPattern)); + circle->setSpanAngle(percent * 360.0 * 16.0); + circle->setStartAngle(180.0 * 16.0); + // scale + scale[0] = (int)_direction; + break; + default: + pen.setWidth(_height); + // inactive + pen.setColor(_inactiveColor); + scene->addLine(0.0, 0.5 * _height, _width, 0.5 * _height, pen); + // active + pen.setColor(_activeColor); + scene->addLine(-0.5 * _height, 0.5 * _height, percent * _width - 0.5 * _height, 0.5 * _height, pen); + // scale + scale[0] = (int)_direction; + break; + } + + // convert + QPixmap pixmap = QPixmap::grabWidget(view).transformed(QTransform().scale(scale[0], scale[1])); + QByteArray byteArray; + QBuffer buffer(&byteArray); + pixmap.save(&buffer, "PNG"); + QString url = QString("").arg(QString(byteArray.toBase64())); + delete view; + delete scene; + + return url; +} + + +QString GraphicalItem::getName() +{ + if (debug) qDebug() << PDEBUG; + + return _name; +} + + +QString GraphicalItem::getComment() +{ + if (debug) qDebug() << PDEBUG; + + return _comment; +} + + +QString GraphicalItem::getBar() +{ + if (debug) qDebug() << PDEBUG; + + return _bar; +} + + +QColor GraphicalItem::getActiveColor() +{ + if (debug) qDebug() << PDEBUG; + + return _activeColor; +} + + +QColor GraphicalItem::getInactiveColor() +{ + if (debug) qDebug() << PDEBUG; + + return _inactiveColor; +} + + +GraphicalItem::Type GraphicalItem::getType() +{ + if (debug) qDebug() << PDEBUG; + + return _type; +} + + +GraphicalItem::Direction GraphicalItem::getDirection() +{ + if (debug) qDebug() << PDEBUG; + + return _direction; +} + + +int GraphicalItem::getHeight() +{ + if (debug) qDebug() << PDEBUG; + + return _height; +} + + +int GraphicalItem::getWidth() +{ + if (debug) qDebug() << PDEBUG; + + return _width; +} + + +void GraphicalItem::setName(const QString name) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Name" << name; + + _name = name; +} + + +void GraphicalItem::setComment(const QString comment) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Comment" << comment; + + _comment = comment; +} + + +void GraphicalItem::setBar(const QString bar) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Bar" << bar; + + _bar = bar; + if ((!_bar.contains(QRegExp(QString("cpu(?!cl).*")))) && + (!_bar.contains(QRegExp(QString("gpu")))) && + (!_bar.contains(QRegExp(QString("mem")))) && + (!_bar.contains(QRegExp(QString("swap")))) && + (!_bar.contains(QRegExp(QString("hdd[0-9].*")))) && + (!_bar.contains(QRegExp(QString("bat.*"))))) + _bar = QString("none"); +} + + +void GraphicalItem::setActiveColor(const QColor color) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Color" << color; + + _activeColor = color; +} + + +void GraphicalItem::setInactiveColor(const QColor color) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Color" << color; + + _inactiveColor = color; +} + + +void GraphicalItem::setType(const QString type) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Type" << type; + + if (type == QString("Vertical")) + _type = Vertical; + else if (type == QString("Circle")) + _type = Circle; + else + _type = Horizontal; +} + + +void GraphicalItem::setDirection(const QString direction) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Direction" << direction; + + if (direction == QString("RightToLeft")) + _direction = RightToLeft; + else + _direction = LeftToRight; +} + + +void GraphicalItem::setHeight(const int height) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Height" << height; + + _height = height; +} + + +void GraphicalItem::setWidth(const int width) +{ + if (debug) qDebug() << PDEBUG; + if (debug) qDebug() << PDEBUG << ":" << "Width" << width; + + _width = width; +} + + +void GraphicalItem::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); + settings.beginGroup(QString("Desktop Entry")); + QStringList childKeys = settings.childKeys(); + for (int i=0; i +#include + + +class GraphicalItem : public QObject +{ + Q_OBJECT + +public: + enum Direction { + RightToLeft = -1, + LeftToRight = 1 + }; + enum Type { + Horizontal = 0, + Vertical, + Circle + }; + + GraphicalItem(const QString desktopName, const QStringList directories, const bool debugCmd = false); + ~GraphicalItem(); + QString getImage(const float value); + // get methods + QString getName(); + QString getComment(); + QString getBar(); + QColor getActiveColor(); + QColor getInactiveColor(); + Type getType(); + Direction getDirection(); + int getHeight(); + int getWidth(); + // set methods + void setName(const QString name); + void setComment(const QString comment); + void setBar(const QString bar); + void setActiveColor(const QColor color); + void setInactiveColor(const QColor color); + void setType(const QString type); + void setDirection(const QString direction); + void setHeight(const int height); + void setWidth(const int width); + +public slots: + void readConfiguration(); + void showConfiguration(); + void tryDelete(); + void writeConfiguration(); + +private: + QString fileName; + QStringList dirs; + bool debug; + // properties + QString _name = QString("none"); + QString _comment = QString("empty"); + QString _bar = QString("cpu"); + QColor _activeColor = QColor(255, 255, 255, 0); + QColor _inactiveColor = QColor(255, 255, 255, 255); + Type _type = Horizontal; + Direction _direction = LeftToRight; + int _height = 100; + int _width = 100; +}; + + +#endif /* GRAPHICALITEM_H */