Merge pull request #100 from arcan1s/development

Release 3.2
This commit is contained in:
Evgenii Alekseev 2016-07-10 01:09:49 +04:00 committed by GitHub
commit 53918f4528
15 changed files with 39 additions and 146 deletions

View File

@ -1,3 +1,17 @@
Ver.3.2.0:
+ custom formatters (#91)
+ add backend tests (#95)
+ add OWM weather provider for ExtWeather. It can be switched by using X-AW-Provider (ApiVer 3)
+ add DBus timeout for calls (#96)
+ add macros support (`$aw_macro` and `$aw_macro_*` for calls)
- fix vertical alignment (#94)
- fix bug with invalid updates on `X-AW-Interval=1` for ExtScript and ExtUpgrade
- fix bug with missing derivate vaules in ExtQuotes
- fix possible plasma crash (#96)
- fix possible undefined behaviour if no extensions was found by name
* split dataengine sources to own library
* allow to use screened double brakets inside functions
Ver.3.1.2: Ver.3.1.2:
+ add standalone widget configuration example + add standalone widget configuration example
+ new tag tstime + new tag tstime

View File

@ -2,7 +2,7 @@
pkgname=plasma5-applet-awesome-widgets pkgname=plasma5-applet-awesome-widgets
_pkgname=awesome-widgets _pkgname=awesome-widgets
pkgver=3.1.2 pkgver=3.2.0
pkgrel=1 pkgrel=1
pkgdesc="Collection of minimalistic Plasmoids which look like Awesome WM widgets (ex-PyTextMonitor)" pkgdesc="Collection of minimalistic Plasmoids which look like Awesome WM widgets (ex-PyTextMonitor)"
arch=('i686' 'x86_64') arch=('i686' 'x86_64')
@ -17,7 +17,7 @@ optdepends=("catalyst: for GPU monitor"
makedepends=('cmake' 'extra-cmake-modules' 'python') makedepends=('cmake' 'extra-cmake-modules' 'python')
source=(https://github.com/arcan1s/awesome-widgets/releases/download/V.${pkgver}/${_pkgname}-${pkgver}-src.tar.xz) source=(https://github.com/arcan1s/awesome-widgets/releases/download/V.${pkgver}/${_pkgname}-${pkgver}-src.tar.xz)
install=${pkgname}.install install=${pkgname}.install
md5sums=('99514bf6d1a5ca8660dd0210ee58af28') md5sums=('81a85890d519bd8c5791d0d99cffc9c1')
backup=('etc/xdg/plasma-dataengine-extsysmon.conf') backup=('etc/xdg/plasma-dataengine-extsysmon.conf')
prepare() { prepare() {

View File

@ -1,89 +0,0 @@
diff --git a/sources/extsysmon/extsysmon.cpp b/sources/extsysmon/extsysmon.cpp
index 69934c4..a48b8e7 100644
--- a/sources/extsysmon/extsysmon.cpp
+++ b/sources/extsysmon/extsysmon.cpp
@@ -74,7 +74,10 @@ bool ExtendedSysMon::updateSourceEvent(const QString &source)
qCDebug(LOG_ESM) << "Source" << source;
if (aggregator->hasSource(source)) {
- setData(source, QString("value"), aggregator->data(source));
+ QVariant data = aggregator->data(source);
+ if (data.isNull())
+ return false;
+ setData(source, QString("value"), data);
} else {
qCWarning(LOG_ESM) << "Unknown source" << source;
return false;
diff --git a/sources/extsysmon/sources/playersource.cpp b/sources/extsysmon/sources/playersource.cpp
index 769ed9d..c51511c 100644
--- a/sources/extsysmon/sources/playersource.cpp
+++ b/sources/extsysmon/sources/playersource.cpp
@@ -164,12 +164,16 @@ void PlayerSource::run()
QHash<QString, QVariant> data = getPlayerMpdInfo(m_mpdAddress);
for (auto key : data.keys())
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())
- m_values[key] = data[key];
+ if (m_dbusMutex.tryLock()) {
+ QString mpris
+ = m_mpris == QString("auto") ? getAutoMpris() : m_mpris;
+ QHash<QString, QVariant> data = getPlayerMprisInfo(mpris);
+ for (auto key : data.keys())
+ m_values[key] = data[key];
+ m_dbusMutex.unlock();
+ }
}
// dymanic properties
@@ -258,7 +262,7 @@ QVariantHash PlayerSource::defaultInfo() const
QString PlayerSource::getAutoMpris() const
{
QDBusMessage listServices = QDBusConnection::sessionBus().interface()->call(
- QDBus::BlockWithGui, QString("ListNames"));
+ QDBus::BlockWithGui, QString("ListNames"), DBUS_CALL_TIMEOUT);
if (listServices.arguments().isEmpty())
return QString();
QStringList arguments = listServices.arguments().first().toStringList();
@@ -315,7 +319,8 @@ QVariantHash PlayerSource::getPlayerMprisInfo(const QString mpris) const
QString("org.mpris.MediaPlayer2.%1").arg(mpris),
QString("/org/mpris/MediaPlayer2"), QString(""), QString("Get"));
request.setArguments(args);
- QDBusMessage response = bus.call(request, QDBus::BlockWithGui);
+ QDBusMessage response
+ = bus.call(request, QDBus::BlockWithGui, DBUS_CALL_TIMEOUT);
if ((response.type() != QDBusMessage::ReplyMessage)
|| (response.arguments().isEmpty())) {
qCWarning(LOG_ESS) << "Error message" << response.errorMessage();
diff --git a/sources/extsysmon/sources/playersource.h b/sources/extsysmon/sources/playersource.h
index 0d8bbfc..2164354 100644
--- a/sources/extsysmon/sources/playersource.h
+++ b/sources/extsysmon/sources/playersource.h
@@ -18,11 +18,16 @@
#ifndef PLAYERSOURCE_H
#define PLAYERSOURCE_H
+#include <QMutex>
#include <QObject>
#include "abstractextsysmonsource.h"
+#ifndef DBUS_CALL_TIMEOUT
+#define DBUS_CALL_TIMEOUT 3000
+#endif /* DBUS_CALL_TIMEOUT */
+
class QProcess;
class PlayerSource : public AbstractExtSysMonSource
@@ -52,6 +57,7 @@ private:
QVariantHash m_mpdCached;
QProcess *m_mpdProcess = nullptr;
QString m_mpris;
+ QMutex m_dbusMutex;
QString m_player;
int m_symbols;
QStringList m_metadata = QStringList() << QString("album")

View File

@ -1,15 +0,0 @@
diff --git a/sources/awesome-widget/plugin/awkeys.cpp b/sources/awesome-widget/plugin/awkeys.cpp
index 1744fb7..f483209 100644
--- a/sources/awesome-widget/plugin/awkeys.cpp
+++ b/sources/awesome-widget/plugin/awkeys.cpp
@@ -234,8 +234,10 @@ void AWKeys::reinitKeys(const QStringList currentKeys)
void AWKeys::updateTextData()
{
// do not do it in parallel to avoid race condition
+ m_mutex.lock();
calculateValues();
QString text = parsePattern(keyOperator->pattern());
+ m_mutex.unlock();
emit(needTextToBeUpdated(text));
emit(dataAggregator->updateData(values));

View File

@ -1,26 +0,0 @@
diff --git a/sources/awesome-widget/package/contents/ui/main.qml b/sources/awesome-widget/package/contents/ui/main.qml
index 79c6ddf..0e20bc9 100644
--- a/sources/awesome-widget/package/contents/ui/main.qml
+++ b/sources/awesome-widget/package/contents/ui/main.qml
@@ -84,7 +84,7 @@ Item {
// ui
Text {
id: text
- anchors.fill: Plasmoid.Layout
+ anchors.fill: parent
renderType: Text.NativeRendering
textFormat: Text.RichText
wrapMode: plasmoid.configuration.wrapText ? Text.WordWrap : Text.NoWrap
diff --git a/sources/desktop-panel/package/contents/ui/main.qml b/sources/desktop-panel/package/contents/ui/main.qml
index 5a1e9b6..20f8732 100644
--- a/sources/desktop-panel/package/contents/ui/main.qml
+++ b/sources/desktop-panel/package/contents/ui/main.qml
@@ -57,7 +57,7 @@ Item {
// ui
GridLayout {
- anchors.fill: Plasmoid.Layout
+ anchors.fill: parent
columns: plasmoid.configuration.verticalLayout ? 1 : dpAdds.numberOfDesktops()
rows: plasmoid.configuration.verticalLayout ? dpAdds.numberOfDesktops() : 1

View File

@ -1,4 +1,4 @@
diff --git a/sources/awesome-widget/package/contents/ui/advanced.qml b/sources/awesome-widget/package/contents/ui/advanced.qml diff --git a/sources/awesome-widget/package/contents/ui/advanced.qml b/sources/awesome-widget/package/contents/ui/advanced.qml
index 01bcd58..1ec7ba6 100644 index 01bcd58..1ec7ba6 100644
--- a/sources/awesome-widget/package/contents/ui/advanced.qml --- a/sources/awesome-widget/package/contents/ui/advanced.qml
+++ b/sources/awesome-widget/package/contents/ui/advanced.qml +++ b/sources/awesome-widget/package/contents/ui/advanced.qml
@ -168,9 +168,9 @@ index 6263b30..5f61d2a 100644
} }
-bool AWConfigHelper::exportConfiguration(QObject *nativeConfig, -bool AWConfigHelper::exportConfiguration(const QObject *nativeConfig,
- const QString fileName) const - const QString fileName) const
+void AWConfigHelper::exportConfiguration(QObject *nativeConfig) const +void AWConfigHelper::exportConfiguration(const QObject *nativeConfig) const
{ {
- qCDebug(LOG_AW) << "Selected filename" << fileName; - qCDebug(LOG_AW) << "Selected filename" << fileName;
- -
@ -302,17 +302,17 @@ index 912ac3d..dc51dfb 100644
virtual ~AWConfigHelper(); virtual ~AWConfigHelper();
Q_INVOKABLE QString configurationDirectory() const; Q_INVOKABLE QString configurationDirectory() const;
Q_INVOKABLE bool dropCache() const; Q_INVOKABLE bool dropCache() const;
- Q_INVOKABLE bool exportConfiguration(QObject *nativeConfig, - Q_INVOKABLE bool exportConfiguration(const QObject *nativeConfig,
- const QString fileName) const; - const QString fileName) const;
- Q_INVOKABLE QVariantMap importConfiguration(const QString fileName, - Q_INVOKABLE QVariantMap importConfiguration(const QString fileName,
- const bool importPlasmoid, - const bool importPlasmoid,
- const bool importExtensions, - const bool importExtensions,
- const bool importAdds) const; - const bool importAdds) const;
+ Q_INVOKABLE void exportConfiguration(QObject *nativeConfig) const; + Q_INVOKABLE void exportConfiguration(const QObject *nativeConfig) const;
+ Q_INVOKABLE QVariantMap importConfiguration() const; + Q_INVOKABLE QVariantMap importConfiguration() const;
// dataengine // dataengine
Q_INVOKABLE QVariantMap readDataEngineConfiguration() const; Q_INVOKABLE QVariantMap readDataEngineConfiguration() const;
Q_INVOKABLE void Q_INVOKABLE bool
@@ -51,6 +47,7 @@ private: @@ -51,6 +47,7 @@ private:
void copySettings(QSettings &from, QSettings &to) const; void copySettings(QSettings &from, QSettings &to) const;
void readFile(QSettings &settings, const QString key, void readFile(QSettings &settings, const QString key,
@ -356,7 +356,7 @@ diff --git a/sources/awdebug.cpp b/sources/awdebug.cpp
index eee61e1..9da8dad 100644 index eee61e1..9da8dad 100644
--- a/sources/awdebug.cpp --- a/sources/awdebug.cpp
+++ b/sources/awdebug.cpp +++ b/sources/awdebug.cpp
@@ -20,13 +20,10 @@ @@ -20,15 +20,11 @@
#include "awdebug.h" #include "awdebug.h"
@ -365,11 +365,14 @@ index eee61e1..9da8dad 100644
-Q_LOGGING_CATEGORY(LOG_DP, "org.kde.plasma.desktoppanel", -Q_LOGGING_CATEGORY(LOG_DP, "org.kde.plasma.desktoppanel",
- QtMsgType::QtWarningMsg) - QtMsgType::QtWarningMsg)
-Q_LOGGING_CATEGORY(LOG_ESM, "org.kde.plasma.extsysmon", QtMsgType::QtWarningMsg) -Q_LOGGING_CATEGORY(LOG_ESM, "org.kde.plasma.extsysmon", QtMsgType::QtWarningMsg)
-Q_LOGGING_CATEGORY(LOG_ESS, "org.kde.plasma.extsysmonsources",
- QtMsgType::QtWarningMsg)
-Q_LOGGING_CATEGORY(LOG_LIB, "org.kde.plasma.awesomewidgets", -Q_LOGGING_CATEGORY(LOG_LIB, "org.kde.plasma.awesomewidgets",
- QtMsgType::QtWarningMsg) - QtMsgType::QtWarningMsg)
+Q_LOGGING_CATEGORY(LOG_AW, "org.kde.plasma.awesomewidget") +Q_LOGGING_CATEGORY(LOG_AW, "org.kde.plasma.awesomewidget")
+Q_LOGGING_CATEGORY(LOG_DP, "org.kde.plasma.desktoppanel") +Q_LOGGING_CATEGORY(LOG_DP, "org.kde.plasma.desktoppanel")
+Q_LOGGING_CATEGORY(LOG_ESM, "org.kde.plasma.extsysmon") +Q_LOGGING_CATEGORY(LOG_ESM, "org.kde.plasma.extsysmon")
+Q_LOGGING_CATEGORY(LOG_ESM, "org.kde.plasma.extsysmonsources")
+Q_LOGGING_CATEGORY(LOG_LIB, "org.kde.plasma.awesomewidgets") +Q_LOGGING_CATEGORY(LOG_LIB, "org.kde.plasma.awesomewidgets")
@ -392,8 +395,8 @@ index 33192f7..46e2b1e 100644
find_package(Gettext REQUIRED) find_package(Gettext REQUIRED)
# main qt libraries # main qt libraries
-find_package(Qt5 5.4.0 REQUIRED COMPONENTS Core DBus Network Qml Widgets) -find_package(Qt5 5.4.0 REQUIRED COMPONENTS Core DBus Network Qml Test Widgets)
+find_package(Qt5 5.3.0 REQUIRED COMPONENTS Core DBus Network Qml Widgets) +find_package(Qt5 5.3.0 REQUIRED COMPONENTS Core DBus Network Qml Test Widgets)
add_definitions( add_definitions(
${Qt5Core_DEFINITIONS} ${Qt5DBus_DEFINITIONS} ${Qt5Network_DEFINITIONS} ${Qt5Core_DEFINITIONS} ${Qt5DBus_DEFINITIONS} ${Qt5Network_DEFINITIONS}
${Qt5Qml_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5Qml_DEFINITIONS} ${Qt5Widgets_DEFINITIONS}

View File

@ -141,8 +141,8 @@ index 33192f7..339bb58 100644
find_package(Gettext REQUIRED) find_package(Gettext REQUIRED)
# main qt libraries # main qt libraries
-find_package(Qt5 5.6.0 REQUIRED COMPONENTS Core DBus Network Qml Widgets) -find_package(Qt5 5.6.0 REQUIRED COMPONENTS Core DBus Network Qml Test Widgets)
+find_package(Qt5 5.4.0 REQUIRED COMPONENTS Core DBus Network Qml Widgets) +find_package(Qt5 5.4.0 REQUIRED COMPONENTS Core DBus Network Qml Test Widgets)
add_definitions( add_definitions(
${Qt5Core_DEFINITIONS} ${Qt5DBus_DEFINITIONS} ${Qt5Network_DEFINITIONS} ${Qt5Core_DEFINITIONS} ${Qt5DBus_DEFINITIONS} ${Qt5Network_DEFINITIONS}
${Qt5Qml_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5Qml_DEFINITIONS} ${Qt5Widgets_DEFINITIONS}

View File

@ -14,8 +14,8 @@ set(PROJECT_AUTHOR "Evgeniy Alekseev")
set(PROJECT_CONTACT "esalexeev@gmail.com") set(PROJECT_CONTACT "esalexeev@gmail.com")
set(PROJECT_LICENSE "GPL3") set(PROJECT_LICENSE "GPL3")
set(PROJECT_VERSION_MAJOR "3") set(PROJECT_VERSION_MAJOR "3")
set(PROJECT_VERSION_MINOR "1") set(PROJECT_VERSION_MINOR "2")
set(PROJECT_VERSION_PATCH "2") set(PROJECT_VERSION_PATCH "0")
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}") set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
# append git version if any # append git version if any
set(PROJECT_COMMIT_SHA "Commit hash" CACHE INTERNAL "") set(PROJECT_COMMIT_SHA "Commit hash" CACHE INTERNAL "")

View File

@ -19,6 +19,7 @@
#ifndef AWTESTLIBRARY_H #ifndef AWTESTLIBRARY_H
#define AWTESTLIBRARY_H #define AWTESTLIBRARY_H
#include <QPair>
#include <QStringList> #include <QStringList>

View File

@ -20,6 +20,7 @@
#define TESTBATTERYSOURCE_H #define TESTBATTERYSOURCE_H
#include <QObject> #include <QObject>
#include <QPair>
class BatterySource; class BatterySource;

View File

@ -42,7 +42,7 @@ void TestDPPlugin::test_desktops()
int current = plugin->currentDesktop(); int current = plugin->currentDesktop();
int total = plugin->numberOfDesktops(); int total = plugin->numberOfDesktops();
QVERIFY(total != 0); QVERIFY(total != 0);
QVERIFY(current < total); QVERIFY(current <= total);
int number; int number;
if (total == 1) if (total == 1)

View File

@ -20,6 +20,7 @@
#define TESTEXTWEATHER_H #define TESTEXTWEATHER_H
#include <QObject> #include <QObject>
#include <QPair>
class ExtWeather; class ExtWeather;

View File

@ -20,6 +20,7 @@
#define TESTGPULOADSOURCE_H #define TESTGPULOADSOURCE_H
#include <QObject> #include <QObject>
#include <QPair>
class GPULoadSource; class GPULoadSource;

View File

@ -20,6 +20,7 @@
#define TESTGPUTEMPSOURCE_H #define TESTGPUTEMPSOURCE_H
#include <QObject> #include <QObject>
#include <QPair>
class GPUTemperatureSource; class GPUTemperatureSource;

View File

@ -20,6 +20,7 @@
#define TESTHDDTEMPSOURCE_H #define TESTHDDTEMPSOURCE_H
#include <QObject> #include <QObject>
#include <QPair>
class HDDTemperatureSource; class HDDTemperatureSource;