refactor: refresh shared library

This commit is contained in:
Evgenii Alekseev 2024-04-12 18:27:47 +03:00
parent 332d78eb25
commit dbfb3562a6
28 changed files with 130 additions and 144 deletions

View File

@ -41,18 +41,17 @@ QString AWDebug::getAboutText(const QString &_type)
} else if (_type == "description") { } else if (_type == "description") {
text = i18n("A set of minimalistic plasmoid widgets"); text = i18n("A set of minimalistic plasmoid widgets");
} else if (_type == "links") { } else if (_type == "links") {
text = i18n("Links:") + "<ul>" + QString("<li><a href=\"%1\">%2</a></li>").arg(HOMEPAGE).arg(i18n("Homepage")) text = i18n("Links:") + "<ul>" + QString("<li><a href=\"%1\">%2</a></li>").arg(HOMEPAGE, i18n("Homepage"))
+ QString("<li><a href=\"%1\">%2</a></li>").arg(REPOSITORY).arg(i18n("Repository")) + QString("<li><a href=\"%1\">%2</a></li>").arg(REPOSITORY, i18n("Repository"))
+ QString("<li><a href=\"%1\">%2</a></li>").arg(BUGTRACKER).arg(i18n("Bugtracker")) + QString("<li><a href=\"%1\">%2</a></li>").arg(BUGTRACKER, i18n("Bugtracker"))
+ QString("<li><a href=\"%1\">%2</a></li>").arg(TRANSLATION).arg(i18n("Translation issue")) + QString("<li><a href=\"%1\">%2</a></li>").arg(TRANSLATION, i18n("Translation issue"))
+ QString("<li><a href=\"%1\">%2</a></li>").arg(AUR_PACKAGES).arg(i18n("AUR packages")) + QString("<li><a href=\"%1\">%2</a></li>").arg(AUR_PACKAGES, i18n("AUR packages"))
+ QString("<li><a href=\"%1\">%2</a></li>").arg(OPENSUSE_PACKAGES).arg(i18n("openSUSE packages")) + QString("<li><a href=\"%1\">%2</a></li>").arg(OPENSUSE_PACKAGES, i18n("openSUSE packages")) + "</ul>";
+ "</ul>";
} else if (_type == "copy") { } else if (_type == "copy") {
text = QString("<small>&copy; %1 <a href=\"mailto:%2\">%3</a><br>").arg(DATE).arg(EMAIL).arg(AUTHOR) text = QString("<small>&copy; %1 <a href=\"mailto:%2\">%3</a><br>").arg(DATE, EMAIL, AUTHOR)
+ i18nc("This software is licensed under %1", LICENSE) + "</small>"; + i18n("This software is licensed under %1", LICENSE) + "</small>";
} else if (_type == "translators") { } else if (_type == "translators") {
QStringList translatorList = QString(TRANSLATORS).split(','); auto translatorList = QString(TRANSLATORS).split(',');
for (auto &translator : translatorList) for (auto &translator : translatorList)
translator = QString("<li>%1</li>").arg(translator); translator = QString("<li>%1</li>").arg(translator);
text = i18n("Translators:") + "<ul>" + translatorList.join("") + "</ul>"; text = i18n("Translators:") + "<ul>" + translatorList.join("") + "</ul>";
@ -60,16 +59,14 @@ QString AWDebug::getAboutText(const QString &_type)
QStringList trdPartyList = QString(TRDPARTY_LICENSE).split(';', Qt::SkipEmptyParts); QStringList trdPartyList = QString(TRDPARTY_LICENSE).split(';', Qt::SkipEmptyParts);
for (int i = 0; i < trdPartyList.count(); i++) for (int i = 0; i < trdPartyList.count(); i++)
trdPartyList[i] = QString("<li><a href=\"%3\">%1</a> (%2 license)</li>") trdPartyList[i] = QString("<li><a href=\"%3\">%1</a> (%2 license)</li>")
.arg(trdPartyList.at(i).split(',')[0]) .arg(trdPartyList.at(i).split(',')[0], trdPartyList.at(i).split(',')[1],
.arg(trdPartyList.at(i).split(',')[1]) trdPartyList.at(i).split(',')[2]);
.arg(trdPartyList.at(i).split(',')[2]);
text = i18n("This software uses:") + "<ul>" + trdPartyList.join("") + "</ul>"; text = i18n("This software uses:") + "<ul>" + trdPartyList.join("") + "</ul>";
} else if (_type == "thanks") { } else if (_type == "thanks") {
QStringList thanks = QString(SPECIAL_THANKS).split(';', Qt::SkipEmptyParts); QStringList thanks = QString(SPECIAL_THANKS).split(';', Qt::SkipEmptyParts);
for (int i = 0; i < thanks.count(); i++) for (int i = 0; i < thanks.count(); i++)
thanks[i] = QString("<li><a href=\"%2\">%1</a></li>") thanks[i]
.arg(thanks.at(i).split(',')[0]) = QString("<li><a href=\"%2\">%1</a></li>").arg(thanks.at(i).split(',')[0], thanks.at(i).split(',')[1]);
.arg(thanks.at(i).split(',')[1]);
text = i18n("Special thanks to:") + "<ul>" + thanks.join("") + "</ul>"; text = i18n("Special thanks to:") + "<ul>" + thanks.join("") + "</ul>";
} }

View File

@ -84,8 +84,7 @@ bool AWConfigHelper::exportConfiguration(QObject *_nativeConfig, const QString &
// extensions // extensions
for (auto &item : m_dirs) { for (auto &item : m_dirs) {
QStringList items QStringList items = QDir(QString("%1/%2").arg(m_baseDir, item)).entryList({"*.desktop"}, QDir::Files);
= QDir(QString("%1/%2").arg(m_baseDir, item)).entryList({"*.desktop"}, QDir::Files);
settings.beginGroup(item); settings.beginGroup(item);
for (auto &it : items) for (auto &it : items)
copyExtensions(it, item, settings, false); copyExtensions(it, item, settings, false);

View File

@ -161,7 +161,7 @@ void AWFormatterHelper::initFormatters()
// check if already exists // check if already exists
auto values = m_formattersClasses.values(); auto values = m_formattersClasses.values();
if (std::any_of(values.cbegin(), values.cend(), if (std::any_of(values.cbegin(), values.cend(),
[&filePath](const AWAbstractFormatter *item) { return (item->fileName() == filePath); })) [&filePath](const AWAbstractFormatter *item) { return (item->filePath() == filePath); }))
continue; continue;
auto metadata = readMetadata(filePath); auto metadata = readMetadata(filePath);

View File

@ -71,7 +71,7 @@ bool AWUpdateHelper::checkVersion()
qCInfo(LOG_AW) << "Found version" << version << "actual one is" << m_foundVersion; qCInfo(LOG_AW) << "Found version" << version << "actual one is" << m_foundVersion;
if ((version != m_foundVersion) && (!QString(CHANGELOG).isEmpty())) { if ((version != m_foundVersion) && (!QString(CHANGELOG).isEmpty())) {
sendNotification(i18nc("Changelog of %1", VERSION), QString(CHANGELOG).replace('@', '\n')); sendNotification(i18n("Changelog of %1", VERSION), QString(CHANGELOG).replace('@', '\n'));
return true; return true;
} else if (version != m_foundVersion) { } else if (version != m_foundVersion) {
qCWarning(LOG_AW) << "No changelog information provided"; qCWarning(LOG_AW) << "No changelog information provided";
@ -106,7 +106,7 @@ void AWUpdateHelper::showUpdates(const QVersionNumber &_version)
qCDebug(LOG_AW) << "Version" << _version; qCDebug(LOG_AW) << "Version" << _version;
QString text; QString text;
text += i18nc("Current version : %1", VERSION); text += i18n("Current version : %1", VERSION);
text += QString(COMMIT_SHA).isEmpty() ? "\n" : QString(" (%1)\n").arg(QString(COMMIT_SHA)); text += QString(COMMIT_SHA).isEmpty() ? "\n" : QString(" (%1)\n").arg(QString(COMMIT_SHA));
text += i18n("New version : %1", _version.toString()) + "\n\n"; text += i18n("New version : %1", _version.toString()) + "\n\n";
text += i18n("Click \"Ok\" to download"); text += i18n("Click \"Ok\" to download");

View File

@ -29,13 +29,13 @@
AbstractExtItem::AbstractExtItem(QObject *_parent, const QString &_filePath) AbstractExtItem::AbstractExtItem(QObject *_parent, const QString &_filePath)
: QObject(_parent) : QObject(_parent)
, m_fileName(_filePath) , m_filePath(_filePath)
{ {
qCDebug(LOG_LIB) << __PRETTY_FUNCTION__; qCDebug(LOG_LIB) << __PRETTY_FUNCTION__;
qCDebug(LOG_LIB) << "Desktop name" << _filePath; qCDebug(LOG_LIB) << "Desktop name" << _filePath;
m_name = m_fileName; m_name = m_filePath;
} }
@ -95,10 +95,11 @@ void AbstractExtItem::startTimer()
} }
QString AbstractExtItem::writtableConfig() const QString AbstractExtItem::writableConfig() const
{ {
auto path = m_fileName; auto path = m_filePath;
auto name = QFileInfo(path).fileName(); auto name = fileName();
// extract subdirectory
path.remove(path.length() - name.length() - 1, name.length() + 1); path.remove(path.length() - name.length() - 1, name.length() + 1);
auto dir = QFileInfo(path).fileName(); auto dir = QFileInfo(path).fileName();
@ -127,7 +128,13 @@ QString AbstractExtItem::cron() const
QString AbstractExtItem::fileName() const QString AbstractExtItem::fileName() const
{ {
return m_fileName; return QFileInfo(filePath()).fileName();
}
QString AbstractExtItem::filePath() const
{
return m_filePath;
} }
@ -267,7 +274,7 @@ void AbstractExtItem::deinitSocket()
m_socket->close(); m_socket->close();
QLocalServer::removeServer(socket()); QLocalServer::removeServer(socket());
disconnect(m_socket, &QLocalServer::newConnection, this, &AbstractExtItem::newConnectionReceived); disconnect(m_socket, &QLocalServer::newConnection, this, &AbstractExtItem::requestDataUpdate);
delete m_socket; delete m_socket;
} }
@ -280,13 +287,13 @@ void AbstractExtItem::initSocket()
m_socket = new QLocalServer(this); m_socket = new QLocalServer(this);
auto listening = m_socket->listen(socket()); auto listening = m_socket->listen(socket());
qCInfo(LOG_LIB) << "Server listening on" << socket() << listening; qCInfo(LOG_LIB) << "Server listening on" << socket() << listening;
connect(m_socket, &QLocalServer::newConnection, this, &AbstractExtItem::newConnectionReceived); connect(m_socket, &QLocalServer::newConnection, this, &AbstractExtItem::requestDataUpdate);
} }
void AbstractExtItem::readConfiguration() void AbstractExtItem::readConfiguration()
{ {
QSettings settings(m_fileName, QSettings::IniFormat); QSettings settings(m_filePath, QSettings::IniFormat);
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
setName(settings.value("Name", name()).toString()); setName(settings.value("Name", name()).toString());
@ -303,8 +310,8 @@ void AbstractExtItem::readConfiguration()
bool AbstractExtItem::tryDelete() const bool AbstractExtItem::tryDelete() const
{ {
auto status = QFile::remove(m_fileName); auto status = QFile::remove(m_filePath);
qCInfo(LOG_LIB) << "Remove file" << m_fileName << status; qCInfo(LOG_LIB) << "Remove file" << m_filePath << status;
return status; return status;
} }
@ -312,7 +319,7 @@ bool AbstractExtItem::tryDelete() const
void AbstractExtItem::writeConfiguration() const void AbstractExtItem::writeConfiguration() const
{ {
QSettings settings(writtableConfig(), QSettings::IniFormat); QSettings settings(writableConfig(), QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
@ -329,9 +336,3 @@ void AbstractExtItem::writeConfiguration() const
settings.sync(); settings.sync();
} }
void AbstractExtItem::newConnectionReceived()
{
emit(requestDataUpdate());
}

View File

@ -32,6 +32,7 @@ class AbstractExtItem : public QObject
Q_PROPERTY(QString comment READ comment WRITE setComment) Q_PROPERTY(QString comment READ comment WRITE setComment)
Q_PROPERTY(QString cron READ cron WRITE setCron) Q_PROPERTY(QString cron READ cron WRITE setCron)
Q_PROPERTY(QString fileName READ fileName) Q_PROPERTY(QString fileName READ fileName)
Q_PROPERTY(QString filePath READ filePath)
Q_PROPERTY(int interval READ interval WRITE setInterval) Q_PROPERTY(int interval READ interval WRITE setInterval)
Q_PROPERTY(QString name READ name WRITE setName) Q_PROPERTY(QString name READ name WRITE setName)
Q_PROPERTY(int number READ number WRITE setNumber) Q_PROPERTY(int number READ number WRITE setNumber)
@ -45,12 +46,13 @@ public:
virtual AbstractExtItem *copy(const QString &_fileName, int _number) = 0; virtual AbstractExtItem *copy(const QString &_fileName, int _number) = 0;
virtual void copyDefaults(AbstractExtItem *_other) const; virtual void copyDefaults(AbstractExtItem *_other) const;
virtual void startTimer(); virtual void startTimer();
[[nodiscard]] QString writtableConfig() const; [[nodiscard]] QString writableConfig() const;
// get methods // get methods
[[nodiscard]] int apiVersion() const; [[nodiscard]] int apiVersion() const;
[[nodiscard]] QString comment() const; [[nodiscard]] QString comment() const;
[[nodiscard]] QString cron() const; [[nodiscard]] QString cron() const;
[[nodiscard]] QString fileName() const; [[nodiscard]] QString fileName() const;
[[nodiscard]] QString filePath() const;
[[nodiscard]] int interval() const; [[nodiscard]] int interval() const;
[[nodiscard]] bool isActive() const; [[nodiscard]] bool isActive() const;
[[nodiscard]] QString name() const; [[nodiscard]] QString name() const;
@ -81,12 +83,9 @@ public slots:
[[nodiscard]] virtual bool tryDelete() const; [[nodiscard]] virtual bool tryDelete() const;
virtual void writeConfiguration() const; virtual void writeConfiguration() const;
private slots:
void newConnectionReceived();
private: private:
QCronScheduler *m_scheduler = nullptr; QCronScheduler *m_scheduler = nullptr;
QString m_fileName = "/dev/null"; QString m_filePath = "";
int m_times = 0; int m_times = 0;
// FIXME find a better way to do it // FIXME find a better way to do it
virtual void translate(void *_ui) = 0; virtual void translate(void *_ui) = 0;

View File

@ -35,8 +35,7 @@ AbstractExtItemAggregator::AbstractExtItemAggregator(QObject *_parent, QString _
// create directory at $HOME // create directory at $HOME
auto localDir = QString("%1/awesomewidgets/%2") auto localDir = QString("%1/awesomewidgets/%2")
.arg(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation), type()); .arg(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation), type());
QDir localDirectory; if (QDir().mkpath(localDir))
if (localDirectory.mkpath(localDir))
qCInfo(LOG_LIB) << "Created directory" << localDir; qCInfo(LOG_LIB) << "Created directory" << localDir;
} }
@ -102,18 +101,13 @@ int AbstractExtItemAggregator::exec()
auto createButton = ui->buttonBox->addButton(i18n("Create"), QDialogButtonBox::ActionRole); auto createButton = ui->buttonBox->addButton(i18n("Create"), QDialogButtonBox::ActionRole);
auto deleteButton = ui->buttonBox->addButton(i18n("Remove"), QDialogButtonBox::ActionRole); auto deleteButton = ui->buttonBox->addButton(i18n("Remove"), QDialogButtonBox::ActionRole);
connect(ui->buttonBox, &QDialogButtonBox::clicked, [&](QAbstractButton *_button) { connect(copyButton, &QPushButton::clicked, [this, ui]() { copyItem(ui->listWidget); });
if (dynamic_cast<QPushButton *>(_button) == copyButton) connect(createButton, &QPushButton::clicked, [this, ui]() { doCreateItem(ui->listWidget); });
copyItem(ui->listWidget); connect(deleteButton, &QPushButton::clicked, [this, ui]() { deleteItem(ui->listWidget); });
else if (dynamic_cast<QPushButton *>(_button) == createButton) connect(ui->buttonBox, &QDialogButtonBox::accepted, [this, ui]() { editItem(ui->listWidget); });
doCreateItem(ui->listWidget);
else if (dynamic_cast<QPushButton *>(_button) == deleteButton)
deleteItem(ui->listWidget);
else if (ui->buttonBox->buttonRole(_button) == QDialogButtonBox::AcceptRole)
editItem(ui->listWidget);
});
connect(ui->buttonBox, &QDialogButtonBox::rejected, [dialog]() { dialog->reject(); }); connect(ui->buttonBox, &QDialogButtonBox::rejected, [dialog]() { dialog->reject(); });
connect(ui->listWidget, &QListWidget::itemActivated, [&](QListWidgetItem *) { editItem(ui->listWidget); }); connect(ui->listWidget, &QListWidget::itemActivated, [this, ui](QListWidgetItem *) { editItem(ui->listWidget); });
repaintList(ui->listWidget); repaintList(ui->listWidget);
auto ret = dialog->exec(); auto ret = dialog->exec();
@ -145,8 +139,8 @@ AbstractExtItem *AbstractExtItemAggregator::itemFromWidget(QListWidget *_widget)
return nullptr; return nullptr;
AbstractExtItem *found = nullptr; AbstractExtItem *found = nullptr;
for (auto &item : items()) { for (auto item : items()) {
auto fileName = QFileInfo(item->fileName()).fileName(); auto fileName = item->fileName();
if (fileName != widgetItem->text()) if (fileName != widgetItem->text())
continue; continue;
found = item; found = item;
@ -162,8 +156,8 @@ AbstractExtItem *AbstractExtItemAggregator::itemFromWidget(QListWidget *_widget)
void AbstractExtItemAggregator::repaintList(QListWidget *_widget) const void AbstractExtItemAggregator::repaintList(QListWidget *_widget) const
{ {
_widget->clear(); _widget->clear();
for (auto &_item : items()) { for (auto _item : items()) {
QString fileName = QFileInfo(_item->fileName()).fileName(); QString fileName = _item->fileName();
auto item = new QListWidgetItem(fileName, _widget); auto item = new QListWidgetItem(fileName, _widget);
QStringList tooltip; QStringList tooltip;
tooltip.append(i18n("Name: %1", _item->name())); tooltip.append(i18n("Name: %1", _item->name()));
@ -178,9 +172,10 @@ void AbstractExtItemAggregator::repaintList(QListWidget *_widget) const
int AbstractExtItemAggregator::uniqNumber() const int AbstractExtItemAggregator::uniqNumber() const
{ {
QList<int> tagList; QList<int> tagList;
for (auto &item : items()) for (auto item : items())
tagList.append(item->number()); tagList.append(item->number());
int number = 0;
auto number = 0;
while (tagList.contains(number)) while (tagList.contains(number))
number++; number++;
@ -196,10 +191,8 @@ QVariant AbstractExtItemAggregator::configArgs() const
QStringList AbstractExtItemAggregator::directories() const QStringList AbstractExtItemAggregator::directories() const
{ {
auto dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QString("awesomewidgets/%1").arg(type()), return QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QString("awesomewidgets/%1").arg(type()),
QStandardPaths::LocateDirectory); QStandardPaths::LocateDirectory);
return dirs;
} }

View File

@ -23,7 +23,6 @@
#include "awdebug.h" #include "awdebug.h"
class QAbstractButton;
class QListWidget; class QListWidget;
class QListWidgetItem; class QListWidgetItem;
@ -59,7 +58,7 @@ public:
void deleteItem(QListWidget *_widget); void deleteItem(QListWidget *_widget);
void editItem(QListWidget *_widget); void editItem(QListWidget *_widget);
[[nodiscard]] int exec(); [[nodiscard]] int exec();
QString getName(); [[nodiscard]] static QString getName();
virtual void initItems() = 0; virtual void initItems() = 0;
[[nodiscard]] AbstractExtItem *itemFromWidget(QListWidget *_widget) const; [[nodiscard]] AbstractExtItem *itemFromWidget(QListWidget *_widget) const;
void repaintList(QListWidget *_widget) const; void repaintList(QListWidget *_widget) const;

View File

@ -113,7 +113,7 @@ void AWAbstractFormatter::readConfiguration()
{ {
AbstractExtItem::readConfiguration(); AbstractExtItem::readConfiguration();
QSettings settings(fileName(), QSettings::IniFormat); QSettings settings(filePath(), QSettings::IniFormat);
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
setStrType(settings.value("X-AW-Type", strType()).toString()); setStrType(settings.value("X-AW-Type", strType()).toString());
@ -125,7 +125,7 @@ void AWAbstractFormatter::writeConfiguration() const
{ {
AbstractExtItem::writeConfiguration(); AbstractExtItem::writeConfiguration();
QSettings settings(writtableConfig(), QSettings::IniFormat); QSettings settings(writableConfig(), QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");

View File

@ -50,6 +50,7 @@ AWDateTimeFormatter *AWDateTimeFormatter::copy(const QString &_fileName, const i
auto item = new AWDateTimeFormatter(parent(), _fileName); auto item = new AWDateTimeFormatter(parent(), _fileName);
AWAbstractFormatter::copyDefaults(item); AWAbstractFormatter::copyDefaults(item);
item->setFormat(format()); item->setFormat(format());
item->setTranslateString(translateString()); item->setTranslateString(translateString());
item->setNumber(_number); item->setNumber(_number);
@ -91,7 +92,7 @@ void AWDateTimeFormatter::readConfiguration()
{ {
AWAbstractFormatter::readConfiguration(); AWAbstractFormatter::readConfiguration();
QSettings settings(fileName(), QSettings::IniFormat); QSettings settings(filePath(), QSettings::IniFormat);
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
setFormat(settings.value("X-AW-Format", format()).toString()); setFormat(settings.value("X-AW-Format", format()).toString());
@ -140,7 +141,7 @@ void AWDateTimeFormatter::writeConfiguration() const
{ {
AWAbstractFormatter::writeConfiguration(); AWAbstractFormatter::writeConfiguration();
QSettings settings(writtableConfig(), QSettings::IniFormat); QSettings settings(writableConfig(), QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");

View File

@ -54,6 +54,7 @@ AWFloatFormatter *AWFloatFormatter::copy(const QString &_fileName, const int _nu
auto item = new AWFloatFormatter(parent(), _fileName); auto item = new AWFloatFormatter(parent(), _fileName);
AWAbstractFormatter::copyDefaults(item); AWAbstractFormatter::copyDefaults(item);
item->setCount(count()); item->setCount(count());
item->setFormat(format()); item->setFormat(format());
item->setFillChar(fillChar()); item->setFillChar(fillChar());
@ -174,7 +175,7 @@ void AWFloatFormatter::readConfiguration()
{ {
AWAbstractFormatter::readConfiguration(); AWAbstractFormatter::readConfiguration();
QSettings settings(fileName(), QSettings::IniFormat); QSettings settings(filePath(), QSettings::IniFormat);
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
setCount(settings.value("X-AW-Width", count()).toInt()); setCount(settings.value("X-AW-Width", count()).toInt());
@ -238,7 +239,7 @@ void AWFloatFormatter::writeConfiguration() const
{ {
AWAbstractFormatter::writeConfiguration(); AWAbstractFormatter::writeConfiguration();
QSettings settings(writtableConfig(), QSettings::IniFormat); QSettings settings(writableConfig(), QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");

View File

@ -41,10 +41,10 @@ QString AWJsonFormatter::convert(const QVariant &_value) const
qCDebug(LOG_LIB) << "Convert value" << _value; qCDebug(LOG_LIB) << "Convert value" << _value;
// check if _value is string and parse first if required // check if _value is string and parse first if required
QJsonDocument json = _value.userType() == QMetaType::QString ? QJsonDocument::fromJson(_value.toString().toUtf8()) auto json = _value.userType() == QMetaType::QString ? QJsonDocument::fromJson(_value.toString().toUtf8())
: QJsonDocument::fromVariant(_value); : QJsonDocument::fromVariant(_value);
QVariant converted = json.toVariant(); auto converted = json.toVariant();
for (auto &element : m_splittedPath) for (auto &element : m_path)
converted = getFromJson(converted, element); converted = getFromJson(converted, element);
return converted.toString(); return converted.toString();
@ -57,6 +57,7 @@ AWJsonFormatter *AWJsonFormatter::copy(const QString &_fileName, const int _numb
auto item = new AWJsonFormatter(parent(), _fileName); auto item = new AWJsonFormatter(parent(), _fileName);
AWAbstractFormatter::copyDefaults(item); AWAbstractFormatter::copyDefaults(item);
item->setNumber(_number); item->setNumber(_number);
item->setPath(path()); item->setPath(path());
@ -66,7 +67,8 @@ AWJsonFormatter *AWJsonFormatter::copy(const QString &_fileName, const int _numb
QString AWJsonFormatter::path() const QString AWJsonFormatter::path() const
{ {
return m_path; return std::accumulate(m_path.cbegin(), m_path.cend(), QString(""),
[](auto acc, auto &value) { return QString("%1.%2").arg(acc, value.toString()); });
} }
@ -74,8 +76,14 @@ void AWJsonFormatter::setPath(const QString &_path)
{ {
qCDebug(LOG_LIB) << "Path" << _path; qCDebug(LOG_LIB) << "Path" << _path;
m_path = _path; m_path.clear();
initPath(); auto elements = _path.split('.', Qt::SkipEmptyParts);
for (auto &element : elements) {
bool ok;
auto number = element.toInt(&ok);
m_path.append(ok ? QVariant(number) : QVariant(element));
}
} }
@ -83,7 +91,7 @@ void AWJsonFormatter::readConfiguration()
{ {
AWAbstractFormatter::readConfiguration(); AWAbstractFormatter::readConfiguration();
QSettings settings(fileName(), QSettings::IniFormat); QSettings settings(filePath(), QSettings::IniFormat);
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
setPath(settings.value("X-AW-Path", path()).toString()); setPath(settings.value("X-AW-Path", path()).toString());
@ -129,7 +137,7 @@ void AWJsonFormatter::writeConfiguration() const
{ {
AWAbstractFormatter::writeConfiguration(); AWAbstractFormatter::writeConfiguration();
QSettings settings(writtableConfig(), QSettings::IniFormat); QSettings settings(writableConfig(), QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
@ -171,19 +179,6 @@ QVariant AWJsonFormatter::getFromMap(const QVariant &_value, const QString &_key
} }
void AWJsonFormatter::initPath()
{
m_splittedPath.clear();
QStringList splittedByDot = m_path.split('.', Qt::SkipEmptyParts);
for (auto &element : splittedByDot) {
bool ok;
int number = element.toInt(&ok);
m_splittedPath.append(ok ? QVariant(number) : QVariant(element));
}
}
void AWJsonFormatter::translate(void *_ui) void AWJsonFormatter::translate(void *_ui)
{ {
auto ui = reinterpret_cast<Ui::AWJsonFormatter *>(_ui); auto ui = reinterpret_cast<Ui::AWJsonFormatter *>(_ui);

View File

@ -42,9 +42,7 @@ private:
static QVariant getFromJson(const QVariant &_value, const QVariant &_element); static QVariant getFromJson(const QVariant &_value, const QVariant &_element);
static QVariant getFromList(const QVariant &_value, int _index); static QVariant getFromList(const QVariant &_value, int _index);
static QVariant getFromMap(const QVariant &_value, const QString &_key); static QVariant getFromMap(const QVariant &_value, const QString &_key);
void initPath();
void translate(void *_ui) override; void translate(void *_ui) override;
// properties // properties
QString m_path; QVariantList m_path;
QVariantList m_splittedPath;
}; };

View File

@ -53,6 +53,7 @@ AWListFormatter *AWListFormatter::copy(const QString &_fileName, const int _numb
auto item = new AWListFormatter(parent(), _fileName); auto item = new AWListFormatter(parent(), _fileName);
AWAbstractFormatter::copyDefaults(item); AWAbstractFormatter::copyDefaults(item);
item->setFilter(filter()); item->setFilter(filter());
item->setSeparator(separator()); item->setSeparator(separator());
item->setSorted(isSorted()); item->setSorted(isSorted());
@ -91,7 +92,7 @@ void AWListFormatter::setFilter(const QString &_filter)
void AWListFormatter::setSeparator(const QString &_separator) void AWListFormatter::setSeparator(const QString &_separator)
{ {
qCDebug(LOG_LIB) << "Separtor" << _separator; qCDebug(LOG_LIB) << "Separator" << _separator;
m_separator = _separator; m_separator = _separator;
} }
@ -109,7 +110,7 @@ void AWListFormatter::readConfiguration()
{ {
AWAbstractFormatter::readConfiguration(); AWAbstractFormatter::readConfiguration();
QSettings settings(fileName(), QSettings::IniFormat); QSettings settings(filePath(), QSettings::IniFormat);
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
setFilter(settings.value("X-AW-Filter", filter()).toString()); setFilter(settings.value("X-AW-Filter", filter()).toString());
@ -161,7 +162,7 @@ void AWListFormatter::writeConfiguration() const
{ {
AWAbstractFormatter::writeConfiguration(); AWAbstractFormatter::writeConfiguration();
QSettings settings(writtableConfig(), QSettings::IniFormat); QSettings settings(writableConfig(), QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");

View File

@ -47,6 +47,7 @@ AWNoFormatter *AWNoFormatter::copy(const QString &_fileName, const int _number)
auto item = new AWNoFormatter(parent(), _fileName); auto item = new AWNoFormatter(parent(), _fileName);
AWAbstractFormatter::copyDefaults(item); AWAbstractFormatter::copyDefaults(item);
item->setNumber(_number); item->setNumber(_number);
return item; return item;

View File

@ -34,5 +34,4 @@ public slots:
private: private:
void translate(void *_ui) override; void translate(void *_ui) override;
// properties
}; };

View File

@ -61,6 +61,7 @@ AWScriptFormatter *AWScriptFormatter::copy(const QString &_fileName, const int _
auto item = new AWScriptFormatter(parent(), _fileName); auto item = new AWScriptFormatter(parent(), _fileName);
AWAbstractFormatter::copyDefaults(item); AWAbstractFormatter::copyDefaults(item);
item->setAppendCode(appendCode()); item->setAppendCode(appendCode());
item->setCode(code()); item->setCode(code());
item->setHasReturn(hasReturn()); item->setHasReturn(hasReturn());
@ -125,7 +126,7 @@ void AWScriptFormatter::readConfiguration()
{ {
AWAbstractFormatter::readConfiguration(); AWAbstractFormatter::readConfiguration();
QSettings settings(fileName(), QSettings::IniFormat); QSettings settings(filePath(), QSettings::IniFormat);
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
setAppendCode(settings.value("X-AW-AppendCode", appendCode()).toBool()); setAppendCode(settings.value("X-AW-AppendCode", appendCode()).toBool());
@ -178,7 +179,7 @@ void AWScriptFormatter::writeConfiguration() const
{ {
AWAbstractFormatter::writeConfiguration(); AWAbstractFormatter::writeConfiguration();
QSettings settings(writtableConfig(), QSettings::IniFormat); QSettings settings(writableConfig(), QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");

View File

@ -53,6 +53,7 @@ AWStringFormatter *AWStringFormatter::copy(const QString &_fileName, const int _
auto item = new AWStringFormatter(parent(), _fileName); auto item = new AWStringFormatter(parent(), _fileName);
AWAbstractFormatter::copyDefaults(item); AWAbstractFormatter::copyDefaults(item);
item->setCount(count()); item->setCount(count());
item->setFillChar(fillChar()); item->setFillChar(fillChar());
item->setForceWidth(forceWidth()); item->setForceWidth(forceWidth());
@ -108,7 +109,7 @@ void AWStringFormatter::readConfiguration()
{ {
AWAbstractFormatter::readConfiguration(); AWAbstractFormatter::readConfiguration();
QSettings settings(fileName(), QSettings::IniFormat); QSettings settings(filePath(), QSettings::IniFormat);
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
setCount(settings.value("X-AW-Width", count()).toInt()); setCount(settings.value("X-AW-Width", count()).toInt());
@ -160,7 +161,7 @@ void AWStringFormatter::writeConfiguration() const
{ {
AWAbstractFormatter::writeConfiguration(); AWAbstractFormatter::writeConfiguration();
QSettings settings(writtableConfig(), QSettings::IniFormat); QSettings settings(writableConfig(), QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");

View File

@ -127,8 +127,7 @@ private:
{ {
QList<AbstractExtItem *> items; QList<AbstractExtItem *> items;
auto dirs = directories(); for (auto &dir : directories()) {
for (auto &dir : dirs) {
auto files = QDir(dir).entryList(QDir::Files, QDir::Name); auto files = QDir(dir).entryList(QDir::Files, QDir::Name);
for (auto &file : files) { for (auto &file : files) {
// check filename // check filename
@ -138,7 +137,7 @@ private:
auto filePath = QString("%1/%2").arg(dir, file); auto filePath = QString("%1/%2").arg(dir, file);
// check if already exists // check if already exists
if (std::any_of(items.cbegin(), items.cend(), if (std::any_of(items.cbegin(), items.cend(),
[&filePath](AbstractExtItem *item) { return (item->fileName() == filePath); })) [&file](AbstractExtItem *item) { return item->fileName() == file; }))
continue; continue;
items.append(new T(this, filePath)); items.append(new T(this, filePath));
} }

View File

@ -62,6 +62,7 @@ ExtNetworkRequest *ExtNetworkRequest::copy(const QString &_fileName, const int _
auto item = new ExtNetworkRequest(parent(), _fileName); auto item = new ExtNetworkRequest(parent(), _fileName);
copyDefaults(item); copyDefaults(item);
item->setNumber(_number); item->setNumber(_number);
item->setStringUrl(stringUrl()); item->setStringUrl(stringUrl());
@ -94,7 +95,7 @@ void ExtNetworkRequest::readConfiguration()
{ {
AbstractExtItem::readConfiguration(); AbstractExtItem::readConfiguration();
QSettings settings(fileName(), QSettings::IniFormat); QSettings settings(filePath(), QSettings::IniFormat);
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
setStringUrl(settings.value("X-AW-Url", stringUrl()).toString()); setStringUrl(settings.value("X-AW-Url", stringUrl()).toString());
@ -158,7 +159,7 @@ void ExtNetworkRequest::writeConfiguration() const
{ {
AbstractExtItem::writeConfiguration(); AbstractExtItem::writeConfiguration();
QSettings settings(writtableConfig(), QSettings::IniFormat); QSettings settings(writableConfig(), QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");

View File

@ -100,7 +100,7 @@ void ExtQuotes::readConfiguration()
{ {
AbstractExtItem::readConfiguration(); AbstractExtItem::readConfiguration();
QSettings settings(fileName(), QSettings::IniFormat); QSettings settings(filePath(), QSettings::IniFormat);
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
setTicker(settings.value("X-AW-Ticker", ticker()).toString()); setTicker(settings.value("X-AW-Ticker", ticker()).toString());
@ -164,7 +164,7 @@ void ExtQuotes::writeConfiguration() const
{ {
AbstractExtItem::writeConfiguration(); AbstractExtItem::writeConfiguration();
QSettings settings(writtableConfig(), QSettings::IniFormat); QSettings settings(writableConfig(), QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");

View File

@ -205,7 +205,7 @@ void ExtScript::readConfiguration()
{ {
AbstractExtItem::readConfiguration(); AbstractExtItem::readConfiguration();
QSettings settings(fileName(), QSettings::IniFormat); QSettings settings(filePath(), QSettings::IniFormat);
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
setExecutable(settings.value("Exec", executable()).toString()); setExecutable(settings.value("Exec", executable()).toString());
@ -305,7 +305,7 @@ void ExtScript::writeConfiguration() const
{ {
AbstractExtItem::writeConfiguration(); AbstractExtItem::writeConfiguration();
QSettings settings(writtableConfig(), QSettings::IniFormat); QSettings settings(writableConfig(), QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");

View File

@ -122,7 +122,7 @@ void ExtUpgrade::readConfiguration()
{ {
AbstractExtItem::readConfiguration(); AbstractExtItem::readConfiguration();
QSettings settings(fileName(), QSettings::IniFormat); QSettings settings(filePath(), QSettings::IniFormat);
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
setExecutable(settings.value("Exec", executable()).toString()); setExecutable(settings.value("Exec", executable()).toString());
@ -193,7 +193,7 @@ void ExtUpgrade::writeConfiguration() const
{ {
AbstractExtItem::writeConfiguration(); AbstractExtItem::writeConfiguration();
QSettings settings(writtableConfig(), QSettings::IniFormat); QSettings settings(writableConfig(), QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");

View File

@ -212,7 +212,7 @@ void ExtWeather::readConfiguration()
{ {
AbstractExtItem::readConfiguration(); AbstractExtItem::readConfiguration();
QSettings settings(fileName(), QSettings::IniFormat); QSettings settings(filePath(), QSettings::IniFormat);
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
setCity(settings.value("X-AW-City", city()).toString()); setCity(settings.value("X-AW-City", city()).toString());
@ -313,7 +313,7 @@ void ExtWeather::writeConfiguration() const
{ {
AbstractExtItem::writeConfiguration(); AbstractExtItem::writeConfiguration();
QSettings settings(writtableConfig(), QSettings::IniFormat); QSettings settings(writableConfig(), QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");

View File

@ -393,7 +393,7 @@ void GraphicalItem::readConfiguration()
{ {
AbstractExtItem::readConfiguration(); AbstractExtItem::readConfiguration();
QSettings settings(fileName(), QSettings::IniFormat); QSettings settings(filePath(), QSettings::IniFormat);
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");
setCount(settings.value("X-AW-Count", count()).toInt()); setCount(settings.value("X-AW-Count", count()).toInt());
@ -502,7 +502,7 @@ void GraphicalItem::writeConfiguration() const
{ {
AbstractExtItem::writeConfiguration(); AbstractExtItem::writeConfiguration();
QSettings settings(writtableConfig(), QSettings::IniFormat); QSettings settings(writableConfig(), QSettings::IniFormat);
qCInfo(LOG_LIB) << "Configuration file" << settings.fileName(); qCInfo(LOG_LIB) << "Configuration file" << settings.fileName();
settings.beginGroup("Desktop Entry"); settings.beginGroup("Desktop Entry");

View File

@ -55,18 +55,18 @@ public:
return item ? item->run() : QVariantHash(); return item ? item->run() : QVariantHash();
} }
static KSysGuard::SensorInfo *makeSensorInfo(const QString &_name, const QVariant::Type type, static KSysGuard::SensorInfo *makeSensorInfo(const QString &_name, const QVariant::Type _type,
const KSysGuard::Unit unit = KSysGuard::UnitNone, const double min = 0, const KSysGuard::Unit _unit = KSysGuard::UnitNone,
const double max = 0) const double _min = 0, const double _max = 0)
{ {
auto info = new KSysGuard::SensorInfo(); auto info = new KSysGuard::SensorInfo();
info->name = _name; info->name = _name;
info->variantType = type; info->variantType = _type;
info->unit = unit; info->unit = _unit;
info->min = min; info->min = _min;
info->max = max; info->max = _max;
return info; return info;
} }

View File

@ -27,14 +27,14 @@ void TestAbstractExtItem::initTestCase()
{ {
AWTestLibrary::init(); AWTestLibrary::init();
auto names = AWTestLibrary::randomFilenames(); auto names = AWTestLibrary::randomFilenames();
fileName = names.first; filePath = names.first;
writeFileName = names.second; writeFilePath = names.second;
name = AWTestLibrary::randomString(); name = AWTestLibrary::randomString();
comment = AWTestLibrary::randomString(); comment = AWTestLibrary::randomString();
socket = AWTestLibrary::randomString(); socket = AWTestLibrary::randomString();
extItem = new ExtUpgrade(nullptr, fileName); extItem = new ExtUpgrade(nullptr, filePath);
extItem->setActive(false); extItem->setActive(false);
extItem->setApiVersion(1); extItem->setApiVersion(1);
extItem->setComment(comment); extItem->setComment(comment);
@ -47,7 +47,7 @@ void TestAbstractExtItem::initTestCase()
void TestAbstractExtItem::cleanupTestCase() void TestAbstractExtItem::cleanupTestCase()
{ {
QFile::remove(fileName); QFile::remove(filePath);
delete extItem; delete extItem;
} }
@ -57,16 +57,16 @@ void TestAbstractExtItem::test_values()
QCOMPARE(extItem->isActive(), false); QCOMPARE(extItem->isActive(), false);
QCOMPARE(extItem->apiVersion(), 1); QCOMPARE(extItem->apiVersion(), 1);
QCOMPARE(extItem->comment(), comment); QCOMPARE(extItem->comment(), comment);
QCOMPARE(extItem->fileName(), fileName); QCOMPARE(extItem->filePath(), filePath);
QCOMPARE(extItem->name(), name); QCOMPARE(extItem->name(), name);
QVERIFY((extItem->number() > 0) && (extItem->number() < 1000)); QVERIFY((extItem->number() > 0) && (extItem->number() < 1000));
QCOMPARE(extItem->socket(), socket); QCOMPARE(extItem->socket(), socket);
} }
void TestAbstractExtItem::test_writtableFile() void TestAbstractExtItem::test_writableFile()
{ {
QCOMPARE(extItem->writtableConfig(), writeFileName); QCOMPARE(extItem->writableConfig(), writeFilePath);
} }
@ -74,10 +74,10 @@ void TestAbstractExtItem::test_configuration()
{ {
extItem->writeConfiguration(); extItem->writeConfiguration();
auto newExtItem = new ExtUpgrade(nullptr, writeFileName); auto newExtItem = new ExtUpgrade(nullptr, writeFilePath);
QCOMPARE(newExtItem->isActive(), extItem->isActive()); QCOMPARE(newExtItem->isActive(), extItem->isActive());
QCOMPARE(newExtItem->comment(), extItem->comment()); QCOMPARE(newExtItem->comment(), extItem->comment());
QCOMPARE(newExtItem->fileName(), writeFileName); QCOMPARE(newExtItem->filePath(), writeFilePath);
QCOMPARE(newExtItem->name(), extItem->name()); QCOMPARE(newExtItem->name(), extItem->name());
QCOMPARE(newExtItem->number(), extItem->number()); QCOMPARE(newExtItem->number(), extItem->number());
QCOMPARE(newExtItem->socket(), extItem->socket()); QCOMPARE(newExtItem->socket(), extItem->socket());
@ -97,10 +97,10 @@ void TestAbstractExtItem::test_bumpApi()
void TestAbstractExtItem::test_delete() void TestAbstractExtItem::test_delete()
{ {
auto newExtItem = new ExtUpgrade(nullptr, writeFileName); auto newExtItem = new ExtUpgrade(nullptr, writeFilePath);
QVERIFY(newExtItem->tryDelete()); QVERIFY(newExtItem->tryDelete());
QVERIFY(!QFile::exists(writeFileName)); QVERIFY(!QFile::exists(writeFilePath));
delete newExtItem; delete newExtItem;
} }

View File

@ -32,7 +32,7 @@ private slots:
void cleanupTestCase(); void cleanupTestCase();
// test // test
void test_values(); void test_values();
void test_writtableFile(); void test_writableFile();
void test_configuration(); void test_configuration();
void test_bumpApi(); void test_bumpApi();
void test_delete(); void test_delete();
@ -44,6 +44,6 @@ private:
QString cron = "* * * * *"; QString cron = "* * * * *";
QString name; QString name;
QString socket; QString socket;
QString fileName; QString filePath;
QString writeFileName; QString writeFilePath;
}; };