More consistent formatters

This commit is contained in:
Evgenii Alekseev 2016-05-14 04:08:22 +03:00
parent 51c7299ad0
commit 6bd7788aa9
22 changed files with 107 additions and 65 deletions

View File

@ -44,6 +44,7 @@ const QStringList getBuildData()
metadata.append(QString(" AWESAPI: %1").arg(AWESAPI)); metadata.append(QString(" AWESAPI: %1").arg(AWESAPI));
metadata.append(QString(" AWEUAPI: %1").arg(AWEUAPI)); metadata.append(QString(" AWEUAPI: %1").arg(AWEUAPI));
metadata.append(QString(" AWEWAPI: %1").arg(AWEWAPI)); metadata.append(QString(" AWEWAPI: %1").arg(AWEWAPI));
metadata.append(QString(" AWEFAPI: %1").arg(AWEFAPI));
metadata.append(QString(" TIME_KEYS: %1").arg(TIME_KEYS)); metadata.append(QString(" TIME_KEYS: %1").arg(TIME_KEYS));
metadata.append(QString(" STATIC_KEYS: %1").arg(STATIC_KEYS)); metadata.append(QString(" STATIC_KEYS: %1").arg(STATIC_KEYS));
// cmake properties // cmake properties

View File

@ -201,7 +201,7 @@ QVariantMap AWConfigHelper::readDataEngineConfiguration() const
} }
void AWConfigHelper::writeDataEngineConfiguration( bool AWConfigHelper::writeDataEngineConfiguration(
const QVariantMap configuration) const const QVariantMap configuration) const
{ {
qCDebug(LOG_AW) << "Configuration" << configuration; qCDebug(LOG_AW) << "Configuration" << configuration;
@ -228,6 +228,8 @@ void AWConfigHelper::writeDataEngineConfiguration(
settings.endGroup(); settings.endGroup();
settings.sync(); settings.sync();
return (settings.status() == QSettings::NoError);
} }

View File

@ -42,7 +42,7 @@ public:
const bool importAdds) const; const bool importAdds) const;
// dataengine // dataengine
Q_INVOKABLE QVariantMap readDataEngineConfiguration() const; Q_INVOKABLE QVariantMap readDataEngineConfiguration() const;
Q_INVOKABLE void Q_INVOKABLE bool
writeDataEngineConfiguration(const QVariantMap configuration) const; writeDataEngineConfiguration(const QVariantMap configuration) const;
private: private:

View File

@ -19,11 +19,11 @@
#include <KI18n/KLocalizedString> #include <KI18n/KLocalizedString>
#include <QtConcurrent/QtConcurrent>
#include <QBuffer> #include <QBuffer>
#include <QGraphicsScene> #include <QGraphicsScene>
#include <QGraphicsView> #include <QGraphicsView>
#include <QPixmap> #include <QPixmap>
#include <QtConcurrent/QtConcurrent>
#include <cmath> #include <cmath>

View File

@ -23,8 +23,8 @@
#include <QInputDialog> #include <QInputDialog>
#include <QSettings> #include <QSettings>
#include "awdebug.h"
#include "awdatetimeformatter.h" #include "awdatetimeformatter.h"
#include "awdebug.h"
#include "awfloatformatter.h" #include "awfloatformatter.h"
#include "awnoformatter.h" #include "awnoformatter.h"
#include "awscriptformatter.h" #include "awscriptformatter.h"
@ -66,11 +66,13 @@ QStringList AWFormatterHelper::definedFormatters() const
} }
QString AWFormatterHelper::formatterByTag(const QString tag) const QVariantMap AWFormatterHelper::getFormatters() const
{ {
qCDebug(LOG_AW) << "Looking for tag" << tag; QVariantMap map;
for (auto tag : m_formatters.keys())
map[tag] = m_formatters[tag]->name();
return m_formatters.contains(tag) ? m_formatters[tag]->name() : QString(); return map;
} }
@ -80,6 +82,25 @@ QStringList AWFormatterHelper::knownFormatters() const
} }
bool AWFormatterHelper::writeFormatters(const QVariantMap configuration) const
{
QString fileName = QString("%1/awesomewidgets/formatters/formatters.ini")
.arg(QStandardPaths::writableLocation(
QStandardPaths::GenericDataLocation));
QSettings settings(fileName, QSettings::IniFormat);
qCInfo(LOG_AW) << "Configuration file" << fileName;
settings.beginGroup(QString("Formatters"));
for (auto key : configuration.keys())
settings.setValue(key, configuration[key]);
settings.endGroup();
settings.sync();
return (settings.status() == QSettings::NoError);
}
QList<AbstractExtItem *> AWFormatterHelper::items() const QList<AbstractExtItem *> AWFormatterHelper::items() const
{ {
QList<AbstractExtItem *> converted; QList<AbstractExtItem *> converted;
@ -155,19 +176,28 @@ void AWFormatterHelper::initKeys()
{ {
m_formatters.clear(); m_formatters.clear();
QSettings settings(m_formatterConfig, QSettings::IniFormat); QStringList configs = QStandardPaths::locateAll(
settings.beginGroup(QString("Formatters")); QStandardPaths::GenericDataLocation,
QStringList keys = settings.childKeys(); QString("awesomewidgets/formatters/formatters.ini"));
for (auto key : keys) {
QString name = settings.value(key).toString(); for (auto fileName : configs) {
qCInfo(LOG_AW) << "Found formatter" << name << "for key" << key; QSettings settings(fileName, QSettings::IniFormat);
if (!m_formattersClasses.contains(name)) { qCInfo(LOG_AW) << "Configuration file" << settings.fileName();
qCWarning(LOG_AW) << "Invalid formatter" << name << "found in"
<< key; settings.beginGroup(QString("Formatters"));
QStringList keys = settings.childKeys();
for (auto key : keys) {
QString name = settings.value(key).toString();
qCInfo(LOG_AW) << "Found formatter" << name << "for key" << key
<< "in" << settings.fileName();
if (!m_formattersClasses.contains(name)) {
qCWarning(LOG_AW) << "Invalid formatter" << name << "found in"
<< key;
}
m_formatters[key] = m_formattersClasses[name];
} }
m_formatters[key] = m_formattersClasses[name]; settings.endGroup();
} }
settings.endGroup();
} }
@ -184,10 +214,6 @@ void AWFormatterHelper::installDirectories()
m_directories = QStandardPaths::locateAll( m_directories = QStandardPaths::locateAll(
QStandardPaths::GenericDataLocation, QStandardPaths::GenericDataLocation,
QString("awesomewidgets/formatters"), QStandardPaths::LocateDirectory); QString("awesomewidgets/formatters"), QStandardPaths::LocateDirectory);
m_formatterConfig = QString("%1/awesomewidgets/formatters/formatters.ini")
.arg(QStandardPaths::writableLocation(
QStandardPaths::GenericDataLocation));
} }

View File

@ -35,8 +35,9 @@ public:
virtual ~AWFormatterHelper(); virtual ~AWFormatterHelper();
QString convert(const QVariant &value, const QString name) const; QString convert(const QVariant &value, const QString name) const;
Q_INVOKABLE QStringList definedFormatters() const; Q_INVOKABLE QStringList definedFormatters() const;
Q_INVOKABLE QString formatterByTag(const QString tag) const; Q_INVOKABLE QVariantMap getFormatters() const;
Q_INVOKABLE QStringList knownFormatters() const; Q_INVOKABLE QStringList knownFormatters() const;
Q_INVOKABLE bool writeFormatters(const QVariantMap configuration) const;
QList<AbstractExtItem *> items() const; QList<AbstractExtItem *> items() const;
private: private:
@ -53,7 +54,6 @@ private:
void initItems(); void initItems();
// properties // properties
QStringList m_directories; QStringList m_directories;
QString m_formatterConfig;
QHash<QString, AWAbstractFormatter *> m_formatters; QHash<QString, AWAbstractFormatter *> m_formatters;
QHash<QString, AWAbstractFormatter *> m_formattersClasses; QHash<QString, AWAbstractFormatter *> m_formattersClasses;
}; };

View File

@ -194,12 +194,14 @@ QString AWKeyOperations::infoByKey(QString key) const
else if (key.startsWith(QString("custom"))) else if (key.startsWith(QString("custom")))
return extScripts->itemByTag(key, QString("custom"))->uniq(); return extScripts->itemByTag(key, QString("custom"))->uniq();
else if (key.contains(QRegExp(QString("^hdd[rw]")))) else if (key.contains(QRegExp(QString("^hdd[rw]"))))
return QString("%1").arg(m_devices[QString( return QString("%1").arg(
"disk")][key.remove(QRegExp(QString("hdd[rw]"))).toInt()]); m_devices[QString("disk")]
[key.remove(QRegExp(QString("hdd[rw]"))).toInt()]);
else if (key.contains(QRegExp( else if (key.contains(QRegExp(
QString("^hdd([0-9]|mb|gb|freemb|freegb|totmb|totgb)")))) QString("^hdd([0-9]|mb|gb|freemb|freegb|totmb|totgb)"))))
return QString("%1").arg(m_devices[QString( return QString("%1").arg(
"mount")][key m_devices[QString("mount")]
[key
.remove(QRegExp(QString( .remove(QRegExp(QString(
"^hdd([0-9]|mb|gb|freemb|freegb|totmb|totgb)"))) "^hdd([0-9]|mb|gb|freemb|freegb|totmb|totgb)")))
.toInt()]); .toInt()]);
@ -207,8 +209,9 @@ QString AWKeyOperations::infoByKey(QString key) const
return QString("%1").arg( return QString("%1").arg(
m_devices[QString("hdd")][key.remove(QString("hddtemp")).toInt()]); m_devices[QString("hdd")][key.remove(QString("hddtemp")).toInt()]);
else if (key.contains(QRegExp(QString("^(down|up)[0-9]")))) else if (key.contains(QRegExp(QString("^(down|up)[0-9]"))))
return QString("%1").arg(m_devices[QString( return QString("%1").arg(
"net")][key.remove(QRegExp(QString("^(down|up)"))).toInt()]); m_devices[QString("net")]
[key.remove(QRegExp(QString("^(down|up)"))).toInt()]);
else if (key.startsWith(QString("pkgcount"))) else if (key.startsWith(QString("pkgcount")))
return extUpgrade->itemByTag(key, QString("pkgcount"))->uniq(); return extUpgrade->itemByTag(key, QString("pkgcount"))->uniq();
else if (key.contains(QRegExp(QString("(^|perc)(ask|bid|price)(chg|)")))) else if (key.contains(QRegExp(QString("(^|perc)(ask|bid|price)(chg|)"))))

View File

@ -17,11 +17,11 @@
#include "awkeys.h" #include "awkeys.h"
#include <QtConcurrent/QtConcurrent>
#include <QJSEngine> #include <QJSEngine>
#include <QRegExp> #include <QRegExp>
#include <QThread> #include <QThread>
#include <QTimer> #include <QTimer>
#include <QtConcurrent/QtConcurrent>
#include "awdataaggregator.h" #include "awdataaggregator.h"
#include "awdataengineaggregator.h" #include "awdataengineaggregator.h"

View File

@ -19,14 +19,14 @@
#include <KI18n/KLocalizedString> #include <KI18n/KLocalizedString>
#include <QtConcurrent/QtConcurrent>
#include <QDesktopServices> #include <QDesktopServices>
#include <QJsonDocument> #include <QJsonDocument>
#include <QJsonParseError> #include <QJsonParseError>
#include <QNetworkAccessManager> #include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply> #include <QNetworkReply>
#include <QNetworkRequest>
#include <QSettings> #include <QSettings>
#include <QtConcurrent/QtConcurrent>
#include "awdebug.h" #include "awdebug.h"

View File

@ -22,8 +22,8 @@
#include <QStandardPaths> #include <QStandardPaths>
#include <QTime> #include <QTime>
#include "awdebug.h"
#include "abstractextitemaggregator.h" #include "abstractextitemaggregator.h"
#include "awdebug.h"
AbstractExtItem::AbstractExtItem(QWidget *parent, const QString filePath) AbstractExtItem::AbstractExtItem(QWidget *parent, const QString filePath)
@ -44,6 +44,20 @@ AbstractExtItem::~AbstractExtItem()
} }
void AbstractExtItem::bumpApi(const int _newVer)
{
qCDebug(LOG_LIB) << "Bump API using new version" << _newVer;
// update for current API
if ((apiVersion() > 0) && (apiVersion() < _newVer)) {
qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to"
<< _newVer;
setApiVersion(_newVer);
writeConfiguration();
}
}
void AbstractExtItem::copyDefaults(AbstractExtItem *_other) const void AbstractExtItem::copyDefaults(AbstractExtItem *_other) const
{ {
_other->setActive(m_active); _other->setActive(m_active);

View File

@ -38,6 +38,7 @@ public:
explicit AbstractExtItem(QWidget *parent = nullptr, explicit AbstractExtItem(QWidget *parent = nullptr,
const QString filePath = QString()); const QString filePath = QString());
virtual ~AbstractExtItem(); virtual ~AbstractExtItem();
virtual void bumpApi(const int _newVer);
virtual AbstractExtItem *copy(const QString _fileName, const int _number) virtual AbstractExtItem *copy(const QString _fileName, const int _number)
= 0; = 0;
virtual void copyDefaults(AbstractExtItem *_other) const; virtual void copyDefaults(AbstractExtItem *_other) const;

View File

@ -108,6 +108,8 @@ void AWDateTimeFormatter::readConfiguration()
settings.beginGroup(QString("Desktop Entry")); settings.beginGroup(QString("Desktop Entry"));
setFormat(settings.value(QString("X-AW-Format"), m_format).toString()); setFormat(settings.value(QString("X-AW-Format"), m_format).toString());
settings.endGroup(); settings.endGroup();
bumpApi(AWEFAPI);
} }

View File

@ -207,6 +207,8 @@ void AWFloatFormatter::readConfiguration()
settings.value(QString("X-AW-Precision"), m_precision).toInt()); settings.value(QString("X-AW-Precision"), m_precision).toInt());
setSummand(settings.value(QString("X-AW-Summand"), m_summand).toDouble()); setSummand(settings.value(QString("X-AW-Summand"), m_summand).toDouble());
settings.endGroup(); settings.endGroup();
bumpApi(AWEFAPI);
} }

View File

@ -165,6 +165,9 @@ void AWScriptFormatter::readConfiguration()
settings.value(QString("X-AW-HasReturn"), m_hasReturn).toBool()); settings.value(QString("X-AW-HasReturn"), m_hasReturn).toBool());
settings.endGroup(); settings.endGroup();
bumpApi(AWEFAPI);
// init JS code
initProgram(); initProgram();
} }

View File

@ -125,6 +125,8 @@ void ExtQuotes::readConfiguration()
writeConfiguration(); writeConfiguration();
} }
bumpApi(AWEQAPI);
// init query // init query
m_url = QUrl(YAHOO_QUOTES_URL); m_url = QUrl(YAHOO_QUOTES_URL);
QUrlQuery params; QUrlQuery params;

View File

@ -227,13 +227,7 @@ void ExtScript::readConfiguration()
.split(QChar(','), QString::SkipEmptyParts)); .split(QChar(','), QString::SkipEmptyParts));
settings.endGroup(); settings.endGroup();
// update for current API bumpApi(AWESAPI);
if ((apiVersion() > 0) && (apiVersion() < AWESAPI)) {
qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to"
<< AWESAPI;
setApiVersion(AWESAPI);
writeConfiguration();
}
} }

View File

@ -135,13 +135,7 @@ void ExtUpgrade::readConfiguration()
setFilter(settings.value(QString("X-AW-Filter"), m_filter).toString()); setFilter(settings.value(QString("X-AW-Filter"), m_filter).toString());
settings.endGroup(); settings.endGroup();
// update for current API bumpApi(AWEUAPI);
if ((apiVersion() > 0) && (apiVersion() < AWEUAPI)) {
qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to"
<< AWEUAPI;
setApiVersion(AWEUAPI);
writeConfiguration();
}
} }

View File

@ -183,6 +183,8 @@ void ExtWeather::readConfiguration()
writeConfiguration(); writeConfiguration();
} }
bumpApi(AWEWAPI);
// init query // init query
m_url = QUrl(YAHOO_WEATHER_URL); m_url = QUrl(YAHOO_WEATHER_URL);
QUrlQuery params; QUrlQuery params;

View File

@ -431,13 +431,7 @@ void GraphicalItem::readConfiguration()
} }
settings.endGroup(); settings.endGroup();
// update for current API bumpApi(AWGIAPI);
if ((apiVersion() > 0) && (apiVersion() < AWGIAPI)) {
qCWarning(LOG_LIB) << "Bump API version from" << apiVersion() << "to"
<< AWGIAPI;
setApiVersion(AWGIAPI);
writeConfiguration();
}
} }

View File

@ -156,22 +156,22 @@ QString DPAdds::toolTipImage(const int desktop) const
std::for_each(info.desktopsData.cbegin(), info.desktopsData.cend(), std::for_each(info.desktopsData.cbegin(), info.desktopsData.cend(),
[&toolTipScene, &screen](WindowData data) { [&toolTipScene, &screen](WindowData data) {
QPixmap desktop = screen->grabWindow(data.id); QPixmap desktop = screen->grabWindow(data.id);
toolTipScene->addPixmap(desktop) toolTipScene->addPixmap(desktop)->setOffset(
->setOffset(data.rect.left(), data.rect.top()); data.rect.left(), data.rect.top());
}); });
} else if (m_tooltipType == QString("windows")) { } else if (m_tooltipType == QString("windows")) {
QScreen *screen = QGuiApplication::primaryScreen(); QScreen *screen = QGuiApplication::primaryScreen();
std::for_each(info.desktopsData.cbegin(), info.desktopsData.cend(), std::for_each(info.desktopsData.cbegin(), info.desktopsData.cend(),
[&toolTipScene, &screen](WindowData data) { [&toolTipScene, &screen](WindowData data) {
QPixmap desktop = screen->grabWindow(data.id); QPixmap desktop = screen->grabWindow(data.id);
toolTipScene->addPixmap(desktop) toolTipScene->addPixmap(desktop)->setOffset(
->setOffset(data.rect.left(), data.rect.top()); data.rect.left(), data.rect.top());
}); });
std::for_each(info.windowsData.cbegin(), info.windowsData.cend(), std::for_each(info.windowsData.cbegin(), info.windowsData.cend(),
[&toolTipScene, &screen](WindowData data) { [&toolTipScene, &screen](WindowData data) {
QPixmap window = screen->grabWindow(data.id); QPixmap window = screen->grabWindow(data.id);
toolTipScene->addPixmap(window) toolTipScene->addPixmap(window)->setOffset(
->setOffset(data.rect.left(), data.rect.top()); data.rect.left(), data.rect.top());
}); });
} }
@ -232,8 +232,8 @@ QString DPAdds::valueByKey(const QString key, int desktop) const
.arg(currentMark, m_mark.count(), QLatin1Char(' ')) .arg(currentMark, m_mark.count(), QLatin1Char(' '))
.replace(QString(" "), QString("&nbsp;")); .replace(QString(" "), QString("&nbsp;"));
else if (key == QString("name")) else if (key == QString("name"))
return KWindowSystem::desktopName(desktop) return KWindowSystem::desktopName(desktop).replace(QString(" "),
.replace(QString(" "), QString("&nbsp;")); QString("&nbsp;"));
else if (key == QString("number")) else if (key == QString("number"))
return QString::number(desktop); return QString::number(desktop);
else if (key == QString("total")) else if (key == QString("total"))

View File

@ -125,8 +125,8 @@ void ExtendedSysMon::readConfiguration()
settings.beginGroup(QString("Configuration")); settings.beginGroup(QString("Configuration"));
rawConfig[QString("ACPIPATH")] rawConfig[QString("ACPIPATH")]
= settings.value(QString("ACPIPATH"), = settings
QString("/sys/class/power_supply/")) .value(QString("ACPIPATH"), QString("/sys/class/power_supply/"))
.toString(); .toString();
rawConfig[QString("GPUDEV")] rawConfig[QString("GPUDEV")]
= settings.value(QString("GPUDEV"), QString("auto")).toString(); = settings.value(QString("GPUDEV"), QString("auto")).toString();

View File

@ -33,6 +33,8 @@
#define AWEUAPI 3 #define AWEUAPI 3
// extweather api version // extweather api version
#define AWEWAPI 2 #define AWEWAPI 2
// formatter api version
#define AWEFAPI 1
// network requests timeout, ms // network requests timeout, ms
#define REQUEST_TIMEOUT 5000 #define REQUEST_TIMEOUT 5000
// available time keys // available time keys