Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kf6-kcompletion for openSUSE:Factory
checked in at 2026-08-17 16:56:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-kcompletion (Old)
and /work/SRC/openSUSE:Factory/.kf6-kcompletion.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kf6-kcompletion"
Mon Aug 17 16:56:13 2026 rev:30 rq:1371366 version:6.29.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-kcompletion/kf6-kcompletion.changes
2026-07-15 16:34:47.060551355 +0200
+++
/work/SRC/openSUSE:Factory/.kf6-kcompletion.new.1258/kf6-kcompletion.changes
2026-08-17 16:58:52.458780865 +0200
@@ -1,0 +2,13 @@
+Sun Aug 9 10:38:26 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.29.0
+ * New feature release
+ * For more details please see:
+ * https://kde.org/announcements/frameworks/6/6.29.0
+- Changes since 6.28.0:
+ * Update dependency version to 6.29.0
+ * KCompletionBase/KCompletionMatches: move Q_DECLARE_PRIVATE to PRIVATE
+ * KCompletionBox::eventFilter: minimize code executed when filter not hit
+ * Update version to 6.29.0
+
+-------------------------------------------------------------------
Old:
----
kcompletion-6.28.0.tar.xz
kcompletion-6.28.0.tar.xz.sig
New:
----
kcompletion-6.29.0.tar.xz
kcompletion-6.29.0.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kf6-kcompletion.spec ++++++
--- /var/tmp/diff_new_pack.DPQqf9/_old 2026-08-17 16:58:53.290810263 +0200
+++ /var/tmp/diff_new_pack.DPQqf9/_new 2026-08-17 16:58:53.293810369 +0200
@@ -19,11 +19,11 @@
%define qt6_version 6.9.0
%define rname kcompletion
-# Full KF6 version (e.g. 6.28.0)
+# Full KF6 version (e.g. 6.29.0)
%{!?_kf6_version: %global _kf6_version %{version}}
%bcond_without released
Name: kf6-kcompletion
-Version: 6.28.0
+Version: 6.29.0
Release: 0
Summary: Widgets with advanced completion support
License: LGPL-2.1-or-later
++++++ kcompletion-6.28.0.tar.xz -> kcompletion-6.29.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kcompletion-6.28.0/CMakeLists.txt
new/kcompletion-6.29.0/CMakeLists.txt
--- old/kcompletion-6.28.0/CMakeLists.txt 2026-07-03 12:52:34.000000000
+0200
+++ new/kcompletion-6.29.0/CMakeLists.txt 2026-08-07 22:39:25.000000000
+0200
@@ -1,12 +1,12 @@
cmake_minimum_required(VERSION 3.29)
-set(KF_VERSION "6.28.0") # handled by release scripts
-set(KF_DEP_VERSION "6.28.0") # handled by release scripts
+set(KF_VERSION "6.29.0") # handled by release scripts
+set(KF_DEP_VERSION "6.29.0") # handled by release scripts
project(KCompletion VERSION ${KF_VERSION})
# ECM setup
include(FeatureSummary)
-find_package(ECM 6.28.0 NO_MODULE)
+find_package(ECM 6.29.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/kcompletion-6.28.0/poqm/de/kcompletion6_qt.po
new/kcompletion-6.29.0/poqm/de/kcompletion6_qt.po
--- old/kcompletion-6.28.0/poqm/de/kcompletion6_qt.po 2026-07-03
12:52:34.000000000 +0200
+++ new/kcompletion-6.29.0/poqm/de/kcompletion6_qt.po 2026-08-07
22:39:25.000000000 +0200
@@ -1,11 +1,11 @@
-# SPDX-FileCopyrightText: 2002, 2003, 2004, 2005 Thomas Diehl <[email protected]>
+# SPDX-FileCopyrightText: 2002-2005 Thomas Diehl <[email protected]>
# SPDX-FileCopyrightText: 2004 Stefan Winter <[email protected]>
# SPDX-FileCopyrightText: 2004 Thomas Fischer <[email protected]>
-# SPDX-FileCopyrightText: 2004, 2005, 2006, 2007 Stephan Johach <[email protected]>
+# SPDX-FileCopyrightText: 2004-2007 Stephan Johach <[email protected]>
# SPDX-FileCopyrightText: 2005 Georg Schuster <[email protected]>
-# SPDX-FileCopyrightText: 2005, 2006, 2007, 2008, 2009 Thomas Reitelbach
<[email protected]>
-# SPDX-FileCopyrightText: 2006, 2007, 2009, 2010, 2011, 2012, 2013, 2014, 2020
Burkhard Lück <[email protected]>
-# SPDX-FileCopyrightText: 2007, 2008, 2009, 2010, 2011, 2012, 2013 Frederik
Schwarzer <[email protected]>
+# SPDX-FileCopyrightText: 2005-2009 Thomas Reitelbach <[email protected]>
+# SPDX-FileCopyrightText: 2006-2007, 2009-2014, 2020 Burkhard Lück
<[email protected]>
+# SPDX-FileCopyrightText: 2007-2013 Frederik Schwarzer <[email protected]>
# SPDX-FileCopyrightText: 2010 Johannes Obermayr <[email protected]>
# SPDX-FileCopyrightText: 2010 Panagiotis Papadopoulos <[email protected]>
# SPDX-FileCopyrightText: 2012 Rolf Eike Beer <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kcompletion-6.28.0/src/kcompletionbase.h
new/kcompletion-6.29.0/src/kcompletionbase.h
--- old/kcompletion-6.28.0/src/kcompletionbase.h 2026-07-03
12:52:34.000000000 +0200
+++ new/kcompletion-6.29.0/src/kcompletionbase.h 2026-08-07
22:39:25.000000000 +0200
@@ -34,7 +34,6 @@
class KCOMPLETION_EXPORT KCompletionBase
{
public:
- Q_DECLARE_PRIVATE(KCompletionBase)
/*!
* Constants that represent the items whose shortcut
* key binding is programmable. The default key bindings
@@ -329,6 +328,7 @@
virtual void virtual_hook(int id, void *data);
private:
+ Q_DECLARE_PRIVATE(KCompletionBase)
Q_DISABLE_COPY(KCompletionBase)
std::unique_ptr<KCompletionBasePrivate> const d_ptr;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kcompletion-6.28.0/src/kcompletionbox.cpp
new/kcompletion-6.29.0/src/kcompletionbox.cpp
--- old/kcompletion-6.28.0/src/kcompletionbox.cpp 2026-07-03
12:52:34.000000000 +0200
+++ new/kcompletion-6.29.0/src/kcompletionbox.cpp 2026-08-07
22:39:25.000000000 +0200
@@ -90,159 +90,162 @@
bool KCompletionBox::eventFilter(QObject *o, QEvent *e)
{
- int type = e->type();
- QWidget *wid = qobject_cast<QWidget *>(o);
-
- if (o == this) {
- return false;
- }
-
- if (wid && wid == d->m_parent //
- && (type == QEvent::Move || type == QEvent::Resize)) {
- resizeAndReposition();
- return false;
- }
-
- if (wid && (wid->windowFlags() & Qt::Window) //
- && type == QEvent::Move && wid == d->m_parent->window()) {
- hide();
- return false;
- }
-
- if (type == QEvent::MouseButtonPress && (wid && !isAncestorOf(wid))) {
- if (!d->emitSelected && currentItem() && !qobject_cast<QScrollBar
*>(o)) {
- Q_ASSERT(currentItem());
- Q_EMIT currentTextChanged(currentItem()->text());
- }
- hide();
- e->accept();
- return true;
- }
+ if (o != this) {
+ if (const auto *const wid = qobject_cast<QWidget *>(o)) {
+ const int type = e->type();
+
+ if (type == QEvent::Resize) {
+ if (wid == d->m_parent) {
+ resizeAndReposition();
+ return false;
+ }
+ } else if (type == QEvent::Move) {
+ if (wid == d->m_parent) {
+ resizeAndReposition();
+ return false;
+ }
- if (wid && wid->isAncestorOf(d->m_parent) && isVisible()) {
- if (type == QEvent::KeyPress) {
- QKeyEvent *ev = static_cast<QKeyEvent *>(e);
- switch (ev->key()) {
- case Qt::Key_Backtab:
- if (d->tabHandling && (ev->modifiers() == Qt::NoButton ||
(ev->modifiers() & Qt::ShiftModifier))) {
- up();
- ev->accept();
+ if ((wid->windowFlags() & Qt::Window) //
+ && wid == d->m_parent->window()) {
+ hide();
+ return false;
+ }
+ } else if (type == QEvent::MouseButtonPress) {
+ if ((!isAncestorOf(wid))) {
+ if (!d->emitSelected && currentItem() &&
!qobject_cast<QScrollBar *>(o)) {
+ Q_ASSERT(currentItem());
+ Q_EMIT currentTextChanged(currentItem()->text());
+ }
+ hide();
+ e->accept();
return true;
}
- break;
- case Qt::Key_Tab:
- if (d->tabHandling && (ev->modifiers() == Qt::NoButton)) {
- down();
- // #65877: Key_Tab should complete using the first
- // (or selected) item, and then offer completions again
- if (count() == 1) {
- KLineEdit *parent = qobject_cast<KLineEdit
*>(d->m_parent);
- if (parent) {
- parent->doCompletion(currentItem()->text());
+ } else if (wid->isAncestorOf(d->m_parent) && isVisible()) {
+ if (type == QEvent::KeyPress) {
+ QKeyEvent *ev = static_cast<QKeyEvent *>(e);
+ switch (ev->key()) {
+ case Qt::Key_Backtab:
+ if (d->tabHandling && (ev->modifiers() == Qt::NoButton
|| (ev->modifiers() & Qt::ShiftModifier))) {
+ up();
+ ev->accept();
+ return true;
+ }
+ break;
+ case Qt::Key_Tab:
+ if (d->tabHandling && (ev->modifiers() ==
Qt::NoButton)) {
+ down();
+ // #65877: Key_Tab should complete using the first
+ // (or selected) item, and then offer completions
again
+ if (count() == 1) {
+ KLineEdit *parent = qobject_cast<KLineEdit
*>(d->m_parent);
+ if (parent) {
+
parent->doCompletion(currentItem()->text());
+ } else {
+ hide();
+ }
+ }
+ ev->accept();
+ return true;
+ }
+ break;
+ case Qt::Key_Down:
+ down();
+ ev->accept();
+ return true;
+ case Qt::Key_Up:
+ // If there is no selected item and we've popped up
above
+ // our parent, select the first item when they press
up.
+ if (!selectedItems().isEmpty() //
+ || mapToGlobal(QPoint(0, 0)).y() >
d->m_parent->mapToGlobal(QPoint(0, 0)).y()) {
+ up();
} else {
+ down();
+ }
+ ev->accept();
+ return true;
+ case Qt::Key_PageUp:
+ pageUp();
+ ev->accept();
+ return true;
+ case Qt::Key_PageDown:
+ pageDown();
+ ev->accept();
+ return true;
+ case Qt::Key_Escape:
+ if (!d->cancelText.isNull()) {
+ Q_EMIT userCancelled(d->cancelText);
+ }
+ if (isVisible()) {
hide();
}
+ ev->accept();
+ return true;
+ case Qt::Key_Enter:
+ case Qt::Key_Return:
+ if (ev->modifiers() & Qt::ShiftModifier) {
+ hide();
+ ev->accept(); // Consume the Enter event
+ return true;
+ }
+ break;
+ case Qt::Key_End:
+ if (ev->modifiers() & Qt::ControlModifier) {
+ end();
+ ev->accept();
+ return true;
+ }
+ break;
+ case Qt::Key_Home:
+ if (ev->modifiers() & Qt::ControlModifier) {
+ home();
+ ev->accept();
+ return true;
+ }
+ Q_FALLTHROUGH();
+ default:
+ break;
}
- ev->accept();
- return true;
- }
- break;
- case Qt::Key_Down:
- down();
- ev->accept();
- return true;
- case Qt::Key_Up:
- // If there is no selected item and we've popped up above
- // our parent, select the first item when they press up.
- if (!selectedItems().isEmpty() //
- || mapToGlobal(QPoint(0, 0)).y() >
d->m_parent->mapToGlobal(QPoint(0, 0)).y()) {
- up();
- } else {
- down();
- }
- ev->accept();
- return true;
- case Qt::Key_PageUp:
- pageUp();
- ev->accept();
- return true;
- case Qt::Key_PageDown:
- pageDown();
- ev->accept();
- return true;
- case Qt::Key_Escape:
- if (!d->cancelText.isNull()) {
- Q_EMIT userCancelled(d->cancelText);
- }
- if (isVisible()) {
- hide();
- }
- ev->accept();
- return true;
- case Qt::Key_Enter:
- case Qt::Key_Return:
- if (ev->modifiers() & Qt::ShiftModifier) {
- hide();
- ev->accept(); // Consume the Enter event
- return true;
- }
- break;
- case Qt::Key_End:
- if (ev->modifiers() & Qt::ControlModifier) {
- end();
- ev->accept();
- return true;
- }
- break;
- case Qt::Key_Home:
- if (ev->modifiers() & Qt::ControlModifier) {
- home();
- ev->accept();
- return true;
- }
- Q_FALLTHROUGH();
- default:
- break;
- }
- } else if (type == QEvent::ShortcutOverride) {
- // Override any accelerators that match
- // the key sequences we use here...
- QKeyEvent *ev = static_cast<QKeyEvent *>(e);
- switch (ev->key()) {
- case Qt::Key_Down:
- case Qt::Key_Up:
- case Qt::Key_PageUp:
- case Qt::Key_PageDown:
- case Qt::Key_Escape:
- case Qt::Key_Enter:
- case Qt::Key_Return:
- ev->accept();
- return true;
- case Qt::Key_Tab:
- case Qt::Key_Backtab:
- if (ev->modifiers() == Qt::NoButton || (ev->modifiers() &
Qt::ShiftModifier)) {
- ev->accept();
- return true;
- }
- break;
- case Qt::Key_Home:
- case Qt::Key_End:
- if (ev->modifiers() & Qt::ControlModifier) {
- ev->accept();
- return true;
- }
- break;
- default:
- break;
- }
- } else if (type == QEvent::FocusOut) {
- QFocusEvent *event = static_cast<QFocusEvent *>(e);
- if (event->reason() != Qt::PopupFocusReason
+ } else if (type == QEvent::ShortcutOverride) {
+ // Override any accelerators that match
+ // the key sequences we use here...
+ QKeyEvent *ev = static_cast<QKeyEvent *>(e);
+ switch (ev->key()) {
+ case Qt::Key_Down:
+ case Qt::Key_Up:
+ case Qt::Key_PageUp:
+ case Qt::Key_PageDown:
+ case Qt::Key_Escape:
+ case Qt::Key_Enter:
+ case Qt::Key_Return:
+ ev->accept();
+ return true;
+ case Qt::Key_Tab:
+ case Qt::Key_Backtab:
+ if (ev->modifiers() == Qt::NoButton ||
(ev->modifiers() & Qt::ShiftModifier)) {
+ ev->accept();
+ return true;
+ }
+ break;
+ case Qt::Key_Home:
+ case Qt::Key_End:
+ if (ev->modifiers() & Qt::ControlModifier) {
+ ev->accept();
+ return true;
+ }
+ break;
+ default:
+ break;
+ }
+ } else if (type == QEvent::FocusOut) {
+ QFocusEvent *event = static_cast<QFocusEvent *>(e);
+ if (event->reason() != Qt::PopupFocusReason
#ifdef Q_OS_WIN
- && (event->reason() != Qt::ActiveWindowFocusReason ||
QApplication::activeWindow() != this)
+ && (event->reason() != Qt::ActiveWindowFocusReason ||
QApplication::activeWindow() != this)
#endif
- ) {
- hide();
+ ) {
+ hide();
+ }
+ }
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kcompletion-6.28.0/src/kcompletionmatches.h
new/kcompletion-6.29.0/src/kcompletionmatches.h
--- old/kcompletion-6.28.0/src/kcompletionmatches.h 2026-07-03
12:52:34.000000000 +0200
+++ new/kcompletion-6.29.0/src/kcompletionmatches.h 2026-08-07
22:39:25.000000000 +0200
@@ -47,7 +47,6 @@
class KCOMPLETION_EXPORT KCompletionMatches : public KCompletionMatchesList
{
public:
- Q_DECLARE_PRIVATE(KCompletionMatches)
/*!
* Default constructor.
*
@@ -89,6 +88,7 @@
bool sorting() const;
private:
+ Q_DECLARE_PRIVATE(KCompletionMatches)
std::unique_ptr<KCompletionMatchesPrivate> const d_ptr;
};