Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kf6-kstatusnotifieritem for
openSUSE:Factory checked in at 2025-02-16 22:39:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-kstatusnotifieritem (Old)
and /work/SRC/openSUSE:Factory/.kf6-kstatusnotifieritem.new.8181 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kf6-kstatusnotifieritem"
Sun Feb 16 22:39:18 2025 rev:12 rq:1245966 version:6.11.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/kf6-kstatusnotifieritem/kf6-kstatusnotifieritem.changes
2025-01-12 11:19:08.386730883 +0100
+++
/work/SRC/openSUSE:Factory/.kf6-kstatusnotifieritem.new.8181/kf6-kstatusnotifieritem.changes
2025-02-16 22:45:43.228996839 +0100
@@ -1,0 +2,16 @@
+Sat Feb 8 12:16:55 UTC 2025 - Christophe Marin <[email protected]>
+
+- Update to 6.11.0
+ * New feature release
+ * For more details please see:
+ * https://kde.org/announcements/frameworks/6/6.11.0
+- Changes since 6.10.0:
+ * Update dependency version to 6.11.0
+ * Fix build with Qt 6.10
+ * Add xml/yaml linting
+ * Add Python bindings
+ * CI: Add linux-qt6-next build
+ * Fix svg icons
+ * Update version to 6.11.0
+
+-------------------------------------------------------------------
Old:
----
kstatusnotifieritem-6.10.0.tar.xz
kstatusnotifieritem-6.10.0.tar.xz.sig
New:
----
kstatusnotifieritem-6.11.0.tar.xz
kstatusnotifieritem-6.11.0.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kf6-kstatusnotifieritem.spec ++++++
--- /var/tmp/diff_new_pack.OPQIbo/_old 2025-02-16 22:45:44.245039101 +0100
+++ /var/tmp/diff_new_pack.OPQIbo/_new 2025-02-16 22:45:44.249039267 +0100
@@ -25,7 +25,7 @@
%{!?_kf6_bugfix_version: %define _kf6_bugfix_version %(echo %{_kf6_version} |
awk -F. '{print $1"."$2}')}
%bcond_without released
Name: kf6-kstatusnotifieritem
-Version: 6.10.0
+Version: 6.11.0
Release: 0
Summary: Implementation of Status Notifier Items
License: LGPL-2.0-or-later
++++++ kstatusnotifieritem-6.10.0.tar.xz -> kstatusnotifieritem-6.11.0.tar.xz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kstatusnotifieritem-6.10.0/.gitlab-ci.yml
new/kstatusnotifieritem-6.11.0/.gitlab-ci.yml
--- old/kstatusnotifieritem-6.10.0/.gitlab-ci.yml 2025-01-03
16:28:38.000000000 +0100
+++ new/kstatusnotifieritem-6.11.0/.gitlab-ci.yml 2025-02-07
15:03:20.000000000 +0100
@@ -5,6 +5,9 @@
- project: sysadmin/ci-utilities
file:
- /gitlab-templates/linux-qt6.yml
+ - /gitlab-templates/linux-qt6-next.yml
- /gitlab-templates/alpine-qt6.yml
- /gitlab-templates/freebsd-qt6.yml
- /gitlab-templates/windows-qt6.yml
+ - /gitlab-templates/xml-lint.yml
+ - /gitlab-templates/yaml-lint.yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kstatusnotifieritem-6.10.0/.kde-ci.yml
new/kstatusnotifieritem-6.11.0/.kde-ci.yml
--- old/kstatusnotifieritem-6.10.0/.kde-ci.yml 2025-01-03 16:28:38.000000000
+0100
+++ new/kstatusnotifieritem-6.11.0/.kde-ci.yml 2025-02-07 15:03:20.000000000
+0100
@@ -1,8 +1,8 @@
Dependencies:
-- 'on': ['@all']
- 'require':
+ - 'on': ['@all']
+ 'require':
'frameworks/extra-cmake-modules': '@same'
- 'frameworks/kwindowsystem' : '@same'
+ 'frameworks/kwindowsystem': '@same'
Options:
- test-before-installing: True
- require-passing-tests-on: [ 'Linux', 'FreeBSD', 'Windows' ]
+ test-before-installing: True
+ require-passing-tests-on: ['Linux', 'FreeBSD', 'Windows']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kstatusnotifieritem-6.10.0/CMakeLists.txt
new/kstatusnotifieritem-6.11.0/CMakeLists.txt
--- old/kstatusnotifieritem-6.10.0/CMakeLists.txt 2025-01-03
16:28:38.000000000 +0100
+++ new/kstatusnotifieritem-6.11.0/CMakeLists.txt 2025-02-07
15:03:20.000000000 +0100
@@ -1,12 +1,12 @@
cmake_minimum_required(VERSION 3.16)
-set(KF_VERSION "6.10.0") # handled by release scripts
-set(KF_DEP_VERSION "6.10.0") # handled by release scripts
+set(KF_VERSION "6.11.0") # handled by release scripts
+set(KF_DEP_VERSION "6.11.0") # handled by release scripts
project(KStatusNotifierItem VERSION ${KF_VERSION})
# ECM setup
include(FeatureSummary)
-find_package(ECM 6.10.0 NO_MODULE)
+find_package(ECM 6.11.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)
@@ -44,6 +44,10 @@
find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Widgets)
+if (Qt6Gui_VERSION VERSION_GREATER_EQUAL "6.10.0")
+ find_package(Qt6WidgetsPrivate ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
+endif()
+
if (NOT APPLE AND NOT WIN32)
option(WITHOUT_X11 "Build without X11 support (skips finding X11)." OFF)
if(NOT WITHOUT_X11)
@@ -72,10 +76,25 @@
ecm_set_disabled_deprecation_versions(
QT 6.8
- KF 6.8
+ KF 6.10
)
add_subdirectory(src)
+
+# For the Python bindings
+find_package(Python3 3.9 COMPONENTS Interpreter Development)
+find_package(Shiboken6)
+find_package(PySide6)
+
+include(CMakeDependentOption)
+cmake_dependent_option(BUILD_PYTHON_BINDINGS "Generate Python Bindings" ON
"TARGET Shiboken6::libshiboken AND TARGET PySide6::pyside6" OFF)
+add_feature_info(PYTHON_BINDINGS ${BUILD_PYTHON_BINDINGS} "Python bindings")
+
+if (BUILD_PYTHON_BINDINGS)
+ include(ECMGeneratePythonBindings)
+ add_subdirectory(python)
+endif()
+
if (BUILD_TESTING)
add_subdirectory(tests)
endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kstatusnotifieritem-6.10.0/README.md
new/kstatusnotifieritem-6.11.0/README.md
--- old/kstatusnotifieritem-6.10.0/README.md 1970-01-01 01:00:00.000000000
+0100
+++ new/kstatusnotifieritem-6.11.0/README.md 2025-02-07 15:03:20.000000000
+0100
@@ -0,0 +1,3 @@
+# KDE Status Notifier Item Protocol Implementation
+
+KStatusNotifierItem is a class to create status notifier items that can be
displayed in the system tray.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kstatusnotifieritem-6.10.0/examples/kstatusnotifieritem.py
new/kstatusnotifieritem-6.11.0/examples/kstatusnotifieritem.py
--- old/kstatusnotifieritem-6.10.0/examples/kstatusnotifieritem.py
1970-01-01 01:00:00.000000000 +0100
+++ new/kstatusnotifieritem-6.11.0/examples/kstatusnotifieritem.py
2025-02-07 15:03:20.000000000 +0100
@@ -0,0 +1,87 @@
+#!/usr/bin/env python3
+
+# SPDX-FileCopyrightText: 2025 Fushan Wen <[email protected]>
+# SPDX-License-Identifier: MIT
+
+import sys
+
+import KStatusNotifierItem
+from PySide6.QtCore import QObject, QPoint, Qt
+from PySide6.QtGui import QColor, QIcon, QPixmap
+from PySide6.QtWidgets import QApplication, QMenu
+
+
+class StatusNotifierItemExample(QObject):
+
+ def __init__(self, parent=None) -> None:
+ super().__init__(parent)
+
+ # Create a new SNI whose id is "org.kde.statusnotifierexample"
+ self.status_notifier_item =
KStatusNotifierItem.KStatusNotifierItem("org.kde.statusnotifierexample", self)
+
self.status_notifier_item.setCategory(KStatusNotifierItem.KStatusNotifierItem.ItemCategory.Communications)
+ icon = self.create_icon(Qt.red)
+ self.status_notifier_item.setIconByPixmap(icon)
+
+
self.status_notifier_item.setStatus(KStatusNotifierItem.KStatusNotifierItem.ItemStatus.Active)
+ self.status_notifier_item.setToolTipTitle("KStatusNotifierItem Python
Binding Example")
+ self.status_notifier_item.setTitle("This is a title")
+ self.status_notifier_item.setToolTipSubTitle("Some explanation from
the beach.")
+
+ # Add a context menu
+ menu = QMenu()
+ icon = self.create_icon(QColor(0, 255, 0)) # green
+ action = menu.addAction(icon, "NeedsAttention")
+ action.triggered.connect(self.action_triggered)
+ icon = self.create_icon(QColor(255, 85, 255)) # purple
+ action = menu.addAction(icon, "Active")
+ action.triggered.connect(self.action_triggered)
+
+ sub_menu = QMenu("Sub Menu")
+ sub_menu.setIcon(self.create_icon(QColor(85, 0, 255)))
+ icon = self.create_icon(QColor(255, 255, 0)) # yellow
+ sub_action = sub_menu.addAction(icon, "Passive")
+ sub_action.triggered.connect(self.action_triggered)
+ menu.addMenu(sub_menu)
+
+ # The menu is owned by C++ after passing it to setContextMenu
+ self.status_notifier_item.setContextMenu(menu)
+
+ # Connect to signals
+
self.status_notifier_item.activateRequested.connect(self.activate_requested)
+
self.status_notifier_item.secondaryActivateRequested.connect(self.secondary_activate_requested)
+
self.status_notifier_item.scrollRequested.connect(self.scroll_requested)
+
+ @staticmethod
+ def create_icon(color) -> QIcon:
+ pixmap = QPixmap(16, 16)
+ pixmap.fill(color)
+ return QIcon(pixmap)
+
+ def action_triggered(self) -> None:
+ text = self.sender().text()
+ print(text)
+
+ if text == "NeedsAttention":
+
self.status_notifier_item.setStatus(KStatusNotifierItem.KStatusNotifierItem.ItemStatus.NeedsAttention)
+
self.status_notifier_item.setIconByPixmap(self.create_icon(Qt.blue))
+ elif text == "Active":
+
self.status_notifier_item.setStatus(KStatusNotifierItem.KStatusNotifierItem.ItemStatus.Active)
+ self.status_notifier_item.setIconByPixmap(self.create_icon(Qt.red))
+ elif text == "Passive":
+
self.status_notifier_item.setStatus(KStatusNotifierItem.KStatusNotifierItem.ItemStatus.Passive)
+
+ def activate_requested(self, active: bool, pos: QPoint) -> None:
+ print("Activated", active, pos)
+
+ def secondary_activate_requested(self, pos: QPoint) -> None:
+ print("SecondaryActivated", pos)
+
+ def scroll_requested(self, delta: int, orientation: Qt.Orientation) ->
None:
+ direction = "Horizontally" if orientation == Qt.Horizontal else
"Vertically"
+ print(f"Scrolled by {delta} {direction}")
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ sni = StatusNotifierItemExample()
+ sys.exit(app.exec())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kstatusnotifieritem-6.10.0/metainfo.yaml
new/kstatusnotifieritem-6.11.0/metainfo.yaml
--- old/kstatusnotifieritem-6.10.0/metainfo.yaml 2025-01-03
16:28:38.000000000 +0100
+++ new/kstatusnotifieritem-6.11.0/metainfo.yaml 2025-02-07
15:03:20.000000000 +0100
@@ -10,7 +10,7 @@
deprecated: false
release: true
libraries:
- - cmake: "KF6::StatusNotifierItem"
+ - cmake: "KF6::StatusNotifierItem"
cmakename: KF6StatusNotifierItem
public_lib: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kstatusnotifieritem-6.10.0/python/CMakeLists.txt
new/kstatusnotifieritem-6.11.0/python/CMakeLists.txt
--- old/kstatusnotifieritem-6.10.0/python/CMakeLists.txt 1970-01-01
01:00:00.000000000 +0100
+++ new/kstatusnotifieritem-6.11.0/python/CMakeLists.txt 2025-02-07
15:03:20.000000000 +0100
@@ -0,0 +1,34 @@
+# SPDX-FileCopyrightText: 2025 Fushan Wen <[email protected]>
+# SPDX-License-Identifier: BSD-2-Clause
+
+set(bindings_library "KStatusNotifierItem")
+
+set(wrapped_header ${CMAKE_CURRENT_SOURCE_DIR}/bindings.h)
+set(typesystem_file ${CMAKE_CURRENT_SOURCE_DIR}/bindings.xml)
+
+set(generated_sources
+
${CMAKE_CURRENT_BINARY_DIR}/KStatusNotifierItem/kstatusnotifieritem_module_wrapper.cpp
+
${CMAKE_CURRENT_BINARY_DIR}/KStatusNotifierItem/kstatusnotifieritem_wrapper.cpp
+)
+
+ecm_generate_python_bindings(
+ PACKAGE_NAME ${bindings_library}
+ VERSION ${KF_VERSION}
+ WRAPPED_HEADER ${wrapped_header}
+ TYPESYSTEM ${typesystem_file}
+ GENERATED_SOURCES ${generated_sources}
+ DEPENDENCIES KF6::StatusNotifierItem
+ QT_VERSION ${REQUIRED_QT_VERSION}
+ HOMEPAGE_URL "https://invent.kde.org/frameworks/kstatusnotifieritem"
+ ISSUES_URL
"https://bugs.kde.org/describecomponents.cgi?product=frameworks-kstatusnotifieritem"
+ AUTHOR "The KDE Community"
+ README ${CMAKE_SOURCE_DIR}/README.md
+)
+
+target_link_libraries(${bindings_library} PRIVATE KF6::StatusNotifierItem)
+
+execute_process(COMMAND ${Python_EXECUTABLE} -Esc "import sysconfig;
print(sysconfig.get_path('platlib', vars={'platbase':
'${CMAKE_INSTALL_PREFIX}', 'base': '${CMAKE_INSTALL_PREFIX}'}))"
OUTPUT_VARIABLE sysconfig_output)
+string(STRIP ${sysconfig_output} PYTHON_INSTALL_DIR)
+
+install(TARGETS ${bindings_library} LIBRARY DESTINATION
"${PYTHON_INSTALL_DIR}")
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kstatusnotifieritem-6.10.0/python/bindings.h
new/kstatusnotifieritem-6.11.0/python/bindings.h
--- old/kstatusnotifieritem-6.10.0/python/bindings.h 1970-01-01
01:00:00.000000000 +0100
+++ new/kstatusnotifieritem-6.11.0/python/bindings.h 2025-02-07
15:03:20.000000000 +0100
@@ -0,0 +1,6 @@
+// SPDX-FileCopyrightText: 2025 Fushan Wen <[email protected]>
+// SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR
LicenseRef-KDE-Accepted-LGPL
+
+#pragma once
+
+#include <KStatusNotifierItem>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kstatusnotifieritem-6.10.0/python/bindings.xml
new/kstatusnotifieritem-6.11.0/python/bindings.xml
--- old/kstatusnotifieritem-6.10.0/python/bindings.xml 1970-01-01
01:00:00.000000000 +0100
+++ new/kstatusnotifieritem-6.11.0/python/bindings.xml 2025-02-07
15:03:20.000000000 +0100
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Fushan Wen <[email protected]>
+SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR
LicenseRef-KDE-Accepted-LGPL
+-->
+<typesystem package="KStatusNotifierItem">
+ <load-typesystem name="typesystem_core.xml" generate="no"/>
+ <load-typesystem name="typesystem_gui.xml" generate="no"/> <!--QIcon-->
+ <load-typesystem name="typesystem_widgets.xml" generate="no"/> <!--QMenu-->
+ <object-type name="KStatusNotifierItem">
+ <enum-type name="ItemStatus" />
+ <enum-type name="ItemCategory" />
+ <modify-function signature="setContextMenu(QMenu *)">
+ <modify-argument index="1">
+ <define-ownership class="target" owner="c++" />
+ </modify-argument>
+ </modify-function>
+ </object-type>
+</typesystem>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kstatusnotifieritem-6.10.0/src/kstatusnotifieritem.cpp
new/kstatusnotifieritem-6.11.0/src/kstatusnotifieritem.cpp
--- old/kstatusnotifieritem-6.10.0/src/kstatusnotifieritem.cpp 2025-01-03
16:28:38.000000000 +0100
+++ new/kstatusnotifieritem-6.11.0/src/kstatusnotifieritem.cpp 2025-02-07
15:03:20.000000000 +0100
@@ -1253,12 +1253,17 @@
QPixmap iconPixmap;
// if an icon exactly that size wasn't found don't add it to the vector
- const auto lstSizes = icon.availableSizes();
+ auto lstSizes = icon.availableSizes();
+ if (lstSizes.isEmpty() && !icon.isNull()) {
+ // if the icon is a svg icon, then available Sizes will be empty, try
some common sizes
+ lstSizes = {{16, 16}, {22, 22}, {32, 32}};
+ }
for (QSize size : lstSizes) {
iconPixmap = icon.pixmap(size);
- iconVector.append(imageToStruct(iconPixmap.toImage()));
+ if (!iconPixmap.isNull()) {
+ iconVector.append(imageToStruct(iconPixmap.toImage()));
+ }
}
-
return iconVector;
}
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kstatusnotifieritem-6.10.0/src/kstatusnotifieritem.h
new/kstatusnotifieritem-6.11.0/src/kstatusnotifieritem.h
--- old/kstatusnotifieritem-6.10.0/src/kstatusnotifieritem.h 2025-01-03
16:28:38.000000000 +0100
+++ new/kstatusnotifieritem-6.11.0/src/kstatusnotifieritem.h 2025-02-07
15:03:20.000000000 +0100
@@ -8,6 +8,7 @@
#ifndef KSTATUSNOTIFIERITEM_H
#define KSTATUSNOTIFIERITEM_H
+#include <QMenu>
#include <QObject>
#include <QPoint>
#include <QString>
@@ -18,7 +19,6 @@
#include <memory>
class QAction;
-class QMenu;
class KStatusNotifierItemPrivate;