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;
 

Reply via email to