Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kguiaddons for openSUSE:Factory checked in at 2022-06-17 21:19:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kguiaddons (Old) and /work/SRC/openSUSE:Factory/.kguiaddons.new.1548 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kguiaddons" Fri Jun 17 21:19:13 2022 rev:103 rq:982265 version:5.95.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kguiaddons/kguiaddons.changes 2022-05-16 18:08:40.565283080 +0200 +++ /work/SRC/openSUSE:Factory/.kguiaddons.new.1548/kguiaddons.changes 2022-06-17 21:21:08.078728528 +0200 @@ -1,0 +2,13 @@ +Fri Jun 10 14:12:29 UTC 2022 - Christophe Giboudeaux <christo...@krop.fr> + +- Update to 5.95.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/5/5.95.0 +- Changes since 5.94.0: + * WaylandClipboard: DataControlSource: delete m_mimeData in dtor (kde#454590) + * keysequence: Fix race between recording and currentKeySequence + * keysequence: Fix warning message about sequence size to be more precise + * keysequence: Replace magic number 4 with enum constant + +------------------------------------------------------------------- Old: ---- kguiaddons-5.94.0.tar.xz kguiaddons-5.94.0.tar.xz.sig New: ---- kguiaddons-5.95.0.tar.xz kguiaddons-5.95.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kguiaddons.spec ++++++ --- /var/tmp/diff_new_pack.jEHS3R/_old 2022-06-17 21:21:09.726729422 +0200 +++ /var/tmp/diff_new_pack.jEHS3R/_new 2022-06-17 21:21:09.730729424 +0200 @@ -17,7 +17,7 @@ %define lname libKF5GuiAddons5 -%define _tar_path 5.94 +%define _tar_path 5.95 # Full KF5 version (e.g. 5.33.0) %{!?_kf5_version: %global _kf5_version %{version}} # Last major and minor KF5 version (e.g. 5.33) @@ -25,7 +25,7 @@ # Only needed for the package signature condition %bcond_without released Name: kguiaddons -Version: 5.94.0 +Version: 5.95.0 Release: 0 Summary: Utilities for graphical user interfaces License: LGPL-2.1-or-later ++++++ kguiaddons-5.94.0.tar.xz -> kguiaddons-5.95.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kguiaddons-5.94.0/CMakeLists.txt new/kguiaddons-5.95.0/CMakeLists.txt --- old/kguiaddons-5.94.0/CMakeLists.txt 2022-04-29 17:51:11.000000000 +0200 +++ new/kguiaddons-5.95.0/CMakeLists.txt 2022-06-04 10:18:31.000000000 +0200 @@ -1,10 +1,10 @@ cmake_minimum_required(VERSION 3.16) -set(KF_VERSION "5.94.0") # handled by release scripts +set(KF_VERSION "5.95.0") # handled by release scripts project(KGuiAddons VERSION ${KF_VERSION}) include(FeatureSummary) -find_package(ECM 5.93.0 NO_MODULE) +find_package(ECM 5.95.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kguiaddons-5.94.0/src/geo-scheme-handler/google-maps-geo-handler.desktop new/kguiaddons-5.95.0/src/geo-scheme-handler/google-maps-geo-handler.desktop --- old/kguiaddons-5.94.0/src/geo-scheme-handler/google-maps-geo-handler.desktop 2022-04-29 17:51:11.000000000 +0200 +++ new/kguiaddons-5.95.0/src/geo-scheme-handler/google-maps-geo-handler.desktop 2022-06-04 10:18:31.000000000 +0200 @@ -8,19 +8,23 @@ Name[de]=Google Maps Name[en_GB]=Google Maps Name[es]=Google Maps +Name[fi]=Google Maps Name[fr]=Google Maps Name[hi]=???????????? ??????????????? Name[it]=Mappe di Google +Name[ka]=Google Maps Name[ko]=Google ?????? Name[nl]=Google Maps Name[pl]=Mapy Google Name[pt]=Google Maps Name[ro]=H??r??i Google +Name[ru]=?????????? Google Name[sk]=Google Maps Name[sl]=Google Maps Name[sv]=Google kartor Name[tr]=Google Haritalar Name[uk]=?????????? Google +Name[vi]=Google B???n ????? Name[x-test]=xxGoogle Mapsxx Name[zh_CN]=Google Maps Icon=map-globe diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kguiaddons-5.94.0/src/geo-scheme-handler/openstreetmap-geo-handler.desktop new/kguiaddons-5.95.0/src/geo-scheme-handler/openstreetmap-geo-handler.desktop --- old/kguiaddons-5.94.0/src/geo-scheme-handler/openstreetmap-geo-handler.desktop 2022-04-29 17:51:11.000000000 +0200 +++ new/kguiaddons-5.95.0/src/geo-scheme-handler/openstreetmap-geo-handler.desktop 2022-06-04 10:18:31.000000000 +0200 @@ -8,19 +8,23 @@ Name[de]=OpenStreetMap Name[en_GB]=OpenStreetMap Name[es]=OpenStreetMap +Name[fi]=OpenStreetMap Name[fr]=OpenStreetMap Name[hi]=??????????????????????????????????????? Name[it]=OpenStreetMap +Name[ka]=OpenStreetMap Name[ko]=OpenStreetMap Name[nl]=OpenStreetMap Name[pl]=OpenStreetMap Name[pt]=OpenStreetMap Name[ro]=OpenStreetMap +Name[ru]=OpenStreetMap Name[sk]=OpenStreetMap Name[sl]=OpenStreetMap Name[sv]=OpenStreetMap Name[tr]=OpenStreetMap Name[uk]=OpenStreetMap +Name[vi]=OpenStreetMap Name[x-test]=xxOpenStreetMapxx Name[zh_CN]=OpenStreetMap Icon=map-globe diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kguiaddons-5.94.0/src/geo-scheme-handler/qwant-maps-geo-handler.desktop new/kguiaddons-5.95.0/src/geo-scheme-handler/qwant-maps-geo-handler.desktop --- old/kguiaddons-5.94.0/src/geo-scheme-handler/qwant-maps-geo-handler.desktop 2022-04-29 17:51:11.000000000 +0200 +++ new/kguiaddons-5.95.0/src/geo-scheme-handler/qwant-maps-geo-handler.desktop 2022-06-04 10:18:31.000000000 +0200 @@ -8,19 +8,23 @@ Name[de]=Qwant Maps Name[en_GB]=Qwant Maps Name[es]=Qwant Maps +Name[fi]=Qwant Maps Name[fr]=Qwant Maps Name[hi]=????????????????????? ??????????????? Name[it]=Qwant Maps +Name[ka]=Qwant Maps Name[ko]=Qwant ?????? Name[nl]=Qwant Maps Name[pl]=Mapy Qwant Name[pt]=Qwant Maps Name[ro]=H??r??i Qwant +Name[ru]=?????????? Qwant Name[sk]=Qwant Maps Name[sl]=Qwant Maps Name[sv]=Qwant kartor Name[tr]=Qwant Haritalar Name[uk]=?????????? Qwant +Name[vi]=B???n ????? Qwant Name[x-test]=xxQwant Mapsxx Name[zh_CN]=Qwant Maps Icon=map-globe diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kguiaddons-5.94.0/src/geo-scheme-handler/wheelmap-geo-handler.desktop new/kguiaddons-5.95.0/src/geo-scheme-handler/wheelmap-geo-handler.desktop --- old/kguiaddons-5.94.0/src/geo-scheme-handler/wheelmap-geo-handler.desktop 2022-04-29 17:51:11.000000000 +0200 +++ new/kguiaddons-5.95.0/src/geo-scheme-handler/wheelmap-geo-handler.desktop 2022-06-04 10:18:31.000000000 +0200 @@ -8,19 +8,23 @@ Name[de]=wheelmap.org Name[en_GB]=wheelmap.org Name[es]=wheelmap.org +Name[fi]=wheelmap.org Name[fr]=wheelmap.org Name[hi]=??????????????????????????????.???????????? Name[it]=wheelmap.org +Name[ka]=wheelmap.org Name[ko]=wheelmap.org Name[nl]=wheelmap.org Name[pl]=wheelmap.org Name[pt]=wheelmap.org Name[ro]=wheelmap.org +Name[ru]=wheelmap.org Name[sk]=wheelmap.org Name[sl]=wheelmap.org Name[sv]=wheelmap.org Name[tr]=wheelmap.org Name[uk]=wheelmap.org +Name[vi]=wheelmap.org Name[x-test]=xxwheelmap.orgxx Name[zh_CN]=wheelmap.org Icon=map-globe diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kguiaddons-5.94.0/src/recorder/keysequencerecorder.cpp new/kguiaddons-5.95.0/src/recorder/keysequencerecorder.cpp --- old/kguiaddons-5.94.0/src/recorder/keysequencerecorder.cpp 2022-04-29 17:51:11.000000000 +0200 +++ new/kguiaddons-5.95.0/src/recorder/keysequencerecorder.cpp 2022-06-04 10:18:31.000000000 +0200 @@ -22,6 +22,33 @@ #include <array> +class KeySequenceRecorderPrivate : public QObject +{ + Q_OBJECT +public: + // Copy of QKeySequencePrivate::MaxKeyCount from private header + enum { MaxKeyCount = 4 }; + + KeySequenceRecorderPrivate(KeySequenceRecorder *qq); + + void controlModifierlessTimeout(); + bool eventFilter(QObject *watched, QEvent *event) override; + void handleKeyPress(QKeyEvent *event); + void handleKeyRelease(QKeyEvent *event); + void finishRecording(); + + KeySequenceRecorder *q; + QKeySequence m_currentKeySequence; + QPointer<QWindow> m_window; + bool m_isRecording; + bool m_multiKeyShortcutsAllowed; + bool m_modifierlessAllowed; + + Qt::KeyboardModifiers m_currentModifiers; + QTimer m_modifierlessTimer; + std::unique_ptr<ShortcutInhibition> m_inhibition; +}; + constexpr Qt::KeyboardModifiers modifierMask = Qt::ShiftModifier | Qt::ControlModifier | Qt::AltModifier | Qt::MetaModifier | Qt::KeypadModifier; // Copied here from KKeyServer @@ -233,40 +260,16 @@ static QKeySequence appendToSequence(const QKeySequence &sequence, int key) { - if (sequence.count() >= 4) { - qCWarning(KGUIADDONS_LOG) << "Invalid sequence size: " << sequence.count(); + if (sequence.count() >= KeySequenceRecorderPrivate::MaxKeyCount) { + qCWarning(KGUIADDONS_LOG) << "Cannot append to a key to a sequence which is already of length" << sequence.count(); return sequence; } - std::array<int, 4> keys{sequence[0], sequence[1], sequence[2], sequence[3]}; + std::array<int, KeySequenceRecorderPrivate::MaxKeyCount> keys{sequence[0], sequence[1], sequence[2], sequence[3]}; keys[sequence.count()] = key; return QKeySequence(keys[0], keys[1], keys[2], keys[3]); } -class KeySequenceRecorderPrivate : public QObject -{ - Q_OBJECT -public: - KeySequenceRecorderPrivate(KeySequenceRecorder *qq); - - void controlModifierlessTimeout(); - bool eventFilter(QObject *watched, QEvent *event) override; - void handleKeyPress(QKeyEvent *event); - void handleKeyRelease(QKeyEvent *event); - void finishRecording(); - - KeySequenceRecorder *q; - QKeySequence m_currentKeySequence; - QPointer<QWindow> m_window; - bool m_isRecording; - bool m_multiKeyShortcutsAllowed; - bool m_modifierlessAllowed; - - Qt::KeyboardModifiers m_currentModifiers; - QTimer m_modifierlessTimer; - std::unique_ptr<ShortcutInhibition> m_inhibition; -}; - KeySequenceRecorderPrivate::KeySequenceRecorderPrivate(KeySequenceRecorder *qq) : QObject(qq) , q(qq) @@ -351,8 +354,11 @@ m_currentKeySequence = appendToSequence(m_currentKeySequence, key); Q_EMIT q->currentKeySequenceChanged(); - - if ((!m_multiKeyShortcutsAllowed) || (m_currentKeySequence.count() == 4)) { + // Now we are in a critical region (race), where recording is still + // ongoing, but key sequence has already changed (potentially) to the + // longest. But we still want currentKeySequenceChanged to trigger + // before gotKeySequence, so there's only so much we can do about it. + if ((!m_multiKeyShortcutsAllowed) || (m_currentKeySequence.count() == MaxKeyCount)) { finishRecording(); break; } @@ -429,7 +435,13 @@ QKeySequence KeySequenceRecorder::currentKeySequence() const { - return d->m_isRecording ? appendToSequence(d->m_currentKeySequence, d->m_currentModifiers) : d->m_currentKeySequence; + // We need a check for count() here because there's a race between the + // state of recording and a length of currentKeySequence. + if (d->m_isRecording && d->m_currentKeySequence.count() < KeySequenceRecorderPrivate::MaxKeyCount) { + return appendToSequence(d->m_currentKeySequence, d->m_currentModifiers); + } else { + return d->m_currentKeySequence; + } } QWindow *KeySequenceRecorder::window() const diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kguiaddons-5.94.0/src/systemclipboard/waylandclipboard.cpp new/kguiaddons-5.95.0/src/systemclipboard/waylandclipboard.cpp --- old/kguiaddons-5.94.0/src/systemclipboard/waylandclipboard.cpp 2022-04-29 17:51:11.000000000 +0200 +++ new/kguiaddons-5.95.0/src/systemclipboard/waylandclipboard.cpp 2022-06-04 10:18:31.000000000 +0200 @@ -281,6 +281,7 @@ DataControlSource() = default; ~DataControlSource() { + delete m_mimeData; destroy(); }