edited dataengine

This commit is contained in:
arcan1s 2014-04-09 12:22:27 +04:00
parent 1a99c0cb3d
commit 2ee6949a59
2 changed files with 47 additions and 31 deletions

View File

@ -19,12 +19,12 @@
#include "extsysmon.h" #include "extsysmon.h"
#include <Plasma/DataContainer> #include <Plasma/DataContainer>
#include <KDE/KGlobal>
#include <KDE/KStandardDirs>
#include <QFile> #include <QFile>
#include <QProcess> #include <QProcess>
#include <QTextCodec> #include <QTextCodec>
#include <QDebug>
ExtendedSysMon::ExtendedSysMon(QObject* parent, const QVariantList& args) ExtendedSysMon::ExtendedSysMon(QObject* parent, const QVariantList& args)
: Plasma::DataEngine(parent, args) : Plasma::DataEngine(parent, args)
@ -83,28 +83,27 @@ QStringList ExtendedSysMon::sources() const
} }
bool ExtendedSysMon::readConfiguration() void ExtendedSysMon::readConfiguration()
{ {
// pre-setup // pre-setup
configuration[QString("CUSTOM")] = QString("wget -qO- http://ifconfig.me/ip"); QMap<QString, QString> rawConfig;
configuration[QString("GPUDEV")] = QString("auto"); rawConfig[QString("CUSTOM")] = QString("wget -qO- http://ifconfig.me/ip");
configuration[QString("HDDDEV")] = QString("all"); rawConfig[QString("GPUDEV")] = QString("auto");
configuration[QString("MPDADDRESS")] = QString("localhost"); rawConfig[QString("HDDDEV")] = QString("all");
configuration[QString("MPDPORT")] = QString("6600"); rawConfig[QString("MPDADDRESS")] = QString("localhost");
configuration[QString("PKGCMD")] = QString("pacman -Qu"); rawConfig[QString("MPDPORT")] = QString("6600");
configuration[QString("PKGNULL")] = QString("0"); rawConfig[QString("PKGCMD")] = QString("pacman -Qu");
rawConfig[QString("PKGNULL")] = QString("0");
QString fileName = KGlobal::dirs()->findResource("config", "extsysmon.conf");
QFile confFile(fileName);
bool ok = confFile.open(QIODevice::ReadOnly);
if (!ok) {
configuration = updateConfiguration(rawConfig);
return;
}
QString fileStr; QString fileStr;
QStringList value; QStringList value;
// FIXME: define configuration file
QFile confFile(QString(getenv("HOME")) + QString("/.kde4/share/config/extsysmon.conf"));
bool exists = confFile.open(QIODevice::ReadOnly);
if (!exists) {
confFile.setFileName("/usr/share/config/extsysmon.conf");
exists = confFile.open(QIODevice::ReadOnly);
if (!exists)
return false;
}
while (true) { while (true) {
fileStr = QString(confFile.readLine()).trimmed(); fileStr = QString(confFile.readLine()).trimmed();
if (fileStr[0] == QChar('#')) continue; if (fileStr[0] == QChar('#')) continue;
@ -113,24 +112,40 @@ bool ExtendedSysMon::readConfiguration()
value.clear(); value.clear();
for (int i=1; i<fileStr.split(QChar('=')).count(); i++) for (int i=1; i<fileStr.split(QChar('=')).count(); i++)
value.append(fileStr.split(QChar('='))[i]); value.append(fileStr.split(QChar('='))[i]);
configuration[fileStr.split(QChar('='))[0]] = value.join(QChar('=')); rawConfig[fileStr.split(QChar('='))[0]] = value.join(QChar('='));
} }
if (confFile.atEnd()) if (confFile.atEnd())
break; break;
} }
confFile.close(); confFile.close();
qDebug() << configuration; configuration = updateConfiguration(rawConfig);
return;
}
if (configuration[QString("GPUDEV")] == QString("auto"))
configuration[QString("GPUDEV")] = getAutoGpu(); QMap<QString, QString> ExtendedSysMon::updateConfiguration(const QMap<QString, QString> rawConfig)
if (configuration[QString("HDDDEV")] == QString("all")) {
configuration[QString("HDDDEV")] = getAllHdd(); QMap<QString, QString> config;
for (int i=configuration[QString("PKGNULL")].split(QString(","), QString::SkipEmptyParts).count(); QString key, value;
i<configuration[QString("PKGCMD")].split(QString(","), QString::SkipEmptyParts).count()+1; // remove spaces and copy source map
for (int i=0; i<rawConfig.keys().count(); i++) {
key = rawConfig.keys()[i];
value = rawConfig[key];
key.remove(QChar(' '));
if ((key != QString("CUSTOM")) && (key != QString("PKGCMD")))
value.remove(QChar(' '));
config[key] = value;
}
// update values
if (config[QString("GPUDEV")] == QString("auto"))
config[QString("GPUDEV")] = getAutoGpu();
if (config[QString("HDDDEV")] == QString("all"))
config[QString("HDDDEV")] = getAllHdd();
for (int i=config[QString("PKGNULL")].split(QString(","), QString::SkipEmptyParts).count();
i<config[QString("PKGCMD")].split(QString(","), QString::SkipEmptyParts).count()+1;
i++) i++)
configuration[QString("PKGNULL")] += QString(",0"); config[QString("PKGNULL")] += QString(",0");
return config;
return true;
} }

View File

@ -39,7 +39,7 @@ public:
const int pkgNull = 0); const int pkgNull = 0);
protected: protected:
bool readConfiguration(); void readConfiguration();
bool sourceRequestEvent(const QString &name); bool sourceRequestEvent(const QString &name);
bool updateSourceEvent(const QString &source); bool updateSourceEvent(const QString &source);
QStringList sources() const; QStringList sources() const;
@ -50,6 +50,7 @@ private:
// reread configuration // reread configuration
QString getAllHdd(); QString getAllHdd();
QString getAutoGpu(); QString getAutoGpu();
QMap<QString, QString> updateConfiguration(const QMap<QString, QString> rawConfig);
}; };
#endif /* EXTSYSMON_H */ #endif /* EXTSYSMON_H */