From c3420a8393a487091213540f0f80abb796d116ca Mon Sep 17 00:00:00 2001 From: arcan1s Date: Wed, 19 Nov 2014 12:08:54 +0300 Subject: [PATCH] some simplification of graphicalitem --- sources/awesome-widget/graphicalitem.cpp | 166 ++++++++++++----------- sources/awesome-widget/graphicalitem.h | 15 +- 2 files changed, 96 insertions(+), 85 deletions(-) diff --git a/sources/awesome-widget/graphicalitem.cpp b/sources/awesome-widget/graphicalitem.cpp index a268ce9..d61551e 100644 --- a/sources/awesome-widget/graphicalitem.cpp +++ b/sources/awesome-widget/graphicalitem.cpp @@ -59,6 +59,8 @@ QString GraphicalItem::getImage(const float value) if (debug) qDebug() << PDEBUG << ":" << "Value" << value; if (_bar == QString("none")) return QString(""); + QColor active = stringToColor(_activeColor); + QColor inactive = stringToColor(_inactiveColor); float percent = value / 100.0; int scale[2] = {1, 1}; QPen pen = QPen(); @@ -76,10 +78,10 @@ QString GraphicalItem::getImage(const float value) case Vertical: pen.setWidth(_width); // inactive - pen.setColor(_inactiveColor); + pen.setColor(inactive); scene->addLine(0.5 * _width, 0.0, 0.5 * _width, _height, pen); // active - pen.setColor(_activeColor); + pen.setColor(active); 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; @@ -88,12 +90,12 @@ QString GraphicalItem::getImage(const float value) QGraphicsEllipseItem *circle; pen.setWidth(1.0); // inactive - pen.setColor(_inactiveColor); + pen.setColor(inactive); 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); + pen.setColor(active); 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); @@ -103,10 +105,10 @@ QString GraphicalItem::getImage(const float value) default: pen.setWidth(_height); // inactive - pen.setColor(_inactiveColor); + pen.setColor(inactive); scene->addLine(0.0, 0.5 * _height, _width, 0.5 * _height, pen); // active - pen.setColor(_activeColor); + pen.setColor(active); scene->addLine(-0.5 * _height, 0.5 * _height, percent * _width - 0.5 * _height, 0.5 * _height, pen); // scale scale[0] = (int)_direction; @@ -158,7 +160,7 @@ QString GraphicalItem::getBar() } -QColor GraphicalItem::getActiveColor() +QString GraphicalItem::getActiveColor() { if (debug) qDebug() << PDEBUG; @@ -166,7 +168,7 @@ QColor GraphicalItem::getActiveColor() } -QColor GraphicalItem::getInactiveColor() +QString GraphicalItem::getInactiveColor() { if (debug) qDebug() << PDEBUG; @@ -182,6 +184,27 @@ GraphicalItem::Type GraphicalItem::getType() } +QString GraphicalItem::getStrType() +{ + if (debug) qDebug() << PDEBUG; + + QString value; + switch(_type) { + case Vertical: + value = QString("Vertical"); + break; + case Circle: + value = QString("Circle"); + break; + default: + value = QString("Horizontal"); + break; + }\ + + return value; +} + + GraphicalItem::Direction GraphicalItem::getDirection() { if (debug) qDebug() << PDEBUG; @@ -190,6 +213,24 @@ GraphicalItem::Direction GraphicalItem::getDirection() } +QString GraphicalItem::getStrDirection() +{ + if (debug) qDebug() << PDEBUG; + + QString value; + switch (_direction) { + case RightToLeft: + value = QString("RightToLeft"); + break; + default: + value = QString("LeftToRight"); + break; + } + + return value; +} + + int GraphicalItem::getHeight() { if (debug) qDebug() << PDEBUG; @@ -240,7 +281,7 @@ void GraphicalItem::setBar(const QString bar) } -void GraphicalItem::setActiveColor(const QColor color) +void GraphicalItem::setActiveColor(const QString color) { if (debug) qDebug() << PDEBUG; if (debug) qDebug() << PDEBUG << ":" << "Color" << color; @@ -249,7 +290,7 @@ void GraphicalItem::setActiveColor(const QColor color) } -void GraphicalItem::setInactiveColor(const QColor color) +void GraphicalItem::setInactiveColor(const QString color) { if (debug) qDebug() << PDEBUG; if (debug) qDebug() << PDEBUG << ":" << "Color" << color; @@ -312,30 +353,15 @@ void GraphicalItem::readConfiguration() 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; icomboBox_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->pushButton_activeColor->setText(_activeColor); + ui->pushButton_inactiveColor->setText(_inactiveColor); ui->comboBox_type->setCurrentIndex((int)_type); ui->comboBox_direction->setCurrentIndex((int)_direction); ui->spinBox_height->setValue(_height); @@ -363,16 +385,11 @@ void GraphicalItem::showConfiguration(const QStringList tags) int ret = exec(); if (ret == 1) { - QStringList colorText; setName(ui->label_nameValue->text()); setComment(ui->lineEdit_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())); + setActiveColor(ui->pushButton_activeColor->text()); + setInactiveColor(ui->pushButton_inactiveColor->text()); setType(ui->comboBox_type->currentText()); setDirection(ui->comboBox_direction->currentText()); setHeight(ui->spinBox_height->value()); @@ -400,38 +417,14 @@ void GraphicalItem::writeConfiguration() if (debug) qDebug() << PDEBUG << ":" << "Configuration file" << settings.fileName(); settings.beginGroup(QString("Desktop Entry")); - QString strValue; settings.setValue(QString("Encoding"), QString("UTF-8")); settings.setValue(QString("Name"), _name); settings.setValue(QString("Comment"), _comment); settings.setValue(QString("X-AW-Value"), _bar); - settings.setValue(QString("X-AW-ActiveColor"), QString("%1,%2,%3,%4") - .arg(_activeColor.red()).arg(_activeColor.green()) - .arg(_activeColor.blue()).arg(_activeColor.alpha())); - settings.setValue(QString("X-AW-InactiveColor"), QString("%1,%2,%3,%4") - .arg(_inactiveColor.red()).arg(_inactiveColor.green()) - .arg(_inactiveColor.blue()).arg(_inactiveColor.alpha())); - switch(_type) { - case Vertical: - strValue = QString("Vertical"); - break; - case Circle: - strValue = QString("Circle"); - break; - default: - strValue = QString("Horizontal"); - break; - } - settings.setValue(QString("X-AW-Type"), strValue); - switch (_direction) { - case RightToLeft: - strValue = QString("RightToLeft"); - break; - default: - strValue = QString("LeftToRight"); - break; - } - settings.setValue(QString("X-AW-Direction"), strValue); + settings.setValue(QString("X-AW-ActiveColor"), _activeColor); + settings.setValue(QString("X-AW-InactiveColor"), _inactiveColor); + settings.setValue(QString("X-AW-Type"), getStrType()); + settings.setValue(QString("X-AW-Direction"), getStrDirection()); settings.setValue(QString("X-AW-Height"), _height); settings.setValue(QString("X-AW-Width"), _width); @@ -444,16 +437,31 @@ 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 color = stringToColor(((QPushButton *)sender())->text()); QColor newColor = QColorDialog::getColor(color, 0, i18n("Select color"), QColorDialog::ShowAlphaChannel); - colorText.clear(); + QStringList colorText; 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(','))); } + + +QColor GraphicalItem::stringToColor(const QString color) +{ + if (debug) qDebug() << PDEBUG; + + QColor qcolor; + QStringList listColor = color.split(QChar(',')); + while (listColor.count() < 4) + listColor.append(QString("0")); + qcolor.setRed(listColor[0].toInt()); + qcolor.setGreen(listColor[1].toInt()); + qcolor.setBlue(listColor[2].toInt()); + qcolor.setAlpha(listColor[3].toInt()); + + return qcolor; +} diff --git a/sources/awesome-widget/graphicalitem.h b/sources/awesome-widget/graphicalitem.h index b9e538f..777d488 100644 --- a/sources/awesome-widget/graphicalitem.h +++ b/sources/awesome-widget/graphicalitem.h @@ -49,18 +49,20 @@ public: QString getName(); QString getComment(); QString getBar(); - QColor getActiveColor(); - QColor getInactiveColor(); + QString getActiveColor(); + QString getInactiveColor(); Type getType(); + QString getStrType(); Direction getDirection(); + QString getStrDirection(); int getHeight(); int getWidth(); // set methods void setName(const QString name = QString("none")); void setComment(const QString comment = QString("empty")); void setBar(const QString bar = QString("cpu")); - void setActiveColor(const QColor color = QColor(255, 255, 255, 0)); - void setInactiveColor(const QColor color = QColor(255, 255, 255, 255)); + void setActiveColor(const QString color = QString("0,0,0,130")); + void setInactiveColor(const QString color = QString("255,255,255,130")); void setType(const QString type = QString("Horizontal")); void setDirection(const QString direction = QString("LeftToRight")); void setHeight(const int height = 100); @@ -76,6 +78,7 @@ private slots: void changeColor(); private: + QColor stringToColor(const QString color); QString fileName; QStringList dirs; bool debug; @@ -84,8 +87,8 @@ private: 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); + QString _activeColor = QString("0,0,0,130"); + QString _inactiveColor = QString("255,255,255,130"); Type _type = Horizontal; Direction _direction = LeftToRight; int _height = 100;