Compare commits

...

9 Commits

Author SHA1 Message Date
arcanis 7e13e1eef7 Release 4.0.5 2026-01-28 19:53:21 +02:00
arcanis da53052a6f fix: always unsubscribe on sources 2026-01-28 19:51:51 +02:00
arcanis 1a0a1fb884 Release 4.0.4 2026-01-28 14:18:16 +02:00
arcanis 7a4367734b fix: check if subscription optimisation is enabled explicitly
Previous implementation has used implicit logic with empty keys arrays,
which might lead to some errors in processing
2026-01-28 14:16:55 +02:00
arcanis cdcd929cec Release 4.0.3 2026-01-01 19:54:34 +02:00
arcanis 8605f66535 fix: compilation error with the latest releases (#173)
As it has been found in the releated issue, compile error occurs because
of missing evaluation and appears to be caused by Qt6QmlTargets.cmake.
Instead of trying to hack generated files, lets just drop qml
definitions because we don't really use them explicitly
2026-01-01 19:49:26 +02:00
arcanis 3abcd8d6ae Release 4.0.2 2025-07-25 09:34:56 +03:00
daveedmee 0725288595 feat: added German translation (#172)
* Added German translation

About 96% of the plasmaoid into German. Missing strings for:

- AC online tag (as well as AC online)
- AC offline tag (as well as AC offline) (I think they are used for when you have a charging cable plugged into your laptop? I am on a desktop so I can't check)
- Quotes Monitor (as well as quotes – are they used for stocks?)
- User keys
- Has return

Also worth noting is that your redirection to stooq.com doesn't make sense for a German as it is a Polish stocks site

* Fixed some spelling issues

* fixed spelling of openSUSE

* Update de.po

Confused minimal with minimalistic. Changed translation accordingly

* added missing translation strings

Missing translations added for
- AC
- AC online (+tag)
- AC offline (+tag)
- Quotes (+Monitor)
- User keys
- has return
- Player data symbols
2025-07-23 20:22:00 +03:00
Winter 8342d65ffa docs: update README.md (#169) 2025-03-14 14:41:06 +02:00
17 changed files with 1281 additions and 24 deletions
+3
View File
@@ -48,3 +48,6 @@ pkg
# clion settings
.idea
cmake-build*
# clang
.cache
+1
View File
@@ -13,3 +13,4 @@ Steve Lemuel (Chinese)
Mariusz Kocoń (Polish)
Ibnu Daru Aji (Indonesian)
Antonio Vivace (Italian)
@daveedmee (German)
+6
View File
@@ -1,3 +1,9 @@
Ver.4.0.3:
- drop qml definition to avoid compile errors
Ver.4.0.2:
+ German translation (#172, thanks to daveedmee)
Ver.4.0.1:
- temporary disable tooltip painting in main widget
+1 -1
View File
@@ -75,5 +75,5 @@ Links
* [Scripts and bars](https://arcanis.me/en/2014/12/19/aw-v21-bells-and-whistles/)
* Plasmoid on [kde-look](http://kde-look.org/content/show.php/Awesome+Widgets?content=157124)
* DataEngine on [kde-look](http://kde-look.org/content/show.php/Extended+Systemmonitor+DataEngine?content=158773)
* Archlinux [AUR](https://aur.archlinux.org/packages/plasma5-applet-awesome-widgets/) package
* Archlinux [AUR](https://aur.archlinux.org/packages/plasma6-applets-awesome-widgets) package
* [OpenSuse](http://software.opensuse.org/search?q=awesome-widgets) packages, [KF5 OpenSuse](http://software.opensuse.org/package/plasma5-awesome-widgets) package
+1 -3
View File
@@ -2,7 +2,7 @@
pkgname=plasma6-applet-awesome-widgets
_pkgname=awesome-widgets
pkgver=4.0.0alpha2
pkgver=4.0.5
pkgrel=1
pkgdesc="Collection of minimalistic Plasmoids which look like Awesome WM widgets (ex-PyTextMonitor)"
arch=('x86_64')
@@ -27,5 +27,3 @@ build () {
package() {
DESTDIR="$pkgdir" cmake --install build
}
sha256sums=('b2a7b07a1df6f710f4e0d6e5898933f4ddb131818b922dc4b8e48afe3e98a664')
+1 -1
View File
@@ -19,7 +19,7 @@ set(PROJECT_CONTACT "esalexeev@gmail.com")
set(PROJECT_LICENSE "GPL3")
set(PROJECT_VERSION_MAJOR "4")
set(PROJECT_VERSION_MINOR "0")
set(PROJECT_VERSION_PATCH "1")
set(PROJECT_VERSION_PATCH "5")
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
# append git version if any
set(PROJECT_COMMIT_SHA "Commit hash" CACHE INTERNAL "")
+1 -1
View File
@@ -19,7 +19,7 @@
"Id": "org.kde.plasma.awesomewidget",
"License": "GPLv3",
"Name": "Awesome Widget",
"Version": "4.0.1",
"Version": "4.0.5",
"Website": "https://arcanis.me/projects/awesome-widgets/"
},
"X-Plasma-API-Minimum-Version": "6.0"
@@ -99,10 +99,9 @@ void AWDataEngineAggregator::dropSource(const QString &_source)
{
qCDebug(LOG_AW) << "Disconnect sensor" << _source;
if (m_subscribed.contains(_source)) {
m_interface->unsubscribe({_source}).waitForFinished();
m_subscribed.remove(_source);
}
m_interface->unsubscribe({_source}).waitForFinished();
m_interface->unsubscribe({_source}).waitForFinished();
m_subscribed.remove(_source);
}
@@ -65,7 +65,7 @@ QStringList AWDataEngineMapper::keysFromSource(const QString &_source) const
// HACK units required to define should the value be calculated as temperature
// or fan data
QStringList AWDataEngineMapper::registerSource(const QString &_source, const KSysGuard::Unit _units,
const QStringList &_keys)
const QStringList &_keys, const bool _disconnectUnused)
{
qCDebug(LOG_AW) << "Source" << _source << "with units" << _units;
@@ -91,7 +91,7 @@ QStringList AWDataEngineMapper::registerSource(const QString &_source, const KSy
// check if keys were actually requested
qCInfo(LOG_AW) << "Looking for keys" << keys << "in" << _keys;
auto required = _keys.isEmpty()
auto required = !_disconnectUnused
|| std::any_of(keys.cbegin(), keys.cend(), [&_keys](auto &key) { return _keys.contains(key); });
if (!required)
return {};
@@ -39,7 +39,8 @@ public:
[[nodiscard]] AWPluginFormaterInterface *formatter(const QString &_key) const;
[[nodiscard]] QStringList keysFromSource(const QString &_source) const;
// set methods
QStringList registerSource(const QString &_source, KSysGuard::Unit _units, const QStringList &_keys);
QStringList registerSource(const QString &_source, KSysGuard::Unit _units, const QStringList &_keys,
const bool _disconnectUnused);
void setDevices(const AWPluginMatcherSettings &_settings);
private:
+3 -4
View File
@@ -206,9 +206,8 @@ void AWKeys::reinitKeys(const QStringList &_currentKeys)
barKeys.append(item->usedKeys());
}
// get required keys
m_requiredKeys = m_optimize ? AWKeyCache::getRequiredKeys(m_foundKeys, barKeys, m_tooltipParams,
m_keyOperator->requiredUserKeys(), _currentKeys)
: QStringList();
m_requiredKeys = AWKeyCache::getRequiredKeys(m_foundKeys, barKeys, m_tooltipParams,
m_keyOperator->requiredUserKeys(), _currentKeys);
// set key data to m_aggregator
m_aggregator->setDevices(m_keyOperator->devices());
@@ -317,7 +316,7 @@ void AWKeys::setDataBySource(const QString &_source, const KSysGuard::SensorInfo
// first list init
auto tags = m_aggregator->keysFromSource(_source);
if (tags.isEmpty())
tags = m_aggregator->registerSource(_source, _sensor.unit, m_requiredKeys);
tags = m_aggregator->registerSource(_source, _sensor.unit, m_requiredKeys, m_optimize);
// update data or drop source if there are no matches and exit
if (tags.isEmpty()) {
@@ -151,9 +151,9 @@ void AWKeysAggregator::setTranslate(const bool _translate)
QStringList AWKeysAggregator::registerSource(const QString &_source, const KSysGuard::Unit _units,
const QStringList &_keys)
const QStringList &_keys, const bool _disconnectUnused)
{
qCDebug(LOG_AW) << "Source" << _source << "with units" << _units;
return m_mapper->registerSource(_source, _units, _keys);
return m_mapper->registerSource(_source, _units, _keys, _disconnectUnused);
}
@@ -61,7 +61,8 @@ public:
void setTranslate(bool _translate);
public slots:
QStringList registerSource(const QString &_source, KSysGuard::Unit _units, const QStringList &_keys);
QStringList registerSource(const QString &_source, KSysGuard::Unit _units, const QStringList &_keys,
const bool _disconnectUnused);
private:
AWPluginFormatSettings m_settings;
+1 -1
View File
@@ -19,7 +19,7 @@
"Id": "org.kde.plasma.desktoppanel",
"License": "GPLv3",
"Name": "Desktop Panel",
"Version": "4.0.1",
"Version": "4.0.5",
"Website": "https://arcanis.me/projects/awesome-widgets/"
},
"X-Plasma-API-Minimum-Version": "6.0"
@@ -128,8 +128,8 @@ QVariant SystemInfoSource::sendDBusRequest(const QString &_destination, const QS
auto response = bus.call(request, QDBus::BlockWithGui, REQUEST_TIMEOUT);
if ((response.type() != QDBusMessage::ReplyMessage) || (response.arguments().isEmpty())) {
qCWarning(LOG_ESS) << "Error message" << response.errorMessage();
if (response.type() != QDBusMessage::ReplyMessage || response.arguments().isEmpty()) {
qCWarning(LOG_ESS) << "Error" << response.errorName() << "with message" << response.errorMessage();
return {};
} else {
return response.arguments().first();
+1 -1
View File
@@ -5,7 +5,7 @@ find_package(Gettext REQUIRED)
find_package(Qt6 6.6.0 REQUIRED COMPONENTS Core Concurrent DBus Network Qml Test Widgets)
add_definitions(
${Qt6Core_DEFINITIONS} ${Qt6DBus_DEFINITIONS} ${Qt6Network_DEFINITIONS}
${Qt6Qml_DEFINITIONS} ${Qt6Widgets_DEFINITIONS}
${Qt6Widgets_DEFINITIONS}
)
set(Qt_INCLUDE
${Qt6Core_INCLUDE_DIRS} ${Qt6Concurrent_INCLUDE_DIRS} ${Qt6DBus_INCLUDE_DIRS} ${Qt6Network_INCLUDE_DIRS}
File diff suppressed because it is too large Load Diff