* create cppcheck and clangformat targets

* apply code style (#67)
* send values by reference
* fix warnings on plugin destruction by disconnecting dataengines first
* fix invalid hddtemp group definition
This commit is contained in:
arcan1s
2015-10-18 00:05:42 +03:00
parent 8645260f99
commit 17a8a1734b
80 changed files with 2134 additions and 1022 deletions

View File

@ -3,13 +3,13 @@ message(STATUS "Subproject ${SUBPROJECT}")
add_definitions(-DTRANSLATION_DOMAIN=\"plasma_applet_org.kde.plasma.awesomewidget\")
include_directories(
${CMAKE_SOURCE_DIR}
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}/../
${PROJECT_TRDPARTY_DIR}
${Qt_INCLUDE}
${Kf5_INCLUDE}
${CMAKE_SOURCE_DIR}
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}/../
${PROJECT_TRDPARTY_DIR}
${Qt_INCLUDE}
${Kf5_INCLUDE}
)
file(GLOB SUBPROJECT_SOURCE *.cpp ${PROJECT_TRDPARTY_DIR}/qreplytimeout/*.cpp ${CMAKE_SOURCE_DIR}/*.cpp)

View File

@ -28,9 +28,9 @@
AbstractExtItem::AbstractExtItem(QWidget *parent, const QString desktopName,
const QStringList directories)
: QDialog(parent),
m_fileName(desktopName),
m_dirs(directories)
: QDialog(parent)
, m_fileName(desktopName)
, m_dirs(directories)
{
qCDebug(LOG_LIB);
qCDebug(LOG_LIB) << "Desktop name" << desktopName;
@ -46,8 +46,7 @@ AbstractExtItem::~AbstractExtItem()
}
template <class T>
T *AbstractExtItem::copy(const QString, const int)
template <class T> T *AbstractExtItem::copy(const QString, const int)
{
qCDebug(LOG_LIB);
@ -56,7 +55,6 @@ T *AbstractExtItem::copy(const QString, const int)
}
int AbstractExtItem::apiVersion() const
{
qCDebug(LOG_LIB);
@ -198,7 +196,7 @@ void AbstractExtItem::readConfiguration()
{
qCDebug(LOG_LIB);
for (int i=m_dirs.count()-1; i>=0; i--) {
for (int i = m_dirs.count() - 1; i >= 0; i--) {
if (!QDir(m_dirs.at(i)).entryList(QDir::Files).contains(m_fileName))
continue;
QSettings settings(QString("%1/%2").arg(m_dirs.at(i)).arg(m_fileName),
@ -207,9 +205,13 @@ void AbstractExtItem::readConfiguration()
settings.beginGroup(QString("Desktop Entry"));
setName(settings.value(QString("Name"), m_name).toString());
setComment(settings.value(QString("Comment"), m_comment).toString());
setApiVersion(settings.value(QString("X-AW-ApiVersion"), m_apiVersion).toInt());
setActive(settings.value(QString("X-AW-Active"), QVariant(m_active)).toString() == QString("true"));
setInterval(settings.value(QString("X-AW-Interval"), m_interval).toInt());
setApiVersion(
settings.value(QString("X-AW-ApiVersion"), m_apiVersion).toInt());
setActive(settings.value(QString("X-AW-Active"), QVariant(m_active))
.toString()
== QString("true"));
setInterval(
settings.value(QString("X-AW-Interval"), m_interval).toInt());
setNumber(settings.value(QString("X-AW-Number"), m_number).toInt());
settings.endGroup();
}
@ -220,13 +222,14 @@ bool AbstractExtItem::tryDelete() const
{
qCDebug(LOG_LIB);
foreach(QString dir, m_dirs) {
foreach (QString dir, m_dirs) {
bool status = QFile::remove(QString("%1/%2").arg(dir).arg(m_fileName));
qCInfo(LOG_LIB) << "Remove file" << QString("%1/%2").arg(dir).arg(m_fileName) << status;
qCInfo(LOG_LIB) << "Remove file"
<< QString("%1/%2").arg(dir).arg(m_fileName) << status;
}
// check if exists
foreach(QString dir, m_dirs)
foreach (QString dir, m_dirs)
if (QFile::exists(QString("%1/%2").arg(dir).arg(m_fileName)))
return false;
return true;
@ -237,7 +240,8 @@ void AbstractExtItem::writeConfiguration() const
{
qCDebug(LOG_LIB);
QSettings settings(QString("%1/%2").arg(m_dirs.first()).arg(m_fileName), QSettings::IniFormat);
QSettings settings(QString("%1/%2").arg(m_dirs.first()).arg(m_fileName),
QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup(QString("Desktop Entry"));

View File

@ -36,7 +36,8 @@ class AbstractExtItem : public QDialog
Q_PROPERTY(QString uniq READ uniq)
public:
explicit AbstractExtItem(QWidget *parent = nullptr, const QString desktopName = QString(),
explicit AbstractExtItem(QWidget *parent = nullptr,
const QString desktopName = QString(),
const QStringList directories = QStringList());
virtual ~AbstractExtItem();
template <class T> T *copy(const QString, const int);

View File

@ -33,21 +33,24 @@ AbstractExtItemAggregator::AbstractExtItemAggregator(QWidget *parent)
dialog = new QDialog(this);
widgetDialog = new QListWidget(dialog);
dialogButtons = new QDialogButtonBox(QDialogButtonBox::Open | QDialogButtonBox::Close,
Qt::Vertical, dialog);
copyButton = dialogButtons->addButton(i18n("Copy"), QDialogButtonBox::ActionRole);
createButton = dialogButtons->addButton(i18n("Create"), QDialogButtonBox::ActionRole);
deleteButton = dialogButtons->addButton(i18n("Remove"), QDialogButtonBox::ActionRole);
dialogButtons = new QDialogButtonBox(
QDialogButtonBox::Open | QDialogButtonBox::Close, Qt::Vertical, dialog);
copyButton
= dialogButtons->addButton(i18n("Copy"), QDialogButtonBox::ActionRole);
createButton = dialogButtons->addButton(i18n("Create"),
QDialogButtonBox::ActionRole);
deleteButton = dialogButtons->addButton(i18n("Remove"),
QDialogButtonBox::ActionRole);
QHBoxLayout *layout = new QHBoxLayout(dialog);
layout->addWidget(widgetDialog);
layout->addWidget(dialogButtons);
dialog->setLayout(layout);
connect(dialogButtons, SIGNAL(clicked(QAbstractButton *)),
this, SLOT(editItemButtonPressed(QAbstractButton *)));
connect(dialogButtons, SIGNAL(clicked(QAbstractButton *)), this,
SLOT(editItemButtonPressed(QAbstractButton *)));
connect(dialogButtons, SIGNAL(rejected()), dialog, SLOT(reject()));
connect(widgetDialog, SIGNAL(itemActivated(QListWidgetItem *)),
this, SLOT(editItemActivated(QListWidgetItem *)));
connect(widgetDialog, SIGNAL(itemActivated(QListWidgetItem *)), this,
SLOT(editItemActivated(QListWidgetItem *)));
}

View File

@ -29,13 +29,12 @@
#include "abstractextitemaggregator.h"
template <class T>
class ExtItemAggregator : public AbstractExtItemAggregator
template <class T> class ExtItemAggregator : public AbstractExtItemAggregator
{
public:
explicit ExtItemAggregator(QWidget *parent, const QString type)
: AbstractExtItemAggregator(parent),
m_type(type)
: AbstractExtItemAggregator(parent)
, m_type(type)
{
qCDebug(LOG_LIB);
qCDebug(LOG_LIB) << "Type" << type;
@ -75,7 +74,7 @@ public:
qCDebug(LOG_LIB) << "Tag" << _tag;
T *found = nullptr;
foreach(T *item, m_items) {
foreach (T *item, m_items) {
if (item->tag() != _tag)
continue;
found = item;
@ -93,7 +92,7 @@ public:
qCDebug(LOG_LIB) << "Number" << _number;
T *found = nullptr;
foreach(T *item, m_items) {
foreach (T *item, m_items) {
if (item->number() != _number)
continue;
found = item;
@ -114,14 +113,15 @@ public:
return nullptr;
T *found = nullptr;
foreach(T *item, m_items) {
foreach (T *item, m_items) {
if (item->fileName() != widgetItem->text())
continue;
found = item;
break;
}
if (found == nullptr)
qCWarning(LOG_LIB) << "Could not find item by name" << widgetItem->text();
qCWarning(LOG_LIB) << "Could not find item by name"
<< widgetItem->text();
return found;
};
@ -138,7 +138,8 @@ public:
qCDebug(LOG_LIB);
QList<int> tagList;
foreach(T *item, m_items) tagList.append(item->number());
foreach (T *item, m_items)
tagList.append(item->number());
int number = 0;
while (tagList.contains(number))
number++;
@ -157,21 +158,23 @@ private:
qCDebug(LOG_LIB);
// create directory at $HOME
QString localDir = QString("%1/awesomewidgets/%2").
arg(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation)).
arg(m_type);
QString localDir = QString("%1/awesomewidgets/%2")
.arg(QStandardPaths::writableLocation(
QStandardPaths::GenericDataLocation))
.arg(m_type);
QDir localDirectory;
if (localDirectory.mkpath(localDir))
qCInfo(LOG_LIB) << "Created directory" << localDir;
QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation,
QString("awesomewidgets/%1").arg(m_type),
QStandardPaths::LocateDirectory);
QStringList dirs = QStandardPaths::locateAll(
QStandardPaths::GenericDataLocation,
QString("awesomewidgets/%1").arg(m_type),
QStandardPaths::LocateDirectory);
QStringList names;
QList<T *> items;
foreach(QString dir, dirs) {
foreach (QString dir, dirs) {
QStringList files = QDir(dir).entryList(QDir::Files, QDir::Name);
foreach(QString file, files) {
foreach (QString file, files) {
if ((!file.endsWith(QString(".desktop")))
|| (names.contains(file)))
continue;
@ -196,7 +199,7 @@ private:
m_activeItems.clear();
m_items = getItems();
foreach(T *item, m_items) {
foreach (T *item, m_items) {
if (!item->isActive())
continue;
m_activeItems.append(item);
@ -208,8 +211,9 @@ private:
qCDebug(LOG_LIB);
widgetDialog->clear();
foreach(T *_item, m_items) {
QListWidgetItem *item = new QListWidgetItem(_item->fileName(), widgetDialog);
foreach (T *_item, m_items) {
QListWidgetItem *item
= new QListWidgetItem(_item->fileName(), widgetDialog);
QStringList tooltip;
tooltip.append(i18n("Name: %1", _item->name()));
tooltip.append(i18n("Comment: %1", _item->comment()));
@ -227,8 +231,7 @@ private:
T *source = itemFromWidget();
QString fileName = getName();
int number = uniqNumber();
if ((source == nullptr)
|| (fileName.isEmpty())) {
if ((source == nullptr) || (fileName.isEmpty())) {
qCWarning(LOG_LIB) << "Nothing to copy";
return;
}
@ -246,9 +249,10 @@ private:
QString fileName = getName();
int number = uniqNumber();
QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation,
QString("awesomewidgets/%1").arg(m_type),
QStandardPaths::LocateDirectory);
QStringList dirs = QStandardPaths::locateAll(
QStandardPaths::GenericDataLocation,
QString("awesomewidgets/%1").arg(m_type),
QStandardPaths::LocateDirectory);
if (fileName.isEmpty()) {
qCWarning(LOG_LIB) << "Nothing to create";
return;

View File

@ -35,8 +35,8 @@
ExtQuotes::ExtQuotes(QWidget *parent, const QString quotesName,
const QStringList directories)
: AbstractExtItem(parent, quotesName, directories),
ui(new Ui::ExtQuotes)
: AbstractExtItem(parent, quotesName, directories)
, ui(new Ui::ExtQuotes)
{
qCDebug(LOG_LIB);
@ -54,9 +54,11 @@ ExtQuotes::ExtQuotes(QWidget *parent, const QString quotesName,
values[tag(QString("pricechg"))] = 0.0;
values[tag(QString("percpricechg"))] = 0.0;
manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply *)),
this, SLOT(quotesReplyReceived(QNetworkReply *)));
// HACK declare as child of nullptr to avoid crash with plasmawindowed
// in the destructor
manager = new QNetworkAccessManager(nullptr);
connect(manager, SIGNAL(finished(QNetworkReply *)), this,
SLOT(quotesReplyReceived(QNetworkReply *)));
}
@ -64,10 +66,10 @@ ExtQuotes::~ExtQuotes()
{
qCDebug(LOG_LIB);
disconnect(manager, SIGNAL(finished(QNetworkReply *)),
this, SLOT(quotesReplyReceived(QNetworkReply *)));
disconnect(manager, SIGNAL(finished(QNetworkReply *)), this,
SLOT(quotesReplyReceived(QNetworkReply *)));
delete manager;
manager->deleteLater();
delete ui;
}
@ -78,8 +80,8 @@ ExtQuotes *ExtQuotes::copy(const QString _fileName, const int _number)
qCDebug(LOG_LIB) << "File" << _fileName;
qCDebug(LOG_LIB) << "Number" << _number;
ExtQuotes *item = new ExtQuotes(static_cast<QWidget *>(parent()),
_fileName, directories());
ExtQuotes *item = new ExtQuotes(static_cast<QWidget *>(parent()), _fileName,
directories());
item->setActive(isActive());
item->setApiVersion(apiVersion());
item->setComment(comment());
@ -122,11 +124,14 @@ void ExtQuotes::readConfiguration()
qCDebug(LOG_LIB);
AbstractExtItem::readConfiguration();
for (int i=directories().count()-1; i>=0; i--) {
if (!QDir(directories().at(i)).entryList(QDir::Files).contains(fileName()))
for (int i = directories().count() - 1; i >= 0; i--) {
if (!QDir(directories().at(i))
.entryList(QDir::Files)
.contains(fileName()))
continue;
QSettings settings(QString("%1/%2").arg(directories().at(i)).arg(fileName()),
QSettings::IniFormat);
QSettings settings(
QString("%1/%2").arg(directories().at(i)).arg(fileName()),
QSettings::IniFormat);
settings.beginGroup(QString("Desktop Entry"));
setTicker(settings.value(QString("X-AW-Ticker"), m_ticker).toString());
@ -135,7 +140,8 @@ void ExtQuotes::readConfiguration()
// update for current API
if ((apiVersion() > 0) && (apiVersion() < AWEQAPI)) {
qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to" << AWEQAPI;
qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to"
<< AWEQAPI;
setApiVersion(AWEQAPI);
writeConfiguration();
}
@ -173,7 +179,8 @@ int ExtQuotes::showConfiguration(const QVariant args)
ui->lineEdit_comment->setText(comment());
ui->label_numberValue->setText(QString("%1").arg(number()));
ui->lineEdit_ticker->setText(m_ticker);
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked : Qt::Unchecked);
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked
: Qt::Unchecked);
ui->spinBox_interval->setValue(interval());
int ret = exec();
@ -197,8 +204,9 @@ void ExtQuotes::writeConfiguration() const
qCDebug(LOG_LIB);
AbstractExtItem::writeConfiguration();
QSettings settings(QString("%1/%2").arg(directories().first()).arg(fileName()),
QSettings::IniFormat);
QSettings settings(
QString("%1/%2").arg(directories().first()).arg(fileName()),
QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup(QString("Desktop Entry"));
@ -223,35 +231,43 @@ void ExtQuotes::quotesReplyReceived(QNetworkReply *reply)
qCWarning(LOG_LIB) << "Parse error" << error.errorString();
return;
}
QVariantMap jsonQuotes = jsonDoc.toVariant().toMap()[QString("query")].toMap();
jsonQuotes = jsonQuotes[QString("results")].toMap()[QString("quote")].toMap();
QVariantMap jsonQuotes
= jsonDoc.toVariant().toMap()[QString("query")].toMap();
jsonQuotes
= jsonQuotes[QString("results")].toMap()[QString("quote")].toMap();
double value;
// ask
value = jsonQuotes[QString("Ask")].toString().toDouble();
values[tag(QString("askchg"))] = values[QString("ask")].toDouble() == 0.0
? 0.0
: value - values[QString("ask")].toDouble();
values[tag(QString("percaskchg"))] = 100.0 * values[QString("askchg")].toDouble()
/ values[QString("ask")].toDouble();
values[tag(QString("askchg"))]
= values[QString("ask")].toDouble() == 0.0
? 0.0
: value - values[QString("ask")].toDouble();
values[tag(QString("percaskchg"))] = 100.0
* values[QString("askchg")].toDouble()
/ values[QString("ask")].toDouble();
values[tag(QString("ask"))] = value;
// bid
value = jsonQuotes[QString("Bid")].toString().toDouble();
values[tag(QString("bidchg"))] = values[QString("bid")].toDouble() == 0.0
? 0.0
: value - values[QString("bid")].toDouble();
values[tag(QString("percbidchg"))] = 100.0 * values[QString("bidchg")].toDouble()
/ values[QString("bid")].toDouble();
values[tag(QString("bidchg"))]
= values[QString("bid")].toDouble() == 0.0
? 0.0
: value - values[QString("bid")].toDouble();
values[tag(QString("percbidchg"))] = 100.0
* values[QString("bidchg")].toDouble()
/ values[QString("bid")].toDouble();
values[tag(QString("bid"))] = value;
// last trade
value = jsonQuotes[QString("LastTradePriceOnly")].toString().toDouble();
values[tag(QString("pricechg"))] = values[QString("price")].toDouble() == 0.0
? 0.0
: value - values[QString("price")].toDouble();
values[tag(QString("percpricechg"))] = 100.0 * values[QString("pricechg")].toDouble()
/ values[QString("price")].toDouble();
values[tag(QString("pricechg"))]
= values[QString("price")].toDouble() == 0.0
? 0.0
: value - values[QString("price")].toDouble();
values[tag(QString("percpricechg"))]
= 100.0 * values[QString("pricechg")].toDouble()
/ values[QString("price")].toDouble();
values[tag(QString("price"))] = value;
}
@ -263,7 +279,8 @@ void ExtQuotes::translate()
ui->label_name->setText(i18n("Name"));
ui->label_comment->setText(i18n("Comment"));
ui->label_number->setText(i18n("Tag"));
ui->label->setText(i18n("<html><head/><body><p>Use YAHOO! finance ticker to \
ui->label->setText(
i18n("<html><head/><body><p>Use YAHOO! finance ticker to \
get quotes for the instrument. Refer to <a href=\"http://finance.yahoo.com/\">\
<span style=\" text-decoration: underline; color:#0057ae;\">http://finance.yahoo.com/\
</span></a></p></body></html>"));

View File

@ -22,11 +22,16 @@
#include "abstractextitem.h"
#define YAHOO_URL "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.quotes where symbol=\"$TICKER\"&env=store://datatables.org/alltableswithkeys&format=json"
#define YAHOO_URL \
"https://query.yahooapis.com/v1/public/yql?q=select * from " \
"yahoo.finance.quotes where " \
"symbol=\"$TICKER\"&env=store://datatables.org/" \
"alltableswithkeys&format=json"
namespace Ui {
class ExtQuotes;
namespace Ui
{
class ExtQuotes;
}
class ExtQuotes : public AbstractExtItem
@ -35,7 +40,8 @@ class ExtQuotes : public AbstractExtItem
Q_PROPERTY(QString ticker READ ticker WRITE setTicker)
public:
explicit ExtQuotes(QWidget *parent = nullptr, const QString quotesName = QString(),
explicit ExtQuotes(QWidget *parent = nullptr,
const QString quotesName = QString(),
const QStringList directories = QStringList());
virtual ~ExtQuotes();
ExtQuotes *copy(const QString _fileName, const int _number);

View File

@ -33,8 +33,8 @@
ExtScript::ExtScript(QWidget *parent, const QString scriptName,
const QStringList directories)
: AbstractExtItem(parent, scriptName, directories),
ui(new Ui::ExtScript)
: AbstractExtItem(parent, scriptName, directories)
, ui(new Ui::ExtScript)
{
qCDebug(LOG_LIB);
@ -46,7 +46,8 @@ ExtScript::ExtScript(QWidget *parent, const QString scriptName,
value[tag(QString("custom"))] = QString("");
process = new QProcess(this);
connect(process, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(updateValue()));
connect(process, SIGNAL(finished(int, QProcess::ExitStatus)), this,
SLOT(updateValue()));
process->waitForFinished(0);
}
@ -67,8 +68,8 @@ ExtScript *ExtScript::copy(const QString _fileName, const int _number)
qCDebug(LOG_LIB) << "File" << _fileName;
qCDebug(LOG_LIB) << "Number" << _number;
ExtScript *item = new ExtScript(static_cast<QWidget *>(parent()),
_fileName, directories());
ExtScript *item = new ExtScript(static_cast<QWidget *>(parent()), _fileName,
directories());
item->setActive(isActive());
item->setApiVersion(apiVersion());
item->setComment(comment());
@ -162,9 +163,8 @@ void ExtScript::setFilters(const QStringList _filters)
qCDebug(LOG_LIB);
qCDebug(LOG_LIB) << "Filters" << _filters;
std::for_each(_filters.cbegin(), _filters.cend(), [this](QString filter) {
return updateFilter(filter);
});
std::for_each(_filters.cbegin(), _filters.cend(),
[this](QString filter) { return updateFilter(filter); });
}
@ -207,14 +207,15 @@ QString ExtScript::applyFilters(QString _value) const
qCDebug(LOG_LIB);
qCDebug(LOG_LIB) << "Value" << _value;
foreach(QString filt, m_filters) {
foreach (QString filt, m_filters) {
qCInfo(LOG_LIB) << "Found filter" << filt;
QVariantMap filter = jsonFilters[filt].toMap();
if (filter.isEmpty()) {
qCWarning(LOG_LIB) << "Could not find filter" << _value << "in the json";
qCWarning(LOG_LIB) << "Could not find filter" << _value
<< "in the json";
continue;
}
foreach(QString f, filter.keys())
foreach (QString f, filter.keys())
_value.replace(f, filter[f].toString());
}
@ -243,24 +244,31 @@ void ExtScript::readConfiguration()
qCDebug(LOG_LIB);
AbstractExtItem::readConfiguration();
for (int i=directories().count()-1; i>=0; i--) {
if (!QDir(directories().at(i)).entryList(QDir::Files).contains(fileName()))
for (int i = directories().count() - 1; i >= 0; i--) {
if (!QDir(directories().at(i))
.entryList(QDir::Files)
.contains(fileName()))
continue;
QSettings settings(QString("%1/%2").arg(directories().at(i)).arg(fileName()), QSettings::IniFormat);
QSettings settings(
QString("%1/%2").arg(directories().at(i)).arg(fileName()),
QSettings::IniFormat);
settings.beginGroup(QString("Desktop Entry"));
setExecutable(settings.value(QString("Exec"), m_executable).toString());
setPrefix(settings.value(QString("X-AW-Prefix"), m_prefix).toString());
setStrRedirect(settings.value(QString("X-AW-Redirect"), strRedirect()).toString());
setStrRedirect(
settings.value(QString("X-AW-Redirect"), strRedirect()).toString());
// api == 3
setFilters(settings.value(QString("X-AW-Filters"), m_filters).toString().
split(QChar(','), QString::SkipEmptyParts));
setFilters(settings.value(QString("X-AW-Filters"), m_filters)
.toString()
.split(QChar(','), QString::SkipEmptyParts));
settings.endGroup();
}
// update for current API
if ((apiVersion() > 0) && (apiVersion() < AWESAPI)) {
qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to" << AWESAPI;
qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to"
<< AWESAPI;
setApiVersion(AWESAPI);
writeConfiguration();
}
@ -271,8 +279,10 @@ void ExtScript::readJsonFilters()
{
qCDebug(LOG_LIB);
QString fileName = QStandardPaths::locate(QStandardPaths::GenericDataLocation,
QString("awesomewidgets/scripts/awesomewidgets-extscripts-filters.json"));
QString fileName = QStandardPaths::locate(
QStandardPaths::GenericDataLocation,
QString(
"awesomewidgets/scripts/awesomewidgets-extscripts-filters.json"));
qCInfo(LOG_LIB) << "Filters file" << fileName;
QFile jsonFile(fileName);
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
@ -326,19 +336,17 @@ int ExtScript::showConfiguration(const QVariant args)
ui->label_numberValue->setText(QString("%1").arg(number()));
ui->lineEdit_command->setText(m_executable);
ui->lineEdit_prefix->setText(m_prefix);
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked : Qt::Unchecked);
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked
: Qt::Unchecked);
ui->comboBox_redirect->setCurrentIndex(static_cast<int>(m_redirect));
ui->spinBox_interval->setValue(interval());
// filters
ui->checkBox_colorFilter->setCheckState(m_filters.contains(QString("color"))
? Qt::Checked
: Qt::Unchecked);
ui->checkBox_linesFilter->setCheckState(m_filters.contains(QString("newline"))
? Qt::Checked
: Qt::Unchecked);
ui->checkBox_spaceFilter->setCheckState(m_filters.contains(QString("space"))
? Qt::Checked
: Qt::Unchecked);
ui->checkBox_colorFilter->setCheckState(
m_filters.contains(QString("color")) ? Qt::Checked : Qt::Unchecked);
ui->checkBox_linesFilter->setCheckState(
m_filters.contains(QString("newline")) ? Qt::Checked : Qt::Unchecked);
ui->checkBox_spaceFilter->setCheckState(
m_filters.contains(QString("space")) ? Qt::Checked : Qt::Unchecked);
int ret = exec();
if (ret != 1)
@ -353,9 +361,12 @@ int ExtScript::showConfiguration(const QVariant args)
setStrRedirect(ui->comboBox_redirect->currentText());
setInterval(ui->spinBox_interval->value());
// filters
updateFilter(QString("color"), ui->checkBox_colorFilter->checkState() == Qt::Checked);
updateFilter(QString("newline"), ui->checkBox_linesFilter->checkState() == Qt::Checked);
updateFilter(QString("space"), ui->checkBox_spaceFilter->checkState() == Qt::Checked);
updateFilter(QString("color"),
ui->checkBox_colorFilter->checkState() == Qt::Checked);
updateFilter(QString("newline"),
ui->checkBox_linesFilter->checkState() == Qt::Checked);
updateFilter(QString("space"),
ui->checkBox_spaceFilter->checkState() == Qt::Checked);
writeConfiguration();
return ret;
@ -367,8 +378,9 @@ void ExtScript::writeConfiguration() const
qCDebug(LOG_LIB);
AbstractExtItem::writeConfiguration();
QSettings settings(QString("%1/%2").arg(directories().first()).arg(fileName()),
QSettings::IniFormat);
QSettings settings(
QString("%1/%2").arg(directories().first()).arg(fileName()),
QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup(QString("Desktop Entry"));
@ -387,9 +399,13 @@ void ExtScript::updateValue()
qCDebug(LOG_LIB);
qCInfo(LOG_LIB) << "Cmd returns" << process->exitCode();
QString qdebug = QTextCodec::codecForMib(106)->toUnicode(process->readAllStandardError()).trimmed();
QString qdebug = QTextCodec::codecForMib(106)
->toUnicode(process->readAllStandardError())
.trimmed();
qCInfo(LOG_LIB) << "Error" << qdebug;
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process->readAllStandardOutput()).trimmed();
QString qoutput = QTextCodec::codecForMib(106)
->toUnicode(process->readAllStandardOutput())
.trimmed();
qCInfo(LOG_LIB) << "Output" << qoutput;
QString strValue;

View File

@ -23,8 +23,9 @@
#include "abstractextitem.h"
namespace Ui {
class ExtScript;
namespace Ui
{
class ExtScript;
}
class ExtScript : public AbstractExtItem
@ -36,14 +37,10 @@ class ExtScript : public AbstractExtItem
Q_PROPERTY(Redirect redirect READ redirect WRITE setRedirect)
public:
enum Redirect {
stdout2stderr = 0,
nothing,
stderr2stdout,
swap
};
enum Redirect { stdout2stderr = 0, nothing, stderr2stdout, swap };
explicit ExtScript(QWidget *parent = nullptr, const QString scriptName = QString(),
explicit ExtScript(QWidget *parent = nullptr,
const QString scriptName = QString(),
const QStringList directories = QStringList());
virtual ~ExtScript();
ExtScript *copy(const QString _fileName, const int _number);

View File

@ -31,8 +31,8 @@
ExtUpgrade::ExtUpgrade(QWidget *parent, const QString upgradeName,
const QStringList directories)
: AbstractExtItem(parent, upgradeName, directories),
ui(new Ui::ExtUpgrade)
: AbstractExtItem(parent, upgradeName, directories)
, ui(new Ui::ExtUpgrade)
{
qCDebug(LOG_LIB);
@ -134,7 +134,8 @@ void ExtUpgrade::setNull(const int _null)
{
qCDebug(LOG_LIB);
qCDebug(LOG_LIB) << "Null lines" << _null;
if (_null < 0) return;
if (_null < 0)
return;
m_null = _null;
}
@ -145,11 +146,14 @@ void ExtUpgrade::readConfiguration()
qCDebug(LOG_LIB);
AbstractExtItem::readConfiguration();
for (int i=directories().count()-1; i>=0; i--) {
if (!QDir(directories().at(i)).entryList(QDir::Files).contains(fileName()))
for (int i = directories().count() - 1; i >= 0; i--) {
if (!QDir(directories().at(i))
.entryList(QDir::Files)
.contains(fileName()))
continue;
QSettings settings(QString("%1/%2").arg(directories().at(i)).arg(fileName()),
QSettings::IniFormat);
QSettings settings(
QString("%1/%2").arg(directories().at(i)).arg(fileName()),
QSettings::IniFormat);
settings.beginGroup(QString("Desktop Entry"));
setExecutable(settings.value(QString("Exec"), m_executable).toString());
@ -161,7 +165,8 @@ void ExtUpgrade::readConfiguration()
// update for current API
if ((apiVersion() > 0) && (apiVersion() < AWEUAPI)) {
qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to" << AWEUAPI;
qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to"
<< AWEUAPI;
setApiVersion(AWEUAPI);
writeConfiguration();
}
@ -197,7 +202,8 @@ int ExtUpgrade::showConfiguration(const QVariant args)
ui->label_numberValue->setText(QString("%1").arg(number()));
ui->lineEdit_command->setText(m_executable);
ui->lineEdit_filter->setText(m_filter);
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked : Qt::Unchecked);
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked
: Qt::Unchecked);
ui->spinBox_null->setValue(m_null);
ui->spinBox_interval->setValue(interval());
@ -224,8 +230,9 @@ void ExtUpgrade::writeConfiguration() const
qCDebug(LOG_LIB);
AbstractExtItem::writeConfiguration();
QSettings settings(QString("%1/%2").arg(directories().first()).arg(fileName()),
QSettings::IniFormat);
QSettings settings(
QString("%1/%2").arg(directories().first()).arg(fileName()),
QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup(QString("Desktop Entry"));
@ -245,11 +252,16 @@ void ExtUpgrade::updateValue()
qCInfo(LOG_LIB) << "Cmd returns" << process->exitCode();
qCInfo(LOG_LIB) << "Error" << process->readAllStandardError();
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process->readAllStandardOutput()).trimmed();
QString qoutput = QTextCodec::codecForMib(106)
->toUnicode(process->readAllStandardOutput())
.trimmed();
value[tag(QString("pkgcount"))] = [this](QString output) {
return m_filter.isEmpty()
? output.split(QChar('\n'), QString::SkipEmptyParts).count() - m_null
: output.split(QChar('\n'), QString::SkipEmptyParts).filter(QRegExp(m_filter)).count();
? output.split(QChar('\n'), QString::SkipEmptyParts).count()
- m_null
: output.split(QChar('\n'), QString::SkipEmptyParts)
.filter(QRegExp(m_filter))
.count();
}(qoutput);
}

View File

@ -23,8 +23,9 @@
#include "abstractextitem.h"
namespace Ui {
class ExtUpgrade;
namespace Ui
{
class ExtUpgrade;
}
class ExtUpgrade : public AbstractExtItem
@ -35,7 +36,8 @@ class ExtUpgrade : public AbstractExtItem
Q_PROPERTY(int null READ null WRITE setNull)
public:
explicit ExtUpgrade(QWidget *parent = nullptr, const QString upgradeName = QString(),
explicit ExtUpgrade(QWidget *parent = nullptr,
const QString upgradeName = QString(),
const QStringList directories = QStringList());
virtual ~ExtUpgrade();
ExtUpgrade *copy(const QString _fileName, const int _number);

View File

@ -36,8 +36,8 @@
ExtWeather::ExtWeather(QWidget *parent, const QString weatherName,
const QStringList directories)
: AbstractExtItem(parent, weatherName, directories),
ui(new Ui::ExtWeather)
: AbstractExtItem(parent, weatherName, directories)
, ui(new Ui::ExtWeather)
{
qCDebug(LOG_LIB);
@ -52,9 +52,11 @@ ExtWeather::ExtWeather(QWidget *parent, const QString weatherName,
values[tag(QString("pressure"))] = 0.0;
values[tag(QString("temperature"))] = 0.0;
manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply *)),
this, SLOT(weatherReplyReceived(QNetworkReply *)));
// HACK declare as child of nullptr to avoid crash with plasmawindowed
// in the destructor
manager = new QNetworkAccessManager(nullptr);
connect(manager, SIGNAL(finished(QNetworkReply *)), this,
SLOT(weatherReplyReceived(QNetworkReply *)));
}
@ -62,10 +64,10 @@ ExtWeather::~ExtWeather()
{
qCDebug(LOG_LIB);
disconnect(manager, SIGNAL(finished(QNetworkReply *)),
this, SLOT(weatherReplyReceived(QNetworkReply *)));
disconnect(manager, SIGNAL(finished(QNetworkReply *)), this,
SLOT(weatherReplyReceived(QNetworkReply *)));
delete manager;
manager->deleteLater();
delete ui;
}
@ -98,7 +100,8 @@ QString ExtWeather::weatherFromInt(const int _id) const
qCDebug(LOG_LIB);
qCDebug(LOG_LIB) << "Weather ID" << _id;
QVariantMap map = jsonMap[m_image ? QString("image") : QString("text")].toMap();
QVariantMap map
= jsonMap[m_image ? QString("image") : QString("text")].toMap();
return map.value(QString::number(_id), map[QString("default")]).toString();
}
@ -184,24 +187,31 @@ void ExtWeather::readConfiguration()
qCDebug(LOG_LIB);
AbstractExtItem::readConfiguration();
for (int i=directories().count()-1; i>=0; i--) {
if (!QDir(directories().at(i)).entryList(QDir::Files).contains(fileName()))
for (int i = directories().count() - 1; i >= 0; i--) {
if (!QDir(directories().at(i))
.entryList(QDir::Files)
.contains(fileName()))
continue;
QSettings settings(QString("%1/%2").arg(directories().at(i)).arg(fileName()),
QSettings::IniFormat);
QSettings settings(
QString("%1/%2").arg(directories().at(i)).arg(fileName()),
QSettings::IniFormat);
settings.beginGroup(QString("Desktop Entry"));
setCity(settings.value(QString("X-AW-City"), m_city).toString());
setCountry(settings.value(QString("X-AW-Country"), m_country).toString());
setCountry(
settings.value(QString("X-AW-Country"), m_country).toString());
setTs(settings.value(QString("X-AW-TS"), m_ts).toInt());
// api == 2
setImage(settings.value(QString("X-AW-Image"), QVariant(m_image)).toString() == QString("true"));
setImage(
settings.value(QString("X-AW-Image"), QVariant(m_image)).toString()
== QString("true"));
settings.endGroup();
}
// update for current API
if ((apiVersion() > 0) && (apiVersion() < AWEWAPI)) {
qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to" << AWEWAPI;
qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to"
<< AWEWAPI;
setApiVersion(AWEWAPI);
writeConfiguration();
}
@ -212,8 +222,9 @@ void ExtWeather::readJsonMap()
{
qCDebug(LOG_LIB);
QString fileName = QStandardPaths::locate(QStandardPaths::GenericDataLocation,
QString("awesomewidgets/weather/awesomewidgets-extweather-ids.json"));
QString fileName = QStandardPaths::locate(
QStandardPaths::GenericDataLocation,
QString("awesomewidgets/weather/awesomewidgets-extweather-ids.json"));
qCInfo(LOG_LIB) << "Map file" << fileName;
QFile jsonFile(fileName);
if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
@ -244,7 +255,8 @@ QVariantHash ExtWeather::run()
if (times == 1) {
qCInfo(LOG_LIB) << "Send request";
isRunning = true;
QNetworkReply *reply = manager->get(QNetworkRequest(QUrl(url(m_ts != 0))));
QNetworkReply *reply
= manager->get(QNetworkRequest(QUrl(url(m_ts != 0))));
new QReplyTimeout(reply, 1000);
}
@ -269,7 +281,8 @@ int ExtWeather::showConfiguration(const QVariant args)
ui->lineEdit_country->setText(m_country);
ui->spinBox_timestamp->setValue(m_ts);
ui->checkBox_image->setCheckState(m_image ? Qt::Checked : Qt::Unchecked);
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked : Qt::Unchecked);
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked
: Qt::Unchecked);
ui->spinBox_interval->setValue(interval());
int ret = exec();
@ -296,8 +309,9 @@ void ExtWeather::writeConfiguration() const
qCDebug(LOG_LIB);
AbstractExtItem::writeConfiguration();
QSettings settings(QString("%1/%2").arg(directories().first()).arg(fileName()),
QSettings::IniFormat);
QSettings settings(
QString("%1/%2").arg(directories().first()).arg(fileName()),
QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup(QString("Desktop Entry"));
@ -330,7 +344,8 @@ void ExtWeather::weatherReplyReceived(QNetworkReply *reply)
// convert to map
QVariantMap json = jsonDoc.toVariant().toMap();
if (json[QString("cod")].toInt() != 200) {
qCWarning(LOG_LIB) << "Invalid OpenWeatherMap return code" << json[QString("cod")].toInt();
qCWarning(LOG_LIB) << "Invalid OpenWeatherMap return code"
<< json[QString("cod")].toInt();
return;
}
@ -339,11 +354,10 @@ void ExtWeather::weatherReplyReceived(QNetworkReply *reply)
data = parseSingleJson(json);
} else {
QVariantList list = json[QString("list")].toList();
data = parseSingleJson(list.count() <= m_ts
? list.at(m_ts-1).toMap()
: list.last().toMap());
data = parseSingleJson(list.count() <= m_ts ? list.at(m_ts - 1).toMap()
: list.last().toMap());
}
foreach(QString key, data.keys())
foreach (QString key, data.keys())
values[tag(key)] = data[key];
}
@ -366,8 +380,10 @@ QVariantHash ExtWeather::parseSingleJson(const QVariantMap json) const
// main data
QVariantMap mainWeather = json[QString("main")].toMap();
if (!weather.isEmpty()) {
output[QString("humidity")] = mainWeather[QString("humidity")].toFloat();
output[QString("pressure")] = mainWeather[QString("pressure")].toFloat();
output[QString("humidity")]
= mainWeather[QString("humidity")].toFloat();
output[QString("pressure")]
= mainWeather[QString("pressure")].toFloat();
output[QString("temperature")] = mainWeather[QString("temp")].toFloat();
}

View File

@ -22,12 +22,17 @@
#include "abstractextitem.h"
#define OWM_URL "http://api.openweathermap.org/data/2.5/weather?q=$CITY,$COUNTRY&units=metric"
#define OWM_FORECAST_URL "http://api.openweathermap.org/data/2.5/forecast?q=$CITY,$COUNTRY&units=metric"
#define OWM_URL \
"http://api.openweathermap.org/data/2.5/" \
"weather?q=$CITY,$COUNTRY&units=metric"
#define OWM_FORECAST_URL \
"http://api.openweathermap.org/data/2.5/" \
"forecast?q=$CITY,$COUNTRY&units=metric"
namespace Ui {
class ExtWeather;
namespace Ui
{
class ExtWeather;
}
class ExtWeather : public AbstractExtItem
@ -39,7 +44,8 @@ class ExtWeather : public AbstractExtItem
Q_PROPERTY(int ts READ ts WRITE setTs)
public:
explicit ExtWeather(QWidget *parent = nullptr, const QString weatherName = QString(),
explicit ExtWeather(QWidget *parent = nullptr,
const QString weatherName = QString(),
const QStringList directories = QStringList());
virtual ~ExtWeather();
ExtWeather *copy(const QString _fileName, const int _number);

View File

@ -36,8 +36,8 @@
GraphicalItem::GraphicalItem(QWidget *parent, const QString desktopName,
const QStringList directories)
: AbstractExtItem(parent, desktopName, directories),
ui(new Ui::GraphicalItem)
: AbstractExtItem(parent, desktopName, directories)
, ui(new Ui::GraphicalItem)
{
qCDebug(LOG_LIB);
@ -47,8 +47,10 @@ GraphicalItem::GraphicalItem(QWidget *parent, const QString desktopName,
initScene();
connect(ui->pushButton_activeColor, SIGNAL(clicked()), this, SLOT(changeColor()));
connect(ui->pushButton_inactiveColor, SIGNAL(clicked()), this, SLOT(changeColor()));
connect(ui->pushButton_activeColor, SIGNAL(clicked()), this,
SLOT(changeColor()));
connect(ui->pushButton_inactiveColor, SIGNAL(clicked()), this,
SLOT(changeColor()));
}
@ -91,10 +93,11 @@ QString GraphicalItem::image(const QVariant value)
{
qCDebug(LOG_LIB);
qCDebug(LOG_LIB) << "Value" << value;
if (m_bar == QString("none")) return QString("");
if (m_bar == QString("none"))
return QString("");
m_scene->clear();
int scale[2] = { 1, 1 };
int scale[2] = {1, 1};
// paint
switch (m_type) {
@ -121,12 +124,13 @@ QString GraphicalItem::image(const QVariant value)
}
// convert
QPixmap pixmap = m_view->grab().transformed(QTransform().scale(scale[0], scale[1]));
QPixmap pixmap
= m_view->grab().transformed(QTransform().scale(scale[0], scale[1]));
QByteArray byteArray;
QBuffer buffer(&byteArray);
pixmap.save(&buffer, "PNG");
QString url = QString("<img src=\"data:image/png;base64,%1\"/>").
arg(QString(byteArray.toBase64()));
QString url = QString("<img src=\"data:image/png;base64,%1\"/>")
.arg(QString(byteArray.toBase64()));
return url;
}
@ -253,7 +257,8 @@ void GraphicalItem::setBar(const QString _bar)
qCDebug(LOG_LIB);
qCDebug(LOG_LIB) << "Bar" << _bar;
if (!_bar.contains(QRegExp(QString("^(cpu(?!cl).*|gpu$|mem$|swap$|hdd[0-9].*|bat.*)")))) {
if (!_bar.contains(QRegExp(
QString("^(cpu(?!cl).*|gpu$|mem$|swap$|hdd[0-9].*|bat.*)")))) {
qCWarning(LOG_LIB) << "Unsupported bar type" << _bar;
m_bar = QString("none");
} else {
@ -353,18 +358,27 @@ void GraphicalItem::readConfiguration()
qCDebug(LOG_LIB);
AbstractExtItem::readConfiguration();
for (int i=directories().count()-1; i>=0; i--) {
if (!QDir(directories().at(i)).entryList(QDir::Files).contains(fileName()))
for (int i = directories().count() - 1; i >= 0; i--) {
if (!QDir(directories().at(i))
.entryList(QDir::Files)
.contains(fileName()))
continue;
QSettings settings(QString("%1/%2").arg(directories().at(i)).arg(fileName()),
QSettings::IniFormat);
QSettings settings(
QString("%1/%2").arg(directories().at(i)).arg(fileName()),
QSettings::IniFormat);
settings.beginGroup(QString("Desktop Entry"));
setBar(settings.value(QString("X-AW-Value"), m_bar).toString());
setActiveColor(settings.value(QString("X-AW-ActiveColor"), m_activeColor).toString());
setInactiveColor(settings.value(QString("X-AW-InactiveColor"), m_inactiveColor).toString());
setActiveColor(
settings.value(QString("X-AW-ActiveColor"), m_activeColor)
.toString());
setInactiveColor(
settings.value(QString("X-AW-InactiveColor"), m_inactiveColor)
.toString());
setStrType(settings.value(QString("X-AW-Type"), strType()).toString());
setStrDirection(settings.value(QString("X-AW-Direction"), strDirection()).toString());
setStrDirection(
settings.value(QString("X-AW-Direction"), strDirection())
.toString());
setHeight(settings.value(QString("X-AW-Height"), m_height).toInt());
setWidth(settings.value(QString("X-AW-Width"), m_width).toInt());
// api == 2
@ -375,7 +389,8 @@ void GraphicalItem::readConfiguration()
// update for current API
if ((apiVersion() > 0) && (apiVersion() < AWGIAPI)) {
qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to" << AWGIAPI;
qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to"
<< AWGIAPI;
setApiVersion(AWGIAPI);
writeConfiguration();
}
@ -433,8 +448,9 @@ void GraphicalItem::writeConfiguration() const
qCDebug(LOG_LIB);
AbstractExtItem::writeConfiguration();
QSettings settings(QString("%1/%2").arg(directories().first()).arg(fileName()),
QSettings::IniFormat);
QSettings settings(
QString("%1/%2").arg(directories().first()).arg(fileName()),
QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup(QString("Desktop Entry"));
@ -455,7 +471,8 @@ void GraphicalItem::changeColor()
{
qCDebug(LOG_LIB);
QColor color = stringToColor((static_cast<QPushButton *>(sender()))->text());
QColor color
= stringToColor((static_cast<QPushButton *>(sender()))->text());
QColor newColor = QColorDialog::getColor(color, this, tr("Select color"),
QColorDialog::ShowAlphaChannel);
if (!newColor.isValid())
@ -468,7 +485,8 @@ void GraphicalItem::changeColor()
colorText.append(QString("%1").arg(newColor.blue()));
colorText.append(QString("%1").arg(newColor.alpha()));
return static_cast<QPushButton *>(sender())->setText(colorText.join(QChar(',')));
return static_cast<QPushButton *>(sender())
->setText(colorText.join(QChar(',')));
}
@ -509,13 +527,13 @@ void GraphicalItem::paintCircle(const float value)
pen.setColor(inactive);
circle = m_scene->addEllipse(0.0, 0.0, m_width, m_height, pen,
QBrush(inactive, Qt::SolidPattern));
circle->setSpanAngle(- (1.0 - percent) * 360.0 * 16.0);
circle->setSpanAngle(-(1.0 - percent) * 360.0 * 16.0);
circle->setStartAngle(90.0 * 16.0 - percent * 360.0 * 16.0);
// active
pen.setColor(active);
circle = m_scene->addEllipse(0.0, 0.0, m_width, m_height, pen,
QBrush(active, Qt::SolidPattern));
circle->setSpanAngle(- percent * 360.0 * 16.0);
circle->setSpanAngle(-percent * 360.0 * 16.0);
circle->setStartAngle(90.0 * 16.0);
}
@ -528,15 +546,16 @@ void GraphicalItem::paintGraph(const QList<float> value)
pen.setColor(stringToColor(m_activeColor));
// default norms
float normX = static_cast<float>(m_width) / static_cast<float>(value.count());
float normX
= static_cast<float>(m_width) / static_cast<float>(value.count());
float normY = static_cast<float>(m_height) / (1.5 * 100.0);
// paint graph
for (int i=0; i<value.count()-1; i++) {
for (int i = 0; i < value.count() - 1; i++) {
// some magic here
float x1 = i * normX;
float y1 = - fabs(value.at(i)) * normY + 5.0;
float y1 = -fabs(value.at(i)) * normY + 5.0;
float x2 = (i + 1) * normX;
float y2 = - fabs(value.at(i+1)) * normY + 5.0;
float y2 = -fabs(value.at(i + 1)) * normY + 5.0;
m_scene->addLine(x1, y1, x2, y2, pen);
}
}

View File

@ -26,8 +26,9 @@
class QGraphicsScene;
class QGraphicsView;
namespace Ui {
class GraphicalItem;
namespace Ui
{
class GraphicalItem;
}
class GraphicalItem : public AbstractExtItem
@ -42,18 +43,11 @@ class GraphicalItem : public AbstractExtItem
Q_PROPERTY(int width READ width WRITE setWidth)
public:
enum Direction {
LeftToRight = 0,
RightToLeft
};
enum Type {
Horizontal = 0,
Vertical,
Circle,
Graph
};
enum Direction { LeftToRight = 0, RightToLeft };
enum Type { Horizontal = 0, Vertical, Circle, Graph };
explicit GraphicalItem(QWidget *parent = nullptr, const QString desktopName = QString(),
explicit GraphicalItem(QWidget *parent = nullptr,
const QString desktopName = QString(),
const QStringList directories = QStringList());
virtual ~GraphicalItem();
GraphicalItem *copy(const QString _fileName, const int _number);