From 77a94aa0c1091657b00fdb910a93f217951a798e Mon Sep 17 00:00:00 2001 From: Evgeniy Alekseev Date: Sat, 22 Oct 2016 00:43:16 +0300 Subject: [PATCH] add methods to dbus interface --- .../awesome-widget/plugin/awdbusadaptor.cpp | 53 ++++++++++++++++++- sources/awesome-widget/plugin/awdbusadaptor.h | 15 +++++- sources/awesome-widget/plugin/awkeys.cpp | 1 - 3 files changed, 65 insertions(+), 4 deletions(-) diff --git a/sources/awesome-widget/plugin/awdbusadaptor.cpp b/sources/awesome-widget/plugin/awdbusadaptor.cpp index 42e7c73..01dfc28 100644 --- a/sources/awesome-widget/plugin/awdbusadaptor.cpp +++ b/sources/awesome-widget/plugin/awdbusadaptor.cpp @@ -35,7 +35,58 @@ AWDBusAdaptor::~AWDBusAdaptor() } -qlonglong AWDBusAdaptor::whoAmI() const +QString AWDBusAdaptor::Info(const QString key) const +{ + return m_plugin->infoByKey(key); +} + + +QStringList AWDBusAdaptor::Keys(const QString regexp) const +{ + return m_plugin->dictKeys(true, regexp); +} + + +QString AWDBusAdaptor::Value(const QString key) const +{ + return m_plugin->valueByKey(key); +} + + +qlonglong AWDBusAdaptor::WhoAmI() const { return reinterpret_cast(m_plugin); } + + +void AWDBusAdaptor::SetLogLevel(const QString what, const int level) +{ + qCDebug(LOG_DBUS) << "Set log level" << level << "for" << what; + + if (level >= m_logLevels.count()) { + qCDebug(LOG_DBUS) << "Invalid logging level" << level + << "should be less than" << m_logLevels.count(); + return; + } + + for (auto lev : m_logLevels) + SetLogLevel(what, lev, m_logLevels.indexOf(lev) >= level); +} + + +void AWDBusAdaptor::SetLogLevel(const QString what, const QString level, + const bool enabled) +{ + qCDebug(LOG_DBUS) << "Set log level" << level << "enabled" << enabled + << "for" << what; + + if (!m_logLevels.contains(level)) { + qCDebug(LOG_DBUS) << "Invalid logging level" << level << "should be in" + << m_logLevels; + return; + } + + QString state = enabled ? QString("true") : QString("false"); + QLoggingCategory::setFilterRules( + QString("%1.%2=%3").arg(what).arg(level).arg(state)); +} diff --git a/sources/awesome-widget/plugin/awdbusadaptor.h b/sources/awesome-widget/plugin/awdbusadaptor.h index caa3c02..18d736d 100644 --- a/sources/awesome-widget/plugin/awdbusadaptor.h +++ b/sources/awesome-widget/plugin/awdbusadaptor.h @@ -33,13 +33,24 @@ class AWDBusAdaptor : public QDBusAbstractAdaptor public: explicit AWDBusAdaptor(AWKeys *parent = nullptr); - ~AWDBusAdaptor(); + virtual ~AWDBusAdaptor(); public slots: - qlonglong whoAmI() const; + // get methods + QString Info(const QString key) const; + QStringList Keys(const QString regexp) const; + QString Value(const QString key) const; + qlonglong WhoAmI() const; + // set methods + void SetLogLevel(const QString what, const int level); + void SetLogLevel(const QString what, const QString level, + const bool enabled); private: AWKeys *m_plugin = nullptr; + QStringList m_logLevels = QStringList() + << QString("debug") << QString("info") + << QString("warning") << QString("critical"); }; diff --git a/sources/awesome-widget/plugin/awkeys.cpp b/sources/awesome-widget/plugin/awkeys.cpp index b2d84fc..4e4aa07 100644 --- a/sources/awesome-widget/plugin/awkeys.cpp +++ b/sources/awesome-widget/plugin/awkeys.cpp @@ -81,7 +81,6 @@ AWKeys::~AWKeys() // delete dbus session long id = reinterpret_cast(this); QDBusConnection::sessionBus().unregisterObject(QString("/%1").arg(id)); - QDBusConnection::sessionBus().unregisterService(AWDBUS_SERVICE); // core delete m_dataEngineAggregator;