Hello community, here is the log from the commit of package lxqt-qtplugin for openSUSE:Factory checked in at 2020-05-04 18:35:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/lxqt-qtplugin (Old) and /work/SRC/openSUSE:Factory/.lxqt-qtplugin.new.2738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lxqt-qtplugin" Mon May 4 18:35:40 2020 rev:12 rq:798544 version:0.15.0 Changes: -------- --- /work/SRC/openSUSE:Factory/lxqt-qtplugin/lxqt-qtplugin.changes 2019-02-25 17:49:34.414803609 +0100 +++ /work/SRC/openSUSE:Factory/.lxqt-qtplugin.new.2738/lxqt-qtplugin.changes 2020-05-04 18:38:14.736770526 +0200 @@ -1,0 +2,14 @@ +Mon Apr 27 11:00:52 UTC 2020 - Callum Farmer <callumjfarme...@gmail.com> + +- Changed lxqt-qtplugin.keyring to tsujan's key + +------------------------------------------------------------------- +Sat Apr 25 11:12:05 UTC 2020 - Callum Farmer <callumjfarme...@gmail.com> + +- Update to version 0.15.0 + * Set minimum required Qt version to 5.10.0. + * Added libfm-qt as a dependency (for LXQt file dialog). + * Added support for flatpak and working without context menu (to status notifier). + * Removed deprecated QImage methods and updated the code for C++11. + +------------------------------------------------------------------- Old: ---- lxqt-qtplugin-0.14.0.tar.xz lxqt-qtplugin-0.14.0.tar.xz.asc New: ---- lxqt-qtplugin-0.15.0.tar.xz lxqt-qtplugin-0.15.0.tar.xz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lxqt-qtplugin.spec ++++++ --- /var/tmp/diff_new_pack.W8mZl5/_old 2020-05-04 18:38:19.412780001 +0200 +++ /var/tmp/diff_new_pack.W8mZl5/_new 2020-05-04 18:38:19.416780010 +0200 @@ -1,7 +1,7 @@ # # spec file for package lxqt-qtplugin # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: lxqt-qtplugin -Version: 0.14.0 +Version: 0.15.0 Release: 0 Summary: LXQt platform integration plugin for Qt 5 License: LGPL-2.1-or-later @@ -30,7 +30,7 @@ BuildRequires: gcc-c++ BuildRequires: libQt5Gui-private-headers-devel BuildRequires: libexif-devel -BuildRequires: lxqt-build-tools-devel >= 0.6.0 +BuildRequires: lxqt-build-tools-devel >= 0.7.0 BuildRequires: pkgconfig BuildRequires: cmake(KF5WindowSystem) BuildRequires: pkgconfig(Qt5Gui) @@ -39,6 +39,7 @@ BuildRequires: pkgconfig(Qt5XdgIconLoader) BuildRequires: pkgconfig(dbusmenu-qt5) BuildRequires: pkgconfig(lxqt) >= %{version} +BuildRequires: pkgconfig(libfm-qt) >= %{version} %if 0%{?fedora_version} %requires_eq qt5-qtbase-gui %else ++++++ lxqt-qtplugin-0.14.0.tar.xz -> lxqt-qtplugin-0.15.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.14.0/CHANGELOG new/lxqt-qtplugin-0.15.0/CHANGELOG --- old/lxqt-qtplugin-0.14.0/CHANGELOG 2019-01-24 23:04:03.000000000 +0100 +++ new/lxqt-qtplugin-0.15.0/CHANGELOG 2020-04-23 20:15:57.000000000 +0200 @@ -1,16 +1,28 @@ +lxqt-qtplugin-0.15.0 / 2020-04-22 +================================= + * Bumped version to 0.15.0. + * Made libfm-qt a dependency and loaded versioned libfm-qt (for versioned ".so" handling). + * C++11 code updates. + * Use return braced init list. + * Removed (duplicated) string casts definitions. + * Removed deprecated QImage method "byteCount()" and used "sizeInBytes()" instead. + * Fixed "#include" for libdbusmenu-qt. + * Added support for flatpak to StatusNotifierItem. + * Added Category property to StatusNotifierItem to fix working on some DEs. + * Added support for working without context menu to StatusNotifierItem. lxqt-qtplugin-0.14.0 / 2019-01-25 ================================= * Bumped version to 0.14.0 - * Dynamically load libfm-qt on demand to create + * Dynamically load libfm-qt on demand to create the file dialog helper. - * Don't use automatic string conversions + * Don't use automatic string conversions * Improved cmake scripting - Set cmake_minimum_required to 3.1.0 - Removed locale compile definitons - - Removed the superfluous libfm-qt dependency - + - Removed the superfluous libfm-qt dependency + lxqt-qtplugin-0.13.0 / 2018-05-21 ================================= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.14.0/CMakeLists.txt new/lxqt-qtplugin-0.15.0/CMakeLists.txt --- old/lxqt-qtplugin-0.14.0/CMakeLists.txt 2019-01-24 23:04:03.000000000 +0100 +++ new/lxqt-qtplugin-0.15.0/CMakeLists.txt 2020-04-23 20:15:57.000000000 +0200 @@ -13,9 +13,10 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) # Minimum Versions -set(LXQTBT_MINIMUM_VERSION "0.6.0") -set(QT_MINIMUM_VERSION "5.7.1") -set(QTXDG_MINIMUM_VERSION "3.3.0") +set(LXQTBT_MINIMUM_VERSION "0.7.0") +set(QT_MINIMUM_VERSION "5.10.0") +set(QTXDG_MINIMUM_VERSION "3.5.0") +set(FMQT_MINIMUM_VERSION "0.15.0") find_package(Qt5DBus ${QT_MINIMUM_VERSION} REQUIRED) find_package(Qt5LinguistTools ${QT_MINIMUM_VERSION} REQUIRED) @@ -23,6 +24,18 @@ find_package(Qt5XdgIconLoader ${QTXDG_MINIMUM_VERSION} REQUIRED) find_package(lxqt-build-tools ${LXQTBT_MINIMUM_VERSION} REQUIRED) find_package(dbusmenu-qt5 REQUIRED) +find_package(fm-qt ${FMQT_MINIMUM_VERSION} REQUIRED) + +get_target_property(LIB_FM_QT_CONFIGURATIONS fm-qt IMPORTED_CONFIGURATIONS) +if (LIB_FM_QT_CONFIGURATIONS) + # Extract the .soname from the first configuration found. + # We don't use configuration mapping. Any config serves the purpose + list(GET LIB_FM_QT_CONFIGURATIONS 0 LIB_FM_QT_FIRST_CONFIGURATION) + get_target_property(LIB_FM_QT_SONAME fm-qt IMPORTED_SONAME_${LIB_FM_QT_FIRST_CONFIGURATION}) +else() + message(ERROR "libfm-qt, but no configuration found. Check your libfm-qt installation.") +endif() +mark_as_advanced(LIB_FM_QT_SONAME) # Patch Version 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.14.0/src/CMakeLists.txt new/lxqt-qtplugin-0.15.0/src/CMakeLists.txt --- old/lxqt-qtplugin-0.14.0/src/CMakeLists.txt 2019-01-24 23:04:03.000000000 +0100 +++ new/lxqt-qtplugin-0.15.0/src/CMakeLists.txt 2020-04-23 20:15:57.000000000 +0200 @@ -29,11 +29,7 @@ target_compile_definitions(qtlxqt PRIVATE "QT_NO_FOREACH" - "QT_USE_QSTRINGBUILDER" - "QT_NO_CAST_FROM_ASCII" - "QT_NO_CAST_TO_ASCII" - "QT_NO_URL_CAST_FROM_STRING" - "QT_NO_CAST_FROM_BYTEARRAY" + "LIB_FM_QT_SONAME=\"${LIB_FM_QT_SONAME}\"" ) target_link_libraries(qtlxqt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.14.0/src/lxqtplatformtheme.cpp new/lxqt-qtplugin-0.15.0/src/lxqtplatformtheme.cpp --- old/lxqt-qtplugin-0.14.0/src/lxqtplatformtheme.cpp 2019-01-24 23:04:03.000000000 +0100 +++ new/lxqt-qtplugin-0.15.0/src/lxqtplatformtheme.cpp 2020-04-23 20:15:57.000000000 +0200 @@ -56,7 +56,7 @@ LXQtPlatformTheme::LXQtPlatformTheme(): iconFollowColorScheme_(true) - , settingsWatcher_(NULL) + , settingsWatcher_(nullptr) { loadSettings(); // Note: When the plugin is loaded, it seems that the app is not yet running and @@ -238,8 +238,8 @@ // The createFileDialogHelper() method is dynamically loaded from libfm-qt on demand if(createFileDialogHelper == nullptr) { - // try to dynamically load libfm-qt.so - QLibrary libfmQtLibrary{QLatin1String("libfm-qt")}; + // try to dynamically load versioned libfm-qt.so + QLibrary libfmQtLibrary{QLatin1String(LIB_FM_QT_SONAME)}; libfmQtLibrary.load(); if(!libfmQtLibrary.isLoaded()) { return nullptr; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.14.0/src/lxqtplatformtheme.h new/lxqt-qtplugin-0.15.0/src/lxqtplatformtheme.h --- old/lxqt-qtplugin-0.14.0/src/lxqtplatformtheme.h 2019-01-24 23:04:03.000000000 +0100 +++ new/lxqt-qtplugin-0.15.0/src/lxqtplatformtheme.h 2020-04-23 20:15:57.000000000 +0200 @@ -41,22 +41,22 @@ Q_OBJECT public: LXQtPlatformTheme(); - ~LXQtPlatformTheme(); + ~LXQtPlatformTheme() override; // virtual QPlatformMenuItem* createPlatformMenuItem() const; // virtual QPlatformMenu* createPlatformMenu() const; // virtual QPlatformMenuBar* createPlatformMenuBar() const; - virtual bool usePlatformNativeDialog(DialogType type) const; - virtual QPlatformDialogHelper *createPlatformDialogHelper(DialogType type) const; + bool usePlatformNativeDialog(DialogType type) const override; + QPlatformDialogHelper *createPlatformDialogHelper(DialogType type) const override; - virtual const QPalette *palette(Palette type = SystemPalette) const; + const QPalette *palette(Palette type = SystemPalette) const override; - virtual const QFont *font(Font type = SystemFont) const; + const QFont *font(Font type = SystemFont) const override; - virtual QVariant themeHint(ThemeHint hint) const; + QVariant themeHint(ThemeHint hint) const override; - QPlatformSystemTrayIcon *createPlatformSystemTrayIcon() const + QPlatformSystemTrayIcon *createPlatformSystemTrayIcon() const override { auto trayIcon = new LXQtSystemTrayIcon; if (trayIcon->isSystemTrayAvailable()) @@ -72,7 +72,7 @@ // virtual QPixmap fileIconPixmap(const QFileInfo &fileInfo, const QSizeF &size, // QPlatformTheme::IconOptions iconOptions = 0) const; - virtual QIconEngine *createIconEngine(const QString &iconName) const; + QIconEngine *createIconEngine(const QString &iconName) const override; // virtual QList<QKeySequence> keyBindings(QKeySequence::StandardKey key) const; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.14.0/src/lxqtsystemtrayicon.cpp new/lxqt-qtplugin-0.15.0/src/lxqtsystemtrayicon.cpp --- old/lxqt-qtplugin-0.14.0/src/lxqtsystemtrayicon.cpp 2019-01-24 23:04:03.000000000 +0100 +++ new/lxqt-qtplugin-0.15.0/src/lxqtsystemtrayicon.cpp 2020-04-23 20:15:57.000000000 +0200 @@ -355,7 +355,7 @@ QRect LXQtSystemTrayIcon::geometry() const { // StatusNotifierItem doesn't provide the geometry - return QRect(); + return {}; } void LXQtSystemTrayIcon::showMessage(const QString &title, const QString &msg, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.14.0/src/main.cpp new/lxqt-qtplugin-0.15.0/src/main.cpp --- old/lxqt-qtplugin-0.14.0/src/main.cpp 2019-01-24 23:04:03.000000000 +0100 +++ new/lxqt-qtplugin-0.15.0/src/main.cpp 2020-04-23 20:15:57.000000000 +0200 @@ -36,13 +36,13 @@ Q_OBJECT Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPA.QPlatformThemeFactoryInterface.5.1" FILE "lxqtplatformtheme.json") public: - QPlatformTheme *create(const QString &key, const QStringList ¶ms); + QPlatformTheme *create(const QString &key, const QStringList ¶ms) override; }; QPlatformTheme *LXQtPlatformThemePlugin::create(const QString &key, const QStringList &/*params*/) { if (!key.compare(QLatin1String("lxqt"), Qt::CaseInsensitive)) return new LXQtPlatformTheme(); - return NULL; + return nullptr; } QT_END_NAMESPACE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.14.0/src/statusnotifieritem/statusnotifieritem.cpp new/lxqt-qtplugin-0.15.0/src/statusnotifieritem/statusnotifieritem.cpp --- old/lxqt-qtplugin-0.14.0/src/statusnotifieritem/statusnotifieritem.cpp 2019-01-24 23:04:03.000000000 +0100 +++ new/lxqt-qtplugin-0.15.0/src/statusnotifieritem/statusnotifieritem.cpp 2020-04-23 20:15:57.000000000 +0200 @@ -29,7 +29,7 @@ #include "statusnotifieritemadaptor.h" #include <QDBusInterface> #include <QDBusServiceWatcher> -#include <dbusmenu-qt5/dbusmenuexporter.h> +#include <dbusmenuexporter.h> int StatusNotifierItem::mServiceCounter = 0; @@ -42,7 +42,9 @@ mId(id), mTitle(QLatin1String("Test")), mStatus(QLatin1String("Active")), + mCategory(QLatin1String("ApplicationStatus")), mMenu(nullptr), + mMenuPath(QLatin1String("/NO_DBUSMENU")), mMenuExporter(nullptr), mSessionBus(QDBusConnection::connectToBus(QDBusConnection::SessionBus, mService)) { @@ -52,7 +54,6 @@ // register service - mSessionBus.registerService(mService); mSessionBus.registerObject(QLatin1String("/StatusNotifierItem"), this); registerToHost(); @@ -69,7 +70,6 @@ StatusNotifierItem::~StatusNotifierItem() { mSessionBus.unregisterObject(QLatin1String("/StatusNotifierItem")); - mSessionBus.unregisterService(mService); QDBusConnection::disconnectFromBus(mService); } @@ -79,7 +79,7 @@ QLatin1String("/StatusNotifierWatcher"), QLatin1String("org.kde.StatusNotifierWatcher"), mSessionBus); - interface.asyncCall(QLatin1String("RegisterStatusNotifierItem"), mService); + interface.asyncCall(QLatin1String("RegisterStatusNotifierItem"), mSessionBus.baseService()); } void StatusNotifierItem::onServiceOwnerChanged(const QString& service, const QString& oldOwner, @@ -95,6 +95,7 @@ void StatusNotifierItem::onMenuDestroyed() { mMenu = nullptr; + setMenuPath(QLatin1String("/NO_DBUSMENU")); mMenuExporter = nullptr; //mMenu is a QObject parent of the mMenuExporter } @@ -116,6 +117,14 @@ Q_EMIT mAdaptor->NewStatus(mStatus); } +void StatusNotifierItem::setCategory(const QString &category) +{ + if (mCategory == category) + return; + + mCategory = category; +} + void StatusNotifierItem::setMenuPath(const QString& path) { mMenuPath.setPath(path); @@ -230,7 +239,11 @@ } mMenu = menu; - setMenuPath(QLatin1String("/MenuBar")); + if (nullptr != mMenu) + setMenuPath(QLatin1String("/MenuBar")); + else + setMenuPath(QLatin1String("/NO_DBUSMENU")); + //Note: we need to destroy menu exporter before creating new one -> to free the DBus object path for new menu delete mMenuExporter; if (nullptr != mMenu) @@ -302,7 +315,12 @@ if (image.format() != QImage::Format_ARGB32) image = image.convertToFormat(QImage::Format_ARGB32); - pix.bytes = QByteArray((char *) image.bits(), image.byteCount()); + pix.bytes = QByteArray((char *) image.bits(), +#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) + image.byteCount()); +#else + image.sizeInBytes()); +#endif // swap to network byte order if we are little endian if (QSysInfo::ByteOrder == QSysInfo::LittleEndian) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.14.0/src/statusnotifieritem/statusnotifieritem.h new/lxqt-qtplugin-0.15.0/src/statusnotifieritem/statusnotifieritem.h --- old/lxqt-qtplugin-0.14.0/src/statusnotifieritem/statusnotifieritem.h 2019-01-24 23:04:03.000000000 +0100 +++ new/lxqt-qtplugin-0.15.0/src/statusnotifieritem/statusnotifieritem.h 2020-04-23 20:15:57.000000000 +0200 @@ -43,6 +43,7 @@ { Q_OBJECT + Q_PROPERTY(QString Category READ category) Q_PROPERTY(QString Title READ title) Q_PROPERTY(QString Id READ id) Q_PROPERTY(QString Status READ status) @@ -61,7 +62,7 @@ public: StatusNotifierItem(QString id, QObject *parent = nullptr); - ~StatusNotifierItem(); + ~StatusNotifierItem() override; QString id() const { return mId; } @@ -74,6 +75,10 @@ { return mStatus; } void setStatus(const QString &status); + QString category() const + { return mCategory; } + void setCategory(const QString &category); + QDBusObjectPath menu() const { return mMenuPath; } void setMenuPath(const QString &path); @@ -162,6 +167,7 @@ QString mId; QString mTitle; QString mStatus; + QString mCategory; // icons QString mIconName, mOverlayIconName, mAttentionIconName; ++++++ lxqt-qtplugin.keyring ++++++ --- /var/tmp/diff_new_pack.W8mZl5/_old 2020-05-04 18:38:19.500780180 +0200 +++ /var/tmp/diff_new_pack.W8mZl5/_new 2020-05-04 18:38:19.504780188 +0200 @@ -1,209 +1,52 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -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 -=9DZH ------END PGP PUBLIC KEY BLOCK----- +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 +sw== +=gSIv +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file