From 14aab3b7581155f08c2de91863dda0aad0705a8d Mon Sep 17 00:00:00 2001 From: arcan1s Date: Wed, 11 May 2016 14:02:15 +0300 Subject: [PATCH] rewrite extensions to new model --- sources/awesomewidgets/abstractextitem.cpp | 76 +++++++++----------- sources/awesomewidgets/abstractextitem.h | 9 +-- sources/awesomewidgets/extitemaggregator.h | 40 ++++++----- sources/awesomewidgets/extquotes.cpp | 32 +++------ sources/awesomewidgets/extquotes.h | 3 +- sources/awesomewidgets/extscript.cpp | 43 +++++------- sources/awesomewidgets/extscript.h | 3 +- sources/awesomewidgets/extupgrade.cpp | 35 ++++------ sources/awesomewidgets/extupgrade.h | 3 +- sources/awesomewidgets/extweather.cpp | 41 ++++------- sources/awesomewidgets/extweather.h | 3 +- sources/awesomewidgets/graphicalitem.cpp | 80 +++++++++------------- sources/awesomewidgets/graphicalitem.h | 3 +- 13 files changed, 151 insertions(+), 220 deletions(-) diff --git a/sources/awesomewidgets/abstractextitem.cpp b/sources/awesomewidgets/abstractextitem.cpp index fc6abde..7ec998f 100644 --- a/sources/awesomewidgets/abstractextitem.cpp +++ b/sources/awesomewidgets/abstractextitem.cpp @@ -26,16 +26,13 @@ #include "abstractextitemaggregator.h" -AbstractExtItem::AbstractExtItem(QWidget *parent, const QString desktopName, - const QStringList directories) +AbstractExtItem::AbstractExtItem(QWidget *parent, const QString filePath) : QDialog(parent) - , m_fileName(desktopName) - , m_dirs(directories) + , m_fileName(filePath) { qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; - qCDebug(LOG_LIB) << "Desktop name" << desktopName << "directories" - << directories; + qCDebug(LOG_LIB) << "Desktop name" << filePath; m_name = m_fileName; } @@ -57,6 +54,21 @@ void AbstractExtItem::copyDefaults(AbstractExtItem *_other) const } +QString AbstractExtItem::writtableConfig() const +{ + QStringList paths = m_fileName.split(QChar('/')); + + QString name = paths.takeLast(); + QString dir = paths.takeLast(); + + return QString("%1/awesomewidgets/%2/%3") + .arg(QStandardPaths::writableLocation( + QStandardPaths::GenericDataLocation)) + .arg(dir) + .arg(name); +} + + int AbstractExtItem::apiVersion() const { return m_apiVersion; @@ -69,12 +81,6 @@ QString AbstractExtItem::comment() const } -QStringList AbstractExtItem::directories() const -{ - return m_dirs; -} - - QString AbstractExtItem::fileName() const { return m_fileName; @@ -173,48 +179,34 @@ void AbstractExtItem::setNumber(int _number) void AbstractExtItem::readConfiguration() { - 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), - QSettings::IniFormat); + QSettings settings(m_fileName, QSettings::IniFormat); - 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()); - setNumber(settings.value(QString("X-AW-Number"), m_number).toInt()); - settings.endGroup(); - } + 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()); + setNumber(settings.value(QString("X-AW-Number"), m_number).toInt()); + settings.endGroup(); } bool AbstractExtItem::tryDelete() const { - for (auto 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; - } + bool status = QFile::remove(m_fileName); + qCInfo(LOG_AW) << "Remove file" << m_fileName << status; - // check if exists - for (auto dir : m_dirs) - if (QFile::exists(QString("%1/%2").arg(dir).arg(m_fileName))) - return false; - return true; + return status; } void AbstractExtItem::writeConfiguration() const { - QSettings settings(QString("%1/%2").arg(m_dirs.first()).arg(m_fileName), - QSettings::IniFormat); + QSettings settings(writtableConfig(), QSettings::IniFormat); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); settings.beginGroup(QString("Desktop Entry")); diff --git a/sources/awesomewidgets/abstractextitem.h b/sources/awesomewidgets/abstractextitem.h index e2ec0b8..ff02013 100644 --- a/sources/awesomewidgets/abstractextitem.h +++ b/sources/awesomewidgets/abstractextitem.h @@ -28,7 +28,6 @@ class AbstractExtItem : public QDialog Q_PROPERTY(bool active READ isActive WRITE setActive) Q_PROPERTY(int apiVersion READ apiVersion WRITE setApiVersion) Q_PROPERTY(QString comment READ comment WRITE setComment) - Q_PROPERTY(QStringList directories READ directories) Q_PROPERTY(QString fileName READ fileName) Q_PROPERTY(int interval READ interval WRITE setInterval) Q_PROPERTY(QString name READ name WRITE setName) @@ -37,16 +36,15 @@ class AbstractExtItem : public QDialog public: explicit AbstractExtItem(QWidget *parent = nullptr, - const QString desktopName = QString(), - const QStringList directories = QStringList()); + const QString filePath = QString()); virtual ~AbstractExtItem(); virtual AbstractExtItem *copy(const QString _fileName, const int _number) = 0; - void copyDefaults(AbstractExtItem *_other) const; + virtual void copyDefaults(AbstractExtItem *_other) const; + QString writtableConfig() const; // get methods int apiVersion() const; QString comment() const; - QStringList directories() const; QString fileName() const; int interval() const; bool isActive() const; @@ -71,7 +69,6 @@ public slots: private: QString m_fileName; - QStringList m_dirs; virtual void translate() = 0; // properties int m_apiVersion = 0; diff --git a/sources/awesomewidgets/extitemaggregator.h b/sources/awesomewidgets/extitemaggregator.h index df92a16..740d018 100644 --- a/sources/awesomewidgets/extitemaggregator.h +++ b/sources/awesomewidgets/extitemaggregator.h @@ -57,7 +57,7 @@ public: void editItems() { - repaint(); + repaintList(); int ret = dialog->exec(); qCInfo(LOG_LIB) << "Dialog returns" << ret; }; @@ -104,7 +104,8 @@ public: T *found = nullptr; for (auto item : m_items) { - if (item->fileName() != widgetItem->text()) + QString fileName = QFileInfo(item->fileName()).fileName(); + if (fileName != widgetItem->text()) continue; found = item; break; @@ -135,7 +136,6 @@ private: QList m_activeItems; QString m_type; - // init method QList getItems() { // create directory at $HOME @@ -161,7 +161,8 @@ private: continue; qCInfo(LOG_LIB) << "Found file" << file << "in" << dir; names.append(file); - items.append(new T(this, file, dirs)); + QString filePath = QString("%1/%2").arg(dir).arg(file); + items.append(new T(this, filePath)); } } @@ -185,12 +186,13 @@ private: } }; - void repaint() + void repaintList() { widgetDialog->clear(); for (auto _item : m_items) { + QString fileName = QFileInfo(_item->fileName()).fileName(); QListWidgetItem *item - = new QListWidgetItem(_item->fileName(), widgetDialog); + = new QListWidgetItem(fileName, widgetDialog); QStringList tooltip; tooltip.append(i18n("Name: %1", _item->name())); tooltip.append(i18n("Comment: %1", _item->comment())); @@ -206,15 +208,20 @@ private: T *source = itemFromWidget(); QString fileName = getName(); int number = uniqNumber(); + QString dir = QString("%1/awesomewidgets/%2") + .arg(QStandardPaths::writableLocation( + QStandardPaths::GenericDataLocation)) + .arg(m_type); if ((source == nullptr) || (fileName.isEmpty())) { qCWarning(LOG_LIB) << "Nothing to copy"; return; } + QString filePath = QString("%1/%2").arg(dir).arg(fileName); - T *newItem = static_cast(source->copy(fileName, number)); + T *newItem = static_cast(source->copy(filePath, number)); if (newItem->showConfiguration(configArgs()) == 1) { initItems(); - repaint(); + repaintList(); } }; @@ -222,20 +229,21 @@ private: { QString fileName = getName(); int number = uniqNumber(); - QStringList dirs = QStandardPaths::locateAll( - QStandardPaths::GenericDataLocation, - QString("awesomewidgets/%1").arg(m_type), - QStandardPaths::LocateDirectory); + QString dir = QString("%1/awesomewidgets/%2") + .arg(QStandardPaths::writableLocation( + QStandardPaths::GenericDataLocation)) + .arg(m_type); if (fileName.isEmpty()) { qCWarning(LOG_LIB) << "Nothing to create"; return; }; + QString filePath = QString("%1/%2").arg(dir).arg(fileName); - T *newItem = new T(this, fileName, dirs); + T *newItem = new T(this, filePath); newItem->setNumber(number); if (newItem->showConfiguration(configArgs()) == 1) { initItems(); - repaint(); + repaintList(); } }; @@ -249,7 +257,7 @@ private: if (source->tryDelete()) { initItems(); - repaint(); + repaintList(); } }; @@ -263,7 +271,7 @@ private: if (source->showConfiguration(configArgs()) == 1) { initItems(); - repaint(); + repaintList(); } }; }; diff --git a/sources/awesomewidgets/extquotes.cpp b/sources/awesomewidgets/extquotes.cpp index 473b2a1..e115a35 100644 --- a/sources/awesomewidgets/extquotes.cpp +++ b/sources/awesomewidgets/extquotes.cpp @@ -33,9 +33,8 @@ #include "awdebug.h" -ExtQuotes::ExtQuotes(QWidget *parent, const QString quotesName, - const QStringList directories) - : AbstractExtItem(parent, quotesName, directories) +ExtQuotes::ExtQuotes(QWidget *parent, const QString filePath) + : AbstractExtItem(parent, filePath) , ui(new Ui::ExtQuotes) { qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; @@ -76,11 +75,10 @@ ExtQuotes::~ExtQuotes() ExtQuotes *ExtQuotes::copy(const QString _fileName, const int _number) { - qCDebug(LOG_LIB) << "File" << _fileName; - qCDebug(LOG_LIB) << "Number" << _number; + qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; - ExtQuotes *item = new ExtQuotes(static_cast(parent()), _fileName, - directories()); + ExtQuotes *item + = new ExtQuotes(static_cast(parent()), _fileName); copyDefaults(item); item->setNumber(_number); item->setTicker(ticker()); @@ -113,19 +111,11 @@ void ExtQuotes::readConfiguration() { AbstractExtItem::readConfiguration(); - 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(fileName(), QSettings::IniFormat); - settings.beginGroup(QString("Desktop Entry")); - setTicker(settings.value(QString("X-AW-Ticker"), m_ticker).toString()); - settings.endGroup(); - } + settings.beginGroup(QString("Desktop Entry")); + setTicker(settings.value(QString("X-AW-Ticker"), m_ticker).toString()); + settings.endGroup(); // update for current API if ((apiVersion() > 0) && (apiVersion() < AWEQAPI)) { @@ -200,9 +190,7 @@ void ExtQuotes::writeConfiguration() const { AbstractExtItem::writeConfiguration(); - QSettings settings( - QString("%1/%2").arg(directories().first()).arg(fileName()), - QSettings::IniFormat); + QSettings settings(writtableConfig(), QSettings::IniFormat); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); settings.beginGroup(QString("Desktop Entry")); diff --git a/sources/awesomewidgets/extquotes.h b/sources/awesomewidgets/extquotes.h index 4ec2757..16c3fe7 100644 --- a/sources/awesomewidgets/extquotes.h +++ b/sources/awesomewidgets/extquotes.h @@ -39,8 +39,7 @@ class ExtQuotes : public AbstractExtItem public: explicit ExtQuotes(QWidget *parent = nullptr, - const QString quotesName = QString(), - const QStringList directories = QStringList()); + const QString filePath = QString()); virtual ~ExtQuotes(); ExtQuotes *copy(const QString _fileName, const int _number); // get methods diff --git a/sources/awesomewidgets/extscript.cpp b/sources/awesomewidgets/extscript.cpp index a674ff3..3e278c6 100644 --- a/sources/awesomewidgets/extscript.cpp +++ b/sources/awesomewidgets/extscript.cpp @@ -30,9 +30,8 @@ #include "awdebug.h" -ExtScript::ExtScript(QWidget *parent, const QString scriptName, - const QStringList directories) - : AbstractExtItem(parent, scriptName, directories) +ExtScript::ExtScript(QWidget *parent, const QString filePath) + : AbstractExtItem(parent, filePath) , ui(new Ui::ExtScript) { qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; @@ -65,8 +64,8 @@ ExtScript *ExtScript::copy(const QString _fileName, const int _number) { qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; - ExtScript *item = new ExtScript(static_cast(parent()), _fileName, - directories()); + ExtScript *item + = new ExtScript(static_cast(parent()), _fileName); copyDefaults(item); item->setExecutable(executable()); item->setNumber(_number); @@ -215,26 +214,18 @@ void ExtScript::readConfiguration() { AbstractExtItem::readConfiguration(); - 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(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()); - // api == 3 - setFilters(settings.value(QString("X-AW-Filters"), m_filters) - .toString() - .split(QChar(','), QString::SkipEmptyParts)); - settings.endGroup(); - } + 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()); + // api == 3 + 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)) { @@ -344,9 +335,7 @@ void ExtScript::writeConfiguration() const { AbstractExtItem::writeConfiguration(); - QSettings settings( - QString("%1/%2").arg(directories().first()).arg(fileName()), - QSettings::IniFormat); + QSettings settings(writtableConfig(), QSettings::IniFormat); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); settings.beginGroup(QString("Desktop Entry")); diff --git a/sources/awesomewidgets/extscript.h b/sources/awesomewidgets/extscript.h index 8d1e9b1..a6be0bd 100644 --- a/sources/awesomewidgets/extscript.h +++ b/sources/awesomewidgets/extscript.h @@ -40,8 +40,7 @@ public: enum class Redirect { stdout2stderr, nothing, stderr2stdout, swap }; explicit ExtScript(QWidget *parent = nullptr, - const QString scriptName = QString(), - const QStringList directories = QStringList()); + const QString filePath = QString()); virtual ~ExtScript(); ExtScript *copy(const QString _fileName, const int _number); // get methods diff --git a/sources/awesomewidgets/extupgrade.cpp b/sources/awesomewidgets/extupgrade.cpp index 9c23963..fe5cd11 100644 --- a/sources/awesomewidgets/extupgrade.cpp +++ b/sources/awesomewidgets/extupgrade.cpp @@ -28,9 +28,8 @@ #include "awdebug.h" -ExtUpgrade::ExtUpgrade(QWidget *parent, const QString upgradeName, - const QStringList directories) - : AbstractExtItem(parent, upgradeName, directories) +ExtUpgrade::ExtUpgrade(QWidget *parent, const QString filePath) + : AbstractExtItem(parent, filePath) , ui(new Ui::ExtUpgrade) { qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; @@ -61,8 +60,8 @@ ExtUpgrade *ExtUpgrade::copy(const QString _fileName, const int _number) { qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; - ExtUpgrade *item = new ExtUpgrade(static_cast(parent()), - _fileName, directories()); + ExtUpgrade *item + = new ExtUpgrade(static_cast(parent()), _fileName); copyDefaults(item); item->setExecutable(executable()); item->setFilter(filter()); @@ -127,22 +126,14 @@ void ExtUpgrade::readConfiguration() { AbstractExtItem::readConfiguration(); - 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(fileName(), QSettings::IniFormat); - settings.beginGroup(QString("Desktop Entry")); - setExecutable(settings.value(QString("Exec"), m_executable).toString()); - setNull(settings.value(QString("X-AW-Null"), m_null).toInt()); - // api == 3 - setFilter(settings.value(QString("X-AW-Filter"), m_filter).toString()); - settings.endGroup(); - } + settings.beginGroup(QString("Desktop Entry")); + setExecutable(settings.value(QString("Exec"), m_executable).toString()); + setNull(settings.value(QString("X-AW-Null"), m_null).toInt()); + // api == 3 + setFilter(settings.value(QString("X-AW-Filter"), m_filter).toString()); + settings.endGroup(); // update for current API if ((apiVersion() > 0) && (apiVersion() < AWEUAPI)) { @@ -208,9 +199,7 @@ void ExtUpgrade::writeConfiguration() const { AbstractExtItem::writeConfiguration(); - QSettings settings( - QString("%1/%2").arg(directories().first()).arg(fileName()), - QSettings::IniFormat); + QSettings settings(writtableConfig(), QSettings::IniFormat); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); settings.beginGroup(QString("Desktop Entry")); diff --git a/sources/awesomewidgets/extupgrade.h b/sources/awesomewidgets/extupgrade.h index c5a3b8a..709d4d7 100644 --- a/sources/awesomewidgets/extupgrade.h +++ b/sources/awesomewidgets/extupgrade.h @@ -37,8 +37,7 @@ class ExtUpgrade : public AbstractExtItem public: explicit ExtUpgrade(QWidget *parent = nullptr, - const QString upgradeName = QString(), - const QStringList directories = QStringList()); + const QString filePath = QString()); virtual ~ExtUpgrade(); ExtUpgrade *copy(const QString _fileName, const int _number); // get methods diff --git a/sources/awesomewidgets/extweather.cpp b/sources/awesomewidgets/extweather.cpp index 63f8c18..5e66da8 100644 --- a/sources/awesomewidgets/extweather.cpp +++ b/sources/awesomewidgets/extweather.cpp @@ -34,9 +34,8 @@ #include "awdebug.h" -ExtWeather::ExtWeather(QWidget *parent, const QString weatherName, - const QStringList directories) - : AbstractExtItem(parent, weatherName, directories) +ExtWeather::ExtWeather(QWidget *parent, const QString filePath) + : AbstractExtItem(parent, filePath) , ui(new Ui::ExtWeather) { qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; @@ -76,8 +75,8 @@ ExtWeather *ExtWeather::copy(const QString _fileName, const int _number) { qCDebug(LOG_LIB) << "File" << _fileName << "number" << _number; - ExtWeather *item = new ExtWeather(static_cast(parent()), - _fileName, directories()); + ExtWeather *item + = new ExtWeather(static_cast(parent()), _fileName); copyDefaults(item); item->setCity(city()); item->setCountry(country()); @@ -165,26 +164,16 @@ void ExtWeather::readConfiguration() { AbstractExtItem::readConfiguration(); - 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(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()); - 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")); - settings.endGroup(); - } + 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()); + 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")); + settings.endGroup(); // update for current API if ((apiVersion() > 0) && (apiVersion() < AWEWAPI)) { @@ -291,9 +280,7 @@ void ExtWeather::writeConfiguration() const { AbstractExtItem::writeConfiguration(); - QSettings settings( - QString("%1/%2").arg(directories().first()).arg(fileName()), - QSettings::IniFormat); + QSettings settings(writtableConfig(), QSettings::IniFormat); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); settings.beginGroup(QString("Desktop Entry")); diff --git a/sources/awesomewidgets/extweather.h b/sources/awesomewidgets/extweather.h index 1320a22..e4d91ee 100644 --- a/sources/awesomewidgets/extweather.h +++ b/sources/awesomewidgets/extweather.h @@ -43,8 +43,7 @@ class ExtWeather : public AbstractExtItem public: explicit ExtWeather(QWidget *parent = nullptr, - const QString weatherName = QString(), - const QStringList directories = QStringList()); + const QString filePath = QString()); virtual ~ExtWeather(); ExtWeather *copy(const QString _fileName, const int _number); QString weatherFromInt(const int _id) const; diff --git a/sources/awesomewidgets/graphicalitem.cpp b/sources/awesomewidgets/graphicalitem.cpp index 4579a06..d31b2a6 100644 --- a/sources/awesomewidgets/graphicalitem.cpp +++ b/sources/awesomewidgets/graphicalitem.cpp @@ -32,9 +32,8 @@ #include "graphicalitemhelper.h" -GraphicalItem::GraphicalItem(QWidget *parent, const QString desktopName, - const QStringList directories) - : AbstractExtItem(parent, desktopName, directories) +GraphicalItem::GraphicalItem(QWidget *parent, const QString filePath) + : AbstractExtItem(parent, filePath) , ui(new Ui::GraphicalItem) { qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; @@ -70,8 +69,8 @@ GraphicalItem *GraphicalItem::copy(const QString _fileName, const int _number) { qCDebug(LOG_LIB) << "File" << _fileName << "with number" << _number; - GraphicalItem *item = new GraphicalItem(static_cast(parent()), - _fileName, directories()); + GraphicalItem *item + = new GraphicalItem(static_cast(parent()), _fileName); copyDefaults(item); item->setActiveColor(m_activeColor); item->setBar(m_bar); @@ -401,47 +400,36 @@ void GraphicalItem::readConfiguration() { AbstractExtItem::readConfiguration(); - 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(fileName(), QSettings::IniFormat); - settings.beginGroup(QString("Desktop Entry")); - setCount(settings.value(QString("X-AW-Count"), m_count).toInt()); - setCustom(settings.value(QString("X-AW-Custom"), m_custom).toBool()); - setBar(settings.value(QString("X-AW-Value"), m_bar).toString()); - setMaxValue(settings.value(QString("X-AW-Max"), m_maxValue).toFloat()); - setMinValue(settings.value(QString("X-AW-Min"), m_minValue).toFloat()); - 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()); - setHeight(settings.value(QString("X-AW-Height"), m_height).toInt()); - setWidth(settings.value(QString("X-AW-Width"), m_width).toInt()); - // api == 5 - if (apiVersion() < 5) { - 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.beginGroup(QString("Desktop Entry")); + setCount(settings.value(QString("X-AW-Count"), m_count).toInt()); + setCustom(settings.value(QString("X-AW-Custom"), m_custom).toBool()); + setBar(settings.value(QString("X-AW-Value"), m_bar).toString()); + setMaxValue(settings.value(QString("X-AW-Max"), m_maxValue).toFloat()); + setMinValue(settings.value(QString("X-AW-Min"), m_minValue).toFloat()); + 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()); + setHeight(settings.value(QString("X-AW-Height"), m_height).toInt()); + setWidth(settings.value(QString("X-AW-Width"), m_width).toInt()); + // api == 5 + if (apiVersion() < 5) { + 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(); // update for current API if ((apiVersion() > 0) && (apiVersion() < AWGIAPI)) { @@ -520,9 +508,7 @@ void GraphicalItem::writeConfiguration() const { AbstractExtItem::writeConfiguration(); - QSettings settings( - QString("%1/%2").arg(directories().first()).arg(fileName()), - QSettings::IniFormat); + QSettings settings(writtableConfig(), QSettings::IniFormat); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); settings.beginGroup(QString("Desktop Entry")); diff --git a/sources/awesomewidgets/graphicalitem.h b/sources/awesomewidgets/graphicalitem.h index 24af844..3938c1a 100644 --- a/sources/awesomewidgets/graphicalitem.h +++ b/sources/awesomewidgets/graphicalitem.h @@ -53,8 +53,7 @@ public: enum class Type { Horizontal, Vertical, Circle, Graph, Bars }; explicit GraphicalItem(QWidget *parent = nullptr, - const QString desktopName = QString(), - const QStringList directories = QStringList()); + const QString filePath = QString()); virtual ~GraphicalItem(); GraphicalItem *copy(const QString _fileName, const int _number); QString image(const QVariant &value);