mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-04-24 15:37:23 +00:00
drop task library from build, cosmetic changes
This commit is contained in:
parent
1187c43e57
commit
b9fda3e1cd
@ -13,16 +13,14 @@ include_directories(
|
||||
|
||||
file(GLOB SUBPROJECT_DESKTOP_IN *.desktop)
|
||||
file(RELATIVE_PATH SUBPROJECT_DESKTOP ${CMAKE_SOURCE_DIR} ${SUBPROJECT_DESKTOP_IN})
|
||||
file(GLOB SUBPROJECT_SOURCE *.cpp sources/*.cpp ${PROJECT_TRDPARTY_DIR}/task/*.cpp ${CMAKE_SOURCE_DIR}/*.cpp)
|
||||
set(TASK_HEADER ${PROJECT_TRDPARTY_DIR}/task/task.h)
|
||||
file(GLOB SUBPROJECT_SOURCE *.cpp sources/*.cpp ${CMAKE_SOURCE_DIR}/*.cpp)
|
||||
file(GLOB SUBPROJECT_CONF *.conf)
|
||||
|
||||
# prepare
|
||||
configure_file(${SUBPROJECT_DESKTOP_IN} ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP})
|
||||
|
||||
# make
|
||||
qt5_wrap_cpp(TASK_MOC_SOURCE ${TASK_HEADER})
|
||||
add_library(${SUBPROJECT} MODULE ${SUBPROJECT_SOURCE} ${TASK_MOC_SOURCE})
|
||||
add_library(${SUBPROJECT} MODULE ${SUBPROJECT_SOURCE})
|
||||
target_link_libraries(${SUBPROJECT} ${PROJECT_LIBRARY} ${Qt_LIBRARIES} ${Kf5_LIBRARIES})
|
||||
kcoreaddons_desktop_to_json(${SUBPROJECT} ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP}
|
||||
SERVICE_TYPES plasma-dataengine.desktop)
|
||||
|
@ -44,9 +44,9 @@ QVariant BatterySource::data(QString source)
|
||||
{
|
||||
qCDebug(LOG_ESM) << "Source" << source;
|
||||
|
||||
if (!values.contains(source))
|
||||
if (!m_values.contains(source))
|
||||
run();
|
||||
QVariant value = values.take(source);
|
||||
QVariant value = m_values.take(source);
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -85,7 +85,7 @@ void BatterySource::run()
|
||||
// adaptor
|
||||
QFile acFile(QString("%1/AC/online").arg(m_acpiPath));
|
||||
if (acFile.open(QIODevice::ReadOnly))
|
||||
values[QString("battery/ac")]
|
||||
m_values[QString("battery/ac")]
|
||||
= (QString(acFile.readLine()).trimmed().toInt() == 1);
|
||||
acFile.close();
|
||||
|
||||
@ -103,7 +103,7 @@ void BatterySource::run()
|
||||
= QString(currentLevelFile.readLine()).trimmed().toFloat();
|
||||
float batFull
|
||||
= QString(fullLevelFile.readLine()).trimmed().toFloat();
|
||||
values[QString("battery/bat%1").arg(i)]
|
||||
m_values[QString("battery/bat%1").arg(i)]
|
||||
= static_cast<int>(100 * batCurrent / batFull);
|
||||
currentLevel += batCurrent;
|
||||
fullLevel += batFull;
|
||||
@ -111,7 +111,7 @@ void BatterySource::run()
|
||||
currentLevelFile.close();
|
||||
fullLevelFile.close();
|
||||
}
|
||||
values[QString("battery/bat")]
|
||||
m_values[QString("battery/bat")]
|
||||
= static_cast<int>(100 * currentLevel / fullLevel);
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,7 @@ private:
|
||||
int m_batteriesCount = 0;
|
||||
QString m_acpiPath;
|
||||
QStringList m_sources;
|
||||
QVariantHash values;
|
||||
QVariantHash m_values;
|
||||
};
|
||||
|
||||
|
||||
|
@ -22,10 +22,9 @@
|
||||
#include <QDBusConnection>
|
||||
#include <QDBusConnectionInterface>
|
||||
#include <QDBusMessage>
|
||||
#include <QProcess>
|
||||
#include <QTextCodec>
|
||||
|
||||
#include <task/taskadds.h>
|
||||
|
||||
#include "awdebug.h"
|
||||
|
||||
|
||||
@ -39,12 +38,24 @@ PlayerSource::PlayerSource(QObject *parent, const QStringList args)
|
||||
m_mpdAddress = QString("%1:%2").arg(args.at(1)).arg(args.at(2));
|
||||
m_mpris = args.at(3);
|
||||
m_symbols = args.at(4).toInt();
|
||||
|
||||
m_mpdProcess = new QProcess(nullptr);
|
||||
// fucking magic from http://doc.qt.io/qt-5/qprocess.html#finished
|
||||
connect(m_mpdProcess,
|
||||
static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(
|
||||
&QProcess::finished),
|
||||
[this](int, QProcess::ExitStatus) { return updateValue(); });
|
||||
m_mpdProcess->waitForFinished(0);
|
||||
m_mpdCached = defaultInfo();
|
||||
}
|
||||
|
||||
|
||||
PlayerSource::~PlayerSource()
|
||||
{
|
||||
qCDebug(LOG_ESM) << __PRETTY_FUNCTION__;
|
||||
|
||||
m_mpdProcess->kill();
|
||||
m_mpdProcess->deleteLater();
|
||||
}
|
||||
|
||||
|
||||
@ -52,9 +63,9 @@ QVariant PlayerSource::data(QString source)
|
||||
{
|
||||
qCDebug(LOG_ESM) << "Source" << source;
|
||||
|
||||
if (!values.contains(source))
|
||||
if (!m_values.contains(source))
|
||||
run();
|
||||
QVariant value = values.take(source);
|
||||
QVariant value = m_values.take(source);
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -152,33 +163,33 @@ void PlayerSource::run()
|
||||
// mpd
|
||||
QHash<QString, QVariant> data = getPlayerMpdInfo(m_mpdAddress);
|
||||
for (auto key : data.keys())
|
||||
values[key] = data[key];
|
||||
m_values[key] = data[key];
|
||||
} else if (m_player == QString("mpris")) {
|
||||
// players which supports mpris
|
||||
QString mpris = m_mpris == QString("auto") ? getAutoMpris() : m_mpris;
|
||||
QHash<QString, QVariant> data = getPlayerMprisInfo(mpris);
|
||||
for (auto key : data.keys())
|
||||
values[key] = data[key];
|
||||
m_values[key] = data[key];
|
||||
}
|
||||
|
||||
// dymanic properties
|
||||
// solid
|
||||
values[QString("player/salbum")]
|
||||
= stripString(values[QString("player/album")].toString(), m_symbols);
|
||||
values[QString("player/sartist")]
|
||||
= stripString(values[QString("player/artist")].toString(), m_symbols);
|
||||
values[QString("player/stitle")]
|
||||
= stripString(values[QString("player/title")].toString(), m_symbols);
|
||||
m_values[QString("player/salbum")]
|
||||
= stripString(m_values[QString("player/album")].toString(), m_symbols);
|
||||
m_values[QString("player/sartist")]
|
||||
= stripString(m_values[QString("player/artist")].toString(), m_symbols);
|
||||
m_values[QString("player/stitle")]
|
||||
= stripString(m_values[QString("player/title")].toString(), m_symbols);
|
||||
// dynamic
|
||||
values[QString("player/dalbum")]
|
||||
= buildString(values[QString("player/dalbum")].toString(),
|
||||
values[QString("player/album")].toString(), m_symbols);
|
||||
values[QString("player/dartist")]
|
||||
= buildString(values[QString("player/dartist")].toString(),
|
||||
values[QString("player/artist")].toString(), m_symbols);
|
||||
values[QString("player/dtitle")]
|
||||
= buildString(values[QString("player/dtitle")].toString(),
|
||||
values[QString("player/title")].toString(), m_symbols);
|
||||
m_values[QString("player/dalbum")]
|
||||
= buildString(m_values[QString("player/dalbum")].toString(),
|
||||
m_values[QString("player/album")].toString(), m_symbols);
|
||||
m_values[QString("player/dartist")]
|
||||
= buildString(m_values[QString("player/dartist")].toString(),
|
||||
m_values[QString("player/artist")].toString(), m_symbols);
|
||||
m_values[QString("player/dtitle")]
|
||||
= buildString(m_values[QString("player/dtitle")].toString(),
|
||||
m_values[QString("player/title")].toString(), m_symbols);
|
||||
}
|
||||
|
||||
|
||||
@ -201,6 +212,40 @@ QStringList PlayerSource::sources() const
|
||||
}
|
||||
|
||||
|
||||
void PlayerSource::updateValue()
|
||||
{
|
||||
qCInfo(LOG_LIB) << "Cmd returns" << m_mpdProcess->exitCode();
|
||||
QString qdebug = QTextCodec::codecForMib(106)
|
||||
->toUnicode(m_mpdProcess->readAllStandardError())
|
||||
.trimmed();
|
||||
qCInfo(LOG_LIB) << "Error" << qdebug;
|
||||
QString qoutput = QTextCodec::codecForMib(106)
|
||||
->toUnicode(m_mpdProcess->readAllStandardOutput())
|
||||
.trimmed();
|
||||
qCInfo(LOG_LIB) << "Output" << qoutput;
|
||||
|
||||
for (auto str : qoutput.split(QChar('\n'), QString::SkipEmptyParts)) {
|
||||
if (str.split(QString(": "), QString::SkipEmptyParts).count() == 2) {
|
||||
// "Metadata: data"
|
||||
QString metadata = str.split(QString(": "), QString::SkipEmptyParts)
|
||||
.first()
|
||||
.toLower();
|
||||
QString data = str.split(QString(": "), QString::SkipEmptyParts)
|
||||
.last()
|
||||
.trimmed();
|
||||
// there are one more time...
|
||||
if ((metadata == QString("time")) && (data.contains(QChar(':')))) {
|
||||
QStringList times = data.split(QString(":"));
|
||||
m_mpdCached[QString("player/duration")] = times.at(0).toInt();
|
||||
m_mpdCached[QString("player/progress")] = times.at(1).toInt();
|
||||
} else if (m_metadata.contains(metadata)) {
|
||||
m_mpdCached[QString("player/%1").arg(metadata)] = data;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QVariantHash PlayerSource::defaultInfo() const
|
||||
{
|
||||
QVariantHash info;
|
||||
@ -239,40 +284,14 @@ QVariantHash PlayerSource::getPlayerMpdInfo(const QString mpdAddress) const
|
||||
{
|
||||
qCDebug(LOG_ESM) << "MPD" << mpdAddress;
|
||||
|
||||
QVariantHash info = defaultInfo();
|
||||
|
||||
// build cmd
|
||||
QString cmd = QString("bash -c \"echo 'currentsong\nstatus\nclose' | curl "
|
||||
"--connect-timeout 1 -fsm 3 telnet://%1\"")
|
||||
.arg(mpdAddress);
|
||||
qCInfo(LOG_ESM) << "cmd" << cmd;
|
||||
TaskResult process = runTask(cmd);
|
||||
qCInfo(LOG_ESM) << "Cmd returns" << process.exitCode;
|
||||
qCInfo(LOG_ESM) << "Error" << process.error;
|
||||
m_mpdProcess->start(cmd);
|
||||
|
||||
QString qoutput
|
||||
= QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
|
||||
for (auto str : qoutput.split(QChar('\n'), QString::SkipEmptyParts)) {
|
||||
if (str.split(QString(": "), QString::SkipEmptyParts).count() == 2) {
|
||||
// "Metadata: data"
|
||||
QString metadata = str.split(QString(": "), QString::SkipEmptyParts)
|
||||
.first()
|
||||
.toLower();
|
||||
QString data = str.split(QString(": "), QString::SkipEmptyParts)
|
||||
.last()
|
||||
.trimmed();
|
||||
// there are one more time...
|
||||
if ((metadata == QString("time")) && (data.contains(QChar(':')))) {
|
||||
QStringList times = data.split(QString(":"));
|
||||
info[QString("player/duration")] = times.at(0).toInt();
|
||||
info[QString("player/progress")] = times.at(1).toInt();
|
||||
} else if (m_metadata.contains(metadata)) {
|
||||
info[QString("player/%1").arg(metadata)] = data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return info;
|
||||
return m_mpdCached;
|
||||
}
|
||||
|
||||
|
||||
@ -351,7 +370,7 @@ QString PlayerSource::buildString(const QString current, const QString value,
|
||||
<< "will be stripped after" << s;
|
||||
|
||||
int index = value.indexOf(current);
|
||||
if ((current.isEmpty()) || ((index + s + 1) > value.count()))x
|
||||
if ((current.isEmpty()) || ((index + s + 1) > value.count()))
|
||||
return QString("%1").arg(value.left(s), s, QLatin1Char(' '));
|
||||
else
|
||||
return QString("%1").arg(value.mid(index + 1, s), s, QLatin1Char(' '));
|
||||
|
@ -23,6 +23,8 @@
|
||||
#include "abstractextsysmonsource.h"
|
||||
|
||||
|
||||
class QProcess;
|
||||
|
||||
class PlayerSource : public AbstractExtSysMonSource
|
||||
{
|
||||
public:
|
||||
@ -33,6 +35,9 @@ public:
|
||||
void run();
|
||||
QStringList sources() const;
|
||||
|
||||
private slots:
|
||||
void updateValue();
|
||||
|
||||
private:
|
||||
inline QVariantHash defaultInfo() const;
|
||||
QString getAutoMpris() const;
|
||||
@ -44,13 +49,15 @@ private:
|
||||
QString stripString(const QString value, const int s) const;
|
||||
// configuration and values
|
||||
QString m_mpdAddress;
|
||||
QVariantHash m_mpdCached;
|
||||
QProcess *m_mpdProcess = nullptr;
|
||||
QString m_mpris;
|
||||
QString m_player;
|
||||
int m_symbols;
|
||||
QStringList m_metadata = QStringList() << QString("album")
|
||||
<< QString("artist")
|
||||
<< QString("title");
|
||||
QVariantHash values;
|
||||
QVariantHash m_values;
|
||||
};
|
||||
|
||||
|
||||
|
@ -41,9 +41,9 @@ QVariant ProcessesSource::data(QString source)
|
||||
{
|
||||
qCDebug(LOG_ESM) << "Source" << source;
|
||||
|
||||
if (!values.contains(source))
|
||||
if (!m_values.contains(source))
|
||||
run();
|
||||
QVariant value = values.take(source);
|
||||
QVariant value = m_values.take(source);
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -98,9 +98,9 @@ void ProcessesSource::run()
|
||||
running.append(cmdFile.readAll());
|
||||
}
|
||||
|
||||
values[QString("ps/running/count")] = running.count();
|
||||
values[QString("ps/running/list")] = running;
|
||||
values[QString("ps/total/count")] = directories.count();
|
||||
m_values[QString("ps/running/count")] = running.count();
|
||||
m_values[QString("ps/running/list")] = running;
|
||||
m_values[QString("ps/total/count")] = directories.count();
|
||||
}
|
||||
|
||||
|
||||
|
@ -35,7 +35,7 @@ public:
|
||||
|
||||
private:
|
||||
// configuration and values
|
||||
QVariantHash values;
|
||||
QVariantHash m_values;
|
||||
};
|
||||
|
||||
|
||||
|
@ -47,12 +47,12 @@ QVariant QuotesSource::data(QString source)
|
||||
|
||||
int ind = index(source);
|
||||
source.remove(QString("quotes/"));
|
||||
if (!values.contains(source)) {
|
||||
if (!m_values.contains(source)) {
|
||||
QVariantHash data = extQuotes->itemByTagNumber(ind)->run();
|
||||
for (auto key : data.keys())
|
||||
values[key] = data[key];
|
||||
m_values[key] = data[key];
|
||||
}
|
||||
QVariant value = values.take(source);
|
||||
QVariant value = m_values.take(source);
|
||||
return value;
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ private:
|
||||
// configuration and values
|
||||
ExtItemAggregator<ExtQuotes> *extQuotes;
|
||||
QStringList m_sources;
|
||||
QVariantHash values;
|
||||
QVariantHash m_values;
|
||||
};
|
||||
|
||||
|
||||
|
@ -47,12 +47,12 @@ QVariant WeatherSource::data(QString source)
|
||||
|
||||
int ind = index(source);
|
||||
source.remove(QString("weather/"));
|
||||
if (!values.contains(source)) {
|
||||
if (!m_values.contains(source)) {
|
||||
QVariantHash data = extWeather->itemByTagNumber(ind)->run();
|
||||
for (auto key : data.keys())
|
||||
values[key] = data[key];
|
||||
m_values[key] = data[key];
|
||||
}
|
||||
QVariant value = values.take(source);
|
||||
QVariant value = m_values.take(source);
|
||||
return value;
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ private:
|
||||
// configuration and values
|
||||
ExtItemAggregator<ExtWeather> *extWeather;
|
||||
QStringList m_sources;
|
||||
QVariantHash values;
|
||||
QVariantHash m_values;
|
||||
};
|
||||
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
#define EMAIL "@PROJECT_CONTACT@"
|
||||
#define LICENSE "@PROJECT_LICENSE@"
|
||||
#define TRDPARTY_LICENSE \
|
||||
"tasks,BSD,https://github.com/mhogomchungu/tasks;QReplyTimeout " \
|
||||
"QReplyTimeout " \
|
||||
"wrapper,no,http://codereview.stackexchange.com/questions/30031/" \
|
||||
"qnetworkreply-network-reply-timeout-helper"
|
||||
#define SPECIAL_THANKS \
|
||||
|
Loading…
Reference in New Issue
Block a user