Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kpkpass for openSUSE:Factory checked 
in at 2026-04-17 21:48:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kpkpass (Old)
 and      /work/SRC/openSUSE:Factory/.kpkpass.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kpkpass"

Fri Apr 17 21:48:12 2026 rev:92 rq:1347498 version:26.04.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kpkpass/kpkpass.changes  2026-03-07 
20:04:16.401834009 +0100
+++ /work/SRC/openSUSE:Factory/.kpkpass.new.11940/kpkpass.changes       
2026-04-17 21:49:27.277514562 +0200
@@ -1,0 +2,29 @@
+Sat Apr 11 16:14:21 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 26.04.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/gear/26.04.0/
+- No code change since 26.03.90
+
+-------------------------------------------------------------------
+Mon Mar 30 12:10:40 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 26.03.90
+  * New feature release
+- No code change since 26.03.80
+
+-------------------------------------------------------------------
+Sat Mar 14 09:09:48 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 26.03.80
+  * New feature release
+- Changes since 25.12.3:
+  * convert to qdoc
+  * gersemi fixes
+  * cmake_minimum_required: drop outdated FATAL_ERROR.
+  * Add -Wshadow for clang-based builds
+  * Add default ClangBuildAnalyzer.ini (testing compile time)
+  * Add missing USE_UNITY_CMAKE_SUPPORT variable for building as unity from 
cmakepreset
+
+-------------------------------------------------------------------

Old:
----
  kpkpass-25.12.3.tar.xz
  kpkpass-25.12.3.tar.xz.sig

New:
----
  kpkpass-26.04.0.tar.xz
  kpkpass-26.04.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kpkpass.spec ++++++
--- /var/tmp/diff_new_pack.pXmHIe/_old  2026-04-17 21:49:27.877539291 +0200
+++ /var/tmp/diff_new_pack.pXmHIe/_new  2026-04-17 21:49:27.881539456 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package kpkpass
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -21,7 +21,7 @@
 
 %bcond_without released
 Name:           kpkpass
-Version:        25.12.3
+Version:        26.04.0
 Release:        0
 Summary:        Library to parse Passbook files
 License:        LGPL-2.1-or-later
@@ -31,14 +31,12 @@
 Source1:        
https://download.kde.org/stable/release-service/%{version}/src/%{name}-%{version}.tar.xz.sig
 Source2:        applications.keyring
 %endif
-BuildRequires:  doxygen
 BuildRequires:  kf6-extra-cmake-modules
 BuildRequires:  shared-mime-info
 BuildRequires:  cmake(KF6Archive) >= %{kf6_version}
 BuildRequires:  cmake(Qt6Gui) >= %{qt6_version}
 BuildRequires:  cmake(Qt6Qml) >= %{qt6_version}
 BuildRequires:  cmake(Qt6Test) >= %{qt6_version}
-BuildRequires:  cmake(Qt6ToolsTools) >= %{qt6_version}
 
 %description
 kpkpass is a library to read and parse Apple Passbook files, such as the ones
@@ -76,7 +74,7 @@
 %autosetup -p1
 
 %build
-%cmake_kf6 -DBUILD_QCH:BOOL=TRUE
+%cmake_kf6
 
 %kf6_build
 
@@ -104,7 +102,6 @@
 %{_kf6_libdir}/libKPim6PkPass.so.*
 
 %files devel
-%doc %{_kf6_qchdir}/KPim6PkPass.*
 %{_includedir}/KPim6/KPkPass/
 %{_kf6_cmakedir}/KPim6PkPass/
 %{_kf6_libdir}/libKPim6PkPass.so


++++++ kpkpass-25.12.3.tar.xz -> kpkpass-26.04.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/.codespellrc.license 
new/kpkpass-26.04.0/.codespellrc.license
--- old/kpkpass-25.12.3/.codespellrc.license    2026-02-06 06:50:49.000000000 
+0100
+++ new/kpkpass-26.04.0/.codespellrc.license    2026-03-28 13:11:58.000000000 
+0100
@@ -1,2 +1,2 @@
-# SPDX-FileCopyrightText: 2022-2025 Laurent Montel <[email protected]>
+# SPDX-FileCopyrightText: 2022-2026 Laurent Montel <[email protected]>
 # SPDX-License-Identifier: CC0-1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/.gersemirc 
new/kpkpass-26.04.0/.gersemirc
--- old/kpkpass-25.12.3/.gersemirc      2026-02-06 06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/.gersemirc      2026-03-28 13:11:58.000000000 +0100
@@ -1,3 +1,4 @@
 indent: 4
 line_length: 120
 list_expansion: favour-expansion
+warn_about_unknown_commands: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/.gitignore 
new/kpkpass-26.04.0/.gitignore
--- old/kpkpass-25.12.3/.gitignore      2026-02-06 06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/.gitignore      2026-03-28 13:11:58.000000000 +0100
@@ -31,3 +31,4 @@
 /.vscode/
 .qtcreator/
 .qmlls.ini
+.sentry-native/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/.gitlab-ci.yml 
new/kpkpass-26.04.0/.gitlab-ci.yml
--- old/kpkpass-25.12.3/.gitlab-ci.yml  2026-02-06 06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/.gitlab-ci.yml  2026-03-28 13:11:58.000000000 +0100
@@ -1,4 +1,4 @@
-# SPDX-FileCopyrightText: 2020-2025 Laurent Montel <[email protected]>
+# SPDX-FileCopyrightText: 2020-2026 Laurent Montel <[email protected]>
 # SPDX-License-Identifier: CC0-1.0
 
 include:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/.kde-ci.yml 
new/kpkpass-26.04.0/.kde-ci.yml
--- old/kpkpass-25.12.3/.kde-ci.yml     2026-02-06 06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/.kde-ci.yml     2026-03-28 13:11:58.000000000 +0100
@@ -9,3 +9,4 @@
 
 Options:
  require-passing-tests-on: ['Linux', 'FreeBSD', 'Windows']
+ enable-lsan: True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/.pre-commit-config.yaml 
new/kpkpass-26.04.0/.pre-commit-config.yaml
--- old/kpkpass-25.12.3/.pre-commit-config.yaml 2026-02-06 06:50:49.000000000 
+0100
+++ new/kpkpass-26.04.0/.pre-commit-config.yaml 2026-03-28 13:11:58.000000000 
+0100
@@ -6,7 +6,7 @@
 exclude: (^po/|.desktop|Messages.sh)
 repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
-   rev: v5.0.0
+   rev: v6.0.0
    hooks:
     - id: trailing-whitespace
     - id: end-of-file-fixer
@@ -22,7 +22,7 @@
     - id: check-executables-have-shebangs
     - id: check-toml
  - repo: https://github.com/pre-commit/mirrors-clang-format
-   rev: v20.1.4
+   rev: v21.1.8
    hooks:
     - id: clang-format
     # force using this project's configuration rather
@@ -30,7 +30,7 @@
       args: ["--style=file:.clang-format-pre-commit"]
  - repo: https://github.com/astral-sh/ruff-pre-commit
   # Ruff version.
-   rev: v0.11.9
+   rev: v0.15.0
    hooks:
     # Run the linter.
     - id: ruff
@@ -42,16 +42,15 @@
     - id: codespell
       exclude: 
(textemoticons/core/data/emoji.json|textgrammarcheck/grammalecte/autotests/data/result1.json|texttranslator/translator/plugins/bergamot/autotests/data/modellanguages/models.json|textgrammarcheck/languagetool/autotests/data/test2.json|textautocorrection/core/autotests/data/custom-fr-ref.xml|textgrammarcheck/common/autotests/grammarresultutiltest.cpp|textautocorrection/core/autotests/data/custom-fr.xml)
  - repo: https://github.com/BlankSpruce/gersemi
-   rev: 0.19.3
+   rev: 0.25.4
    hooks:
     - id: gersemi
-      args: ["--no-warn-about-unknown-commands"]
  - repo: https://github.com/DavidAnson/markdownlint-cli2
-   rev: v0.18.1
+   rev: v0.20.0
    hooks:
     - id: markdownlint-cli2
       files: \.(md|mdown|markdown)$
  - repo: https://github.com/scop/pre-commit-shfmt
-   rev: v3.11.0-1
+   rev: v3.12.0-2
    hooks:
     - id: shfmt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/CMakeLists.txt 
new/kpkpass-26.04.0/CMakeLists.txt
--- old/kpkpass-25.12.3/CMakeLists.txt  2026-02-06 06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/CMakeLists.txt  2026-03-28 13:11:58.000000000 +0100
@@ -1,16 +1,15 @@
 # SPDX-FileCopyrightText: 2017-2020 Volker Krause <[email protected]>
-# SPDX-FileCopyrightText: 2018-2025 Laurent Montel <[email protected]>
+# SPDX-FileCopyrightText: 2018-2026 Laurent Montel <[email protected]>
 # SPDX-License-Identifier: BSD-3-Clause
 
-cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
-set(PIM_VERSION "6.6.3")
+cmake_minimum_required(VERSION 3.27)
+set(PIM_VERSION "6.7.0")
 project(KPkPass VERSION ${PIM_VERSION})
 
 set(KF_MIN_VERSION "6.13.0")
-set(QT_REQUIRED_VERSION "6.8.0")
+set(QT_REQUIRED_VERSION "6.9.0")
 find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE)
 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
-set(CMAKE_CXX_STANDARD 20)
 set(CMAKE_CXX_SCAN_FOR_MODULES OFF)
 
 include(KDECompilerSettings NO_POLICY_SCOPE)
@@ -22,6 +21,7 @@
 include(ECMFeatureSummary)
 include(ECMSetupVersion)
 include(ECMQmlModule)
+include(ECMGenerateQDoc)
 file(
     GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES
     src/*.cpp
@@ -29,20 +29,57 @@
     autotests/*.cpp
     autotests/*.h
 )
-set(PRE_COMMIT_INSTALLED FALSE)
-if(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
-    if(EXISTS "${PROJECT_SOURCE_DIR}/.git/hooks/pre-commit")
-        file(READ "${PROJECT_SOURCE_DIR}/.git/hooks/pre-commit" FILE_CONTENTS)
-        string(FIND "${FILE_CONTENTS}" "File generated by pre-commit" INDEX)
-        if(${INDEX} GREATER_EQUAL 0)
-            set(PRE_COMMIT_INSTALLED TRUE)
+if(EXISTS "${PROJECT_SOURCE_DIR}/.git/")
+    set(GIT_SOURCE_TARBALL TRUE)
+endif()
+
+if(GIT_SOURCE_TARBALL)
+    set(PRE_COMMIT_INSTALLED FALSE)
+    if(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
+        if(EXISTS "${PROJECT_SOURCE_DIR}/.git/hooks/pre-commit")
+            file(READ "${PROJECT_SOURCE_DIR}/.git/hooks/pre-commit" 
FILE_CONTENTS)
+            string(
+                FIND "${FILE_CONTENTS}"
+                "File generated by pre-commit"
+                INDEX
+            )
+            if(${INDEX} GREATER_EQUAL 0)
+                set(PRE_COMMIT_INSTALLED TRUE)
+            endif()
+        endif()
+    endif()
+    if(NOT ${PRE_COMMIT_INSTALLED})
+        find_program(PRE_COMMIT_EXECUTABLE pre-commit)
+        if(PRE_COMMIT_EXECUTABLE)
+            message(
+                STATUS
+                "This module has pre-commit support. pre-commit binary was 
found. Installing pre-commit hook"
+            )
+            execute_process(
+                COMMAND
+                    "${PRE_COMMIT_EXECUTABLE}" install -f
+                ERROR_QUIET
+                RESULT_VARIABLE _precommitresult
+                WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
+            )
+            if(_precommitresult EQUAL 0)
+                message(STATUS "Pre-commit installed.")
+            else()
+                message(
+                    WARNING
+                    "Error during installing pre-commit hook: 
${PRE_COMMIT_EXECUTABLE} project source dir ${PROJECT_SOURCE_DIR}"
+                )
+                include(KDEGitCommitHooks)
+                include(KDEClangFormat)
+                kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
+            endif()
+        else()
+            message(WARNING "This module has pre-commit support. pre-commit 
binary was not found.")
+            include(KDEGitCommitHooks)
+            include(KDEClangFormat)
+            kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
         endif()
     endif()
-endif()
-if(NOT ${PRE_COMMIT_INSTALLED})
-    include(KDEGitCommitHooks)
-    include(KDEClangFormat)
-    kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
 endif()
 include(KDECMakeSettings)
 include(ECMGenerateExportHeader)
@@ -57,39 +94,34 @@
 )
 ecm_check_outbound_license(LICENSES GPL-2.0-only  FILES ${ALL_SOURCE_FILES})
 
-include(ECMAddQch)
-
-option(
-    BUILD_QCH
-    "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator 
& KDevelop)"
-    OFF
-)
-add_feature_info(
-    QCH
-    ${BUILD_QCH}
-    "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & 
KDevelop)"
-)
-
 ecm_setup_version(PROJECT VARIABLE_PREFIX KPKPASS
     VERSION_HEADER src/kpkpass_version.h
     PACKAGE_VERSION_FILE 
"${CMAKE_CURRENT_BINARY_DIR}/KPim6PkPassConfigVersion.cmake"
     SOVERSION 6
 )
 
-find_package(Qt6 ${QT_REQUIRED_VERSION} REQUIRED COMPONENTS Gui Qml)
+find_package(
+    Qt6
+    ${QT_REQUIRED_VERSION}
+    REQUIRED
+    COMPONENTS
+        Gui
+        Qml
+)
 find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS Archive)
 if(NOT ANDROID)
     find_package(SharedMimeInfo 1.8 REQUIRED)
 endif()
 
 add_definitions(-DQT_NO_CONTEXTLESS_CONNECT)
-ecm_set_disabled_deprecation_versions(QT 6.10.0 KF 6.20.0)
+if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+    # Not setting for GNU due to too many warnings related to private members 
of base classes or around lambdas
+    # see e.g. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56556 or 
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79328
+    string(APPEND CMAKE_CXX_FLAGS " -Wshadow")
+endif()
+ecm_set_disabled_deprecation_versions(QT 6.11.0 KF 6.23.0)
 
-option(
-    USE_UNITY_CMAKE_SUPPORT
-    "Use UNITY cmake support (speedup compile time)"
-    OFF
-)
+option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile 
time)" OFF)
 
 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF)
 if(USE_UNITY_CMAKE_SUPPORT)
@@ -101,23 +133,14 @@
     add_subdirectory(autotests)
 endif()
 
-if(DEFINED kde_configure_git_pre_commit_hook)
-    kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
+if(GIT_SOURCE_TARBALL)
+    if(DEFINED kde_configure_git_pre_commit_hook)
+        kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
+    endif()
 endif()
 ecm_feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KPim6PkPass")
-if(BUILD_QCH)
-    ecm_install_qch_export(
-        TARGETS KPim6PkPass_QCH
-        FILE KPim6PkPassQchTargets.cmake
-        DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
-        COMPONENT Devel
-    )
-    set(PACKAGE_INCLUDE_QCHTARGETS
-        "include(\"\${CMAKE_CURRENT_LIST_DIR}/KPim6PkPassQchTargets.cmake\")"
-    )
-endif()
 
 configure_package_config_file(
     "${CMAKE_CURRENT_SOURCE_DIR}/KPimPkPassConfig.cmake.in"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/CMakePresets.json 
new/kpkpass-26.04.0/CMakePresets.json
--- old/kpkpass-25.12.3/CMakePresets.json       2026-02-06 06:50:49.000000000 
+0100
+++ new/kpkpass-26.04.0/CMakePresets.json       2026-03-28 13:11:58.000000000 
+0100
@@ -1,5 +1,6 @@
 {
-    "version": 3,
+    "$schema": 
"https://cmake.org/cmake/help/latest/_downloads/3e2d73bff478d88a7de0de736ba5e361/schema.json";,
+    "version": 8,
     "configurePresets": [
         {
             "name": "base",
@@ -7,21 +8,26 @@
             "generator": "Ninja",
             "binaryDir": "${sourceDir}/build-${presetName}",
             "installDir": "$env{KF6}",
-            "hidden": true,
+            "hidden": true
+        },
+        {
+            "name": "generate-doc",
+            "displayName": "Build as debug + using mold linker + generate doc",
             "cacheVariables": {
-                "BUILD_QCH": "ON"
-            }
+                "DOC_DESTDIR": "$env{GENERATE_DOCDIR}"
+            },
+            "inherits": [
+                "dev-mold"
+            ]
         },
         {
             "name": "dev-mold",
             "displayName": "Build as debug + using mold linker",
             "cacheVariables": {
-                "CMAKE_BUILD_TYPE": "Debug",
-                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
                 "CMAKE_SHARED_LINKER_FLAGS": "-fuse-ld=mold"
             },
             "inherits": [
-                "base"
+                "dev"
             ]
         },
         {
@@ -49,27 +55,22 @@
         {
             "name": "dev-clang",
             "displayName": "dev-clang",
-            "cacheVariables": {
-                "CMAKE_BUILD_TYPE": "Debug",
-                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
-            },
             "environment": {
                 "CXX": "clang++",
                 "CCACHE_DISABLE": "ON"
             },
             "inherits": [
-                "base"
+                "dev"
             ]
         },
         {
             "name": "unity",
             "displayName": "Build with CMake unity support.",
             "cacheVariables": {
-                "CMAKE_BUILD_TYPE": "Debug",
                 "USE_UNITY_CMAKE_SUPPORT": "ON"
             },
             "inherits": [
-                "base"
+                "dev"
             ]
         },
         {
@@ -123,8 +124,6 @@
             "name": "ftime-trace",
             "displayName": "ftime-trace",
             "cacheVariables": {
-                "CMAKE_BUILD_TYPE": "Debug",
-                "USE_DEVELOPER_MODE": "ON",
                 "CMAKE_C_FLAGS_INIT": "-ftime-trace",
                 "CMAKE_CXX_FLAGS_INIT": "-ftime-trace"
             },
@@ -134,12 +133,20 @@
                 "CCACHE_DISABLE": "ON"
             },
             "inherits": [
-                "base"
+                "dev"
             ]
         }
     ],
     "buildPresets": [
         {
+            "name": "generate-doc",
+            "configurePreset": "generate-doc",
+            "targets": [
+                "prepare_docs",
+                "generate_docs"
+            ]
+        },
+        {
             "name": "dev",
             "configurePreset": "dev"
         },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/CMakePresets.json.license 
new/kpkpass-26.04.0/CMakePresets.json.license
--- old/kpkpass-25.12.3/CMakePresets.json.license       2026-02-06 
06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/CMakePresets.json.license       2026-03-28 
13:11:58.000000000 +0100
@@ -1,2 +1,2 @@
-# SPDX-FileCopyrightText: 2021-2025 Laurent Montel <[email protected]>
+# SPDX-FileCopyrightText: 2021-2026 Laurent Montel <[email protected]>
 # SPDX-License-Identifier: BSD-3-Clause
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/ClangBuildAnalyzer.ini 
new/kpkpass-26.04.0/ClangBuildAnalyzer.ini
--- old/kpkpass-25.12.3/ClangBuildAnalyzer.ini  1970-01-01 01:00:00.000000000 
+0100
+++ new/kpkpass-26.04.0/ClangBuildAnalyzer.ini  2026-03-28 13:11:58.000000000 
+0100
@@ -0,0 +1,37 @@
+# SPDX-FileCopyrightText: 2025-2026 Laurent Montel <[email protected]>
+# SPDX-License-Identifier: CC0-1.0
+# ClangBuildAnalyzer reads ClangBuildAnalyzer.ini file from the working 
directory
+# when invoked, and various aspects of reporting can be configured this way.
+
+# How many of most expensive things are reported?
+[counts]
+
+# files that took most time to parse
+fileParse = 20
+# files that took most time to generate code for
+fileCodegen = 20
+# functions that took most time to generate code for
+function = 50
+# header files that were most expensive to include
+header = 10
+# for each expensive header, this many include paths to it are shown
+headerChain = 10
+# templates that took longest to instantiate
+template = 30
+
+
+# Minimum times (in ms) for things to be recorded into trace
+[minTimes]
+
+# parse/codegen for a file
+file = 10
+
+
+[misc]
+
+# Maximum length of symbol names printed; longer names will get truncated
+maxNameLength = 100
+
+# Only print "root" headers in expensive header report, i.e.
+# only headers that are directly included by at least one source file
+onlyRootHeaders = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/KPimPkPassConfig.cmake.in 
new/kpkpass-26.04.0/KPimPkPassConfig.cmake.in
--- old/kpkpass-25.12.3/KPimPkPassConfig.cmake.in       2026-02-06 
06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/KPimPkPassConfig.cmake.in       2026-03-28 
13:11:58.000000000 +0100
@@ -1,14 +1,24 @@
 # SPDX-FileCopyrightText: 2018 Volker Krause <[email protected]>
 # SPDX-FileCopyrightText: 2018 Jonathan Riddell <[email protected]>
-# SPDX-FileCopyrightText: 2019-2025 Laurent Montel <[email protected]>
+# SPDX-FileCopyrightText: 2019-2026 Laurent Montel <[email protected]>
 # SPDX-License-Identifier: BSD-3-Clause
 
 @PACKAGE_INIT@
 
 include(CMakeFindDependencyMacro)
 
-find_package(Qt6 "@QT_REQUIRED_VERSION@" NO_MODULE REQUIRED COMPONENTS Core 
Gui)
-find_dependency(KF6Archive "@KF_MIN_VERSION@")
+find_package(
+    Qt6
+    "@QT_REQUIRED_VERSION@"
+    NO_MODULE
+    REQUIRED
+    COMPONENTS
+        Core
+        Gui
+)
+find_dependency(
+    KF6Archive
+    "@KF_MIN_VERSION@"
+)
 
 include("${CMAKE_CURRENT_LIST_DIR}/KPim6PkPassTargets.cmake")
-@PACKAGE_INCLUDE_QCHTARGETS@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/README-qdoc.md 
new/kpkpass-26.04.0/README-qdoc.md
--- old/kpkpass-25.12.3/README-qdoc.md  1970-01-01 01:00:00.000000000 +0100
+++ new/kpkpass-26.04.0/README-qdoc.md  2026-03-28 13:11:58.000000000 +0100
@@ -0,0 +1,40 @@
+# Generate doc
+
+## Dependencies
+
+We need to clone kde-qdoc-common
+
+```bash
+cd <kde path>
+git clone https://invent.kde.org/sdk/kde-qdoc-common
+```
+
+## Environment variables
+
+set in `.bashrc`
+
+```bash
+export KDE_DOCS=<kde path>/kde-qdoc-common
+```
+
+We need to define where we generate doc:
+
+```bash
+export GENERATE_DOCDIR=<kde path>/generate-docs
+```
+
+## CMakePreset.json
+
+For generating doc we have a target in CMakePreset.json
+
+```bash
+cmake --preset generate-doc
+
+cmake --build --preset generate-doc
+```
+
+we can show result in `$GENERATE_DOCDIR/`
+
+## Porting info
+
+[Streamlined Application Development Experience 
#10](https://invent.kde.org/teams/goals/streamlined-application-development-experience/-/issues/10)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/README-qdoc.md.license 
new/kpkpass-26.04.0/README-qdoc.md.license
--- old/kpkpass-25.12.3/README-qdoc.md.license  1970-01-01 01:00:00.000000000 
+0100
+++ new/kpkpass-26.04.0/README-qdoc.md.license  2026-03-28 13:11:58.000000000 
+0100
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2023-2026 Laurent Montel <[email protected]>
+SPDX-License-Identifier: BSD-3-Clause
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/REUSE.toml 
new/kpkpass-26.04.0/REUSE.toml
--- old/kpkpass-25.12.3/REUSE.toml      2026-02-06 06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/REUSE.toml      2026-03-28 13:11:58.000000000 +0100
@@ -4,7 +4,7 @@
 SPDX-PackageDownloadLocation = "https://invent.kde.org/pim/kpkpass";
 
 [[annotations]]
-path = [".gersemirc"]
+path = [".gersemirc", "src/kpkpass-index.qdoc", "src/kpkpass.qdoc", 
"src/kpkpass.qdocconf"]
 precedence = "aggregate"
 SPDX-FileCopyrightText = "none"
 SPDX-License-Identifier = "CC0-1.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/autotests/CMakeLists.txt 
new/kpkpass-26.04.0/autotests/CMakeLists.txt
--- old/kpkpass-25.12.3/autotests/CMakeLists.txt        2026-02-06 
06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/autotests/CMakeLists.txt        2026-03-28 
13:11:58.000000000 +0100
@@ -1,5 +1,5 @@
 # SPDX-FileCopyrightText: 2018-2021 Volker Krause <[email protected]>
-# SPDX-FileCopyrightText: 2021-2025 Laurent Montel <[email protected]>
+# SPDX-FileCopyrightText: 2021-2026 Laurent Montel <[email protected]>
 # SPDX-License-Identifier: BSD-3-Clause
 
 find_package(Qt6Test ${QT_REQUIRED_VERSION} CONFIG REQUIRED)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/readme-build-ftime.txt 
new/kpkpass-26.04.0/readme-build-ftime.txt
--- old/kpkpass-25.12.3/readme-build-ftime.txt  2026-02-06 06:50:49.000000000 
+0100
+++ new/kpkpass-26.04.0/readme-build-ftime.txt  2026-03-28 13:11:58.000000000 
+0100
@@ -12,7 +12,7 @@
 
 ## Command line
 
-cmake -preset ftime-trace
+cmake --preset ftime-trace
 
 ClangBuildAnalyzer --start $PWD/build-ftime-trace
 cmake --build --preset ftime-trace
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/sanitizers.supp 
new/kpkpass-26.04.0/sanitizers.supp
--- old/kpkpass-25.12.3/sanitizers.supp 2026-02-06 06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/sanitizers.supp 2026-03-28 13:11:58.000000000 +0100
@@ -1,4 +1,4 @@
-# SPDX-FileCopyrightText: 2021-2025 Laurent Montel <[email protected]>
+# SPDX-FileCopyrightText: 2021-2026 Laurent Montel <[email protected]>
 # SPDX-License-Identifier: CC0-1.0
 # Suppression file for ASAN/LSAN
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/src/CMakeLists.txt 
new/kpkpass-26.04.0/src/CMakeLists.txt
--- old/kpkpass-25.12.3/src/CMakeLists.txt      2026-02-06 06:50:49.000000000 
+0100
+++ new/kpkpass-26.04.0/src/CMakeLists.txt      2026-03-28 13:11:58.000000000 
+0100
@@ -1,5 +1,5 @@
 # SPDX-FileCopyrightText: 2018 Volker Krause <[email protected]>
-# SPDX-FileCopyrightText: 2019-2025 Laurent Montel <[email protected]>
+# SPDX-FileCopyrightText: 2019-2026 Laurent Montel <[email protected]>
 # SPDX-License-Identifier: BSD-3-Clause
 
 set(KDE_INSTALL_INCLUDEDIR_PIM ${KDE_INSTALL_INCLUDEDIR}/KPim6)
@@ -42,18 +42,23 @@
 set_target_properties(
     KPim6PkPass
     PROPERTIES
-        VERSION ${KPKPASS_VERSION}
-        SOVERSION ${KPKPASS_SOVERSION}
-        EXPORT_NAME PkPass
-)
-target_include_directories(
-    KPim6PkPass
-    INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_PIM}>"
+        VERSION
+            ${KPKPASS_VERSION}
+        SOVERSION
+            ${KPKPASS_SOVERSION}
+        EXPORT_NAME
+            PkPass
 )
+target_include_directories(KPim6PkPass INTERFACE 
"$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_PIM}>")
 target_link_libraries(KPim6PkPass PUBLIC Qt::Gui PRIVATE KF6::Archive)
 
 if(COMPILE_WITH_UNITY_CMAKE_SUPPORT)
-    set_target_properties(KPim6PkPass PROPERTIES UNITY_BUILD ON)
+    set_target_properties(
+        KPim6PkPass
+        PROPERTIES
+            UNITY_BUILD
+                ON
+    )
 endif()
 
 ecm_generate_headers(KPkPass_HEADERS
@@ -67,11 +72,7 @@
     REQUIRED_HEADERS KPkPass_HEADERS
 )
 
-install(
-    TARGETS KPim6PkPass
-    EXPORT KPim6PkPassTargets
-    ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}
-)
+install(TARGETS KPim6PkPass EXPORT KPim6PkPassTargets 
${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
 install(
     FILES
         ${KPkPass_HEADERS}
@@ -81,47 +82,17 @@
 )
 
 if(NOT ANDROID)
-    if (SharedMimeInfo_VERSION_STRING VERSION_LESS 2.2)
-        install(
-            FILES application-vnd-apple-pkpass.xml
-            DESTINATION ${KDE_INSTALL_MIMEDIR}
-        )
+    if(SharedMimeInfo_VERSION_STRING VERSION_LESS 2.2)
+        install(FILES application-vnd-apple-pkpass.xml DESTINATION 
${KDE_INSTALL_MIMEDIR})
         update_xdg_mimetypes(${KDE_INSTALL_MIMEDIR})
     endif()
-    if (SharedMimeInfo_VERSION_STRING VERSION_LESS 2.5)
-        install(
-            FILES application-vnd-apple-pkpasses.xml
-            DESTINATION ${KDE_INSTALL_MIMEDIR}
-        )
+    if(SharedMimeInfo_VERSION_STRING VERSION_LESS 2.5)
+        install(FILES application-vnd-apple-pkpasses.xml DESTINATION 
${KDE_INSTALL_MIMEDIR})
         update_xdg_mimetypes(${KDE_INSTALL_MIMEDIR})
     endif()
 endif()
 
-if(BUILD_QCH)
-    ecm_add_qch(
-        KPim6PkPass_QCH
-        NAME KPim6PkPass
-        BASE_NAME KPim6PkPass
-        VERSION ${PIM_VERSION}
-        ORG_DOMAIN org.kde
-        SOURCES # using only public headers, to cover only public API
-            ${KPkPass_HEADERS}
-        MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
-        #IMAGE_DIRS "${CMAKE_SOURCE_DIR}/docs/pics"
-        LINK_QCHS
-            Qt6Core_QCH
-            Qt6Gui_QCH
-            Qt6Widgets_QCH
-        INCLUDE_DIRS
-            ${CMAKE_CURRENT_BINARY_DIR}
-        BLANK_MACROS
-            KPKPASS_EXPORT
-        TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
-        QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
-        COMPONENT Devel
-    )
-endif()
-
 ecm_qt_install_logging_categories(EXPORT KPKPASS FILE 
org_kde_kpkpass.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR})
 
 add_subdirectory(quick)
+ecm_generate_qdoc(KPim6PkPass kpkpass.qdocconf)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/src/barcode.h 
new/kpkpass-26.04.0/src/barcode.h
--- old/kpkpass-25.12.3/src/barcode.h   2026-02-06 06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/src/barcode.h   2026-03-28 13:11:58.000000000 +0100
@@ -20,8 +20,12 @@
 class BarcodePrivate;
 class Pass;
 
-/** A pass barcode element.
- *  @see 
https://developer.apple.com/library/content/documentation/UserExperience/Reference/PassKit_Bundle/Chapters/LowerLevel.html
+/*!
+ *  \sa 
https://developer.apple.com/library/content/documentation/UserExperience/Reference/PassKit_Bundle/Chapters/LowerLevel.html
+ * \class KPkPass::Barcode
+ * \brief A pass barcode element.
+ * \inmodule KPkPass
+ * \inheaderfile KPkPass/Barcode
  */
 class KPKPASS_EXPORT Barcode
 {
@@ -44,13 +48,13 @@
     Barcode();
     ~Barcode();
 
-    /** A human readable version of the barcode data. */
+    /*! A human readable version of the barcode data. */
     [[nodiscard]] QString alternativeText() const;
-    /** The barcode type. */
+    /*! The barcode type. */
     [[nodiscard]] Format format() const;
-    /** The message encoded in the barcode. */
+    /*! The message encoded in the barcode. */
     [[nodiscard]] QString message() const;
-    /** Encoding used for the message() content. */
+    /*! Encoding used for the message() content. */
     [[nodiscard]] QString messageEncoding() const;
 
 private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/src/boardingpass.h 
new/kpkpass-26.04.0/src/boardingpass.h
--- old/kpkpass-25.12.3/src/boardingpass.h      2026-02-06 06:50:49.000000000 
+0100
+++ new/kpkpass-26.04.0/src/boardingpass.h      2026-03-28 13:11:58.000000000 
+0100
@@ -10,7 +10,12 @@
 
 namespace KPkPass
 {
-/** Boarding pass */
+/*!
+ * \class KPkPass::BoardingPass
+ * \brief Boarding pass
+ * \inmodule KPkPass
+ * \inheaderfile KPkPass/Boardingpass
+ */
 class KPKPASS_EXPORT BoardingPass : public Pass
 {
     Q_OBJECT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/src/field.h 
new/kpkpass-26.04.0/src/field.h
--- old/kpkpass-25.12.3/src/field.h     2026-02-06 06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/src/field.h     2026-03-28 13:11:58.000000000 +0100
@@ -22,8 +22,12 @@
 class FieldPrivate;
 class FieldTest;
 
-/** Field element in a KPkPass::Pass.
- * @see 
https://developer.apple.com/library/content/documentation/UserExperience/Reference/PassKit_Bundle/Chapters/FieldDictionary.html
+/*!
+ * \sa 
https://developer.apple.com/library/content/documentation/UserExperience/Reference/PassKit_Bundle/Chapters/FieldDictionary.html
+ * \class KPkPass::Field
+ * \brief Field element in a KPkPass::Pass.
+ * \inmodule KPkPass
+ * \inheaderfile KPkPass/Field
  */
 class KPKPASS_EXPORT Field
 {
@@ -43,28 +47,28 @@
     ~Field();
     Field &operator=(const Field &);
 
-    /** Field key, unique in the pass but not meant for display. */
+    /*! Field key, unique in the pass but not meant for display. */
     [[nodiscard]] QString key() const;
-    /** Localized label for display describing this field. */
+    /*! Localized label for display describing this field. */
     [[nodiscard]] QString label() const;
 
-    /** Value of this field.
+    /*! Value of this field.
      *  This can either be a localized string (most common), a date/time value 
or a number.
      *  Use this for data extraction, prefer valueDisplayString() for 
displaying data.
      */
     [[nodiscard]] QVariant value() const;
-    /** Value of this field, as a localized string for display.
+    /*! Value of this field, as a localized string for display.
      *  Use this rather than value() for display.
      */
     [[nodiscard]] QString valueDisplayString() const;
 
-    /** The localized change message for this value. */
+    /*! The localized change message for this value. */
     [[nodiscard]] QString changeMessage() const;
 
-    /** Text alignment. */
+    /*! Text alignment. */
     [[nodiscard]] Qt::Alignment textAlignment() const;
 
-    /** Currency code. */
+    /*! Currency code. */
     [[nodiscard]] QString currencyCode() const;
 
 private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/src/kpkpass-index.qdoc 
new/kpkpass-26.04.0/src/kpkpass-index.qdoc
--- old/kpkpass-25.12.3/src/kpkpass-index.qdoc  1970-01-01 01:00:00.000000000 
+0100
+++ new/kpkpass-26.04.0/src/kpkpass-index.qdoc  2026-03-28 13:11:58.000000000 
+0100
@@ -0,0 +1,20 @@
+/*!
+    \page kpkpass-index.html
+    \title PkPass
+
+    PkPass file support
+
+    \section1 Using the Module
+
+    \include {module-use.qdocinc} {using the c++ api}
+
+    \section2 Building with CMake
+
+    \include {module-use.qdocinc} {building with cmake} {KPim6} {PkPass} 
{KPim6::PkPass}
+
+    \section1 API Reference
+
+    \list
+        \li \l{PkPass C++ Classes}
+    \endlist
+*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/src/kpkpass.qdoc 
new/kpkpass-26.04.0/src/kpkpass.qdoc
--- old/kpkpass-25.12.3/src/kpkpass.qdoc        1970-01-01 01:00:00.000000000 
+0100
+++ new/kpkpass-26.04.0/src/kpkpass.qdoc        2026-03-28 13:11:58.000000000 
+0100
@@ -0,0 +1,9 @@
+/*!
+    \module KPkPass
+    \title PkPass C++ Classes
+    \ingroup modules
+    \cmakepackage KPim6
+    \cmakecomponent PkPass
+
+    \brief PkPass provides PkPass file support.
+*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/src/kpkpass.qdocconf 
new/kpkpass-26.04.0/src/kpkpass.qdocconf
--- old/kpkpass-25.12.3/src/kpkpass.qdocconf    1970-01-01 01:00:00.000000000 
+0100
+++ new/kpkpass-26.04.0/src/kpkpass.qdocconf    2026-03-28 13:11:58.000000000 
+0100
@@ -0,0 +1,33 @@
+include($KDE_DOCS/global/qt-module-defaults.qdocconf)
+
+project = PkPass
+description = PkPass provides PkPass file support.
+
+
+documentationinheaders = true
+
+headerdirs += .
+sourcedirs += .
+
+outputformats = HTML
+
+depends += \
+    qtcore
+
+navigation.landingpage = "PkPass"
+
+qhp.projects            = kpkpass
+
+qhp.kpkpass.file                = kpkpass.qhp
+qhp.kpkpass.namespace           = org.kde.kpkpass.$QT_VERSION_TAG
+qhp.kpkpass.virtualFolder       = kpkpass
+qhp.kpkpass.indexTitle          = kpkpass
+qhp.kpkpass.indexRoot           =
+
+qhp.kpkpass.subprojects         = classes
+qhp.kpkpass.subprojects.classes.title = C++ Classes
+qhp.kpkpass.subprojects.classes.indexTitle = PkPass C++ Classes
+qhp.kpkpass.subprojects.classes.selectors = class fake:headerfile
+qhp.kpkpass.subprojects.classes.sortPages = true
+
+tagfile = kpkpass.tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/src/location.h 
new/kpkpass-26.04.0/src/location.h
--- old/kpkpass-25.12.3/src/location.h  2026-02-06 06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/src/location.h  2026-03-28 13:11:58.000000000 +0100
@@ -18,8 +18,12 @@
 {
 class LocationPrivate;
 
-/** A pass location element.
- *  @see 
https://developer.apple.com/library/content/documentation/UserExperience/Reference/PassKit_Bundle/Chapters/LowerLevel.html
+/*!
+ *  \sa 
https://developer.apple.com/library/content/documentation/UserExperience/Reference/PassKit_Bundle/Chapters/LowerLevel.html
+ * \class KPkPass::Location
+ * \brief A pass location element.
+ * \inmodule KPkPass
+ * \inheaderfile KPkPass/Location
  */
 class KPKPASS_EXPORT Location
 {
@@ -32,13 +36,13 @@
     Location();
     ~Location();
 
-    /** Altitude in meters, NaN if not set. */
+    /*! Altitude in meters, NaN if not set. */
     [[nodiscard]] double altitude() const;
-    /** Latitude in degree. */
+    /*! Latitude in degree. */
     [[nodiscard]] double latitude() const;
-    /** Longitude in degree. */
+    /*! Longitude in degree. */
     [[nodiscard]] double longitude() const;
-    /** Text to display when location is reached. */
+    /*! Text to display when location is reached. */
     [[nodiscard]] QString relevantText() const;
 
 private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/src/pass.h 
new/kpkpass-26.04.0/src/pass.h
--- old/kpkpass-25.12.3/src/pass.h      2026-02-06 06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/src/pass.h      2026-03-28 13:11:58.000000000 +0100
@@ -27,9 +27,13 @@
 class Location;
 class PassPrivate;
 
-/** Base class for a pkpass file.
- *  @see 
https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/PassKit_PG/index.html
- *  @see 
https://developer.apple.com/library/content/documentation/UserExperience/Reference/PassKit_Bundle/Chapters/TopLevel.html
+/*!
+ * \sa 
https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/PassKit_PG/index.html
+ * \sa 
https://developer.apple.com/library/content/documentation/UserExperience/Reference/PassKit_Bundle/Chapters/TopLevel.html
+ * \class KPkPass::Pass
+ * \brief Base class for a pkpass file.
+ * \inmodule KPkPass
+ * \inheaderfile KPkPass/Pass
  */
 class KPKPASS_EXPORT Pass : public QObject
 {
@@ -72,7 +76,7 @@
 public:
     ~Pass() override;
 
-    /** Type of the pass. */
+    /*! Type of the pass. */
     enum Type {
         BoardingPass,
         Coupon,
@@ -94,14 +98,14 @@
     [[nodiscard]] bool isVoided() const;
 
     // relevance keys
-    /** Locations associated with this pass. */
+    /*! Locations associated with this pass. */
     [[nodiscard]] QList<Location> locations() const;
-    /** Distance in meters to any of the pass locations before this pass 
becomes relevant. */
+    /*! Distance in meters to any of the pass locations before this pass 
becomes relevant. */
     [[nodiscard]] int maximumDistance() const;
     [[nodiscard]] QDateTime relevantDate() const;
 
     // visual appearance keys
-    /** Returns all barcodes defined in the pass. */
+    /*! Returns all barcodes defined in the pass. */
     [[nodiscard]] QList<Barcode> barcodes() const;
     [[nodiscard]] QColor backgroundColor() const;
     [[nodiscard]] QColor foregroundColor() const;
@@ -109,9 +113,9 @@
     [[nodiscard]] QColor labelColor() const;
     [[nodiscard]] QString logoText() const;
 
-    /** Returns @c true if an image asset with the given base name exists.
-     *  @param baseName The name of the asset, without the file type and high 
dpi extensions.
-     *  @since 5.20.41
+    /*! Returns true if an image asset with the given base name exists.
+     *  \a baseName The name of the asset, without the file type and high dpi 
extensions.
+     *  \since 5.20.41
      */
     bool hasImage(const QString &baseName) const;
     bool hasIcon() const;
@@ -121,29 +125,29 @@
     bool hasFooter() const;
     bool hasThumbnail() const;
 
-    /** Returns an image asset of this pass.
-     *  @param baseName The name of the asset, without the file name extension.
-     *  @param devicePixelRatio The device pixel ration, for loading highdpi 
assets.
+    /*! Returns an image asset of this pass.
+     *  \a baseName The name of the asset, without the file name extension.
+     *  \a devicePixelRatio The device pixel ration, for loading highdpi 
assets.
      */
     [[nodiscard]] QImage image(const QString &baseName, unsigned int 
devicePixelRatio = 1) const;
-    /** Returns the pass icon. */
+    /*! Returns the pass icon. */
     Q_INVOKABLE [[nodiscard]] QImage icon(unsigned int devicePixelRatio = 1) 
const;
-    /** Returns the pass logo. */
+    /*! Returns the pass logo. */
     Q_INVOKABLE [[nodiscard]] QImage logo(unsigned int devicePixelRatio = 1) 
const;
-    /** Returns the strip image if present. */
+    /*! Returns the strip image if present. */
     Q_INVOKABLE [[nodiscard]] QImage strip(unsigned int devicePixelRatio = 1) 
const;
-    /** Returns the background image if present. */
+    /*! Returns the background image if present. */
     Q_INVOKABLE [[nodiscard]] QImage background(unsigned int devicePixelRatio 
= 1) const;
-    /** Returns the footer image if present. */
+    /*! Returns the footer image if present. */
     Q_INVOKABLE [[nodiscard]] QImage footer(unsigned int devicePixelRatio = 1) 
const;
-    /** Returns the thumbnail image if present. */
+    /*! Returns the thumbnail image if present. */
     Q_INVOKABLE [[nodiscard]] QImage thumbnail(unsigned int devicePixelRatio = 
1) const;
 
     // web service keys
     [[nodiscard]] QString authenticationToken() const;
     [[nodiscard]] QUrl webServiceUrl() const;
-    /** Pass update URL.
-     * @see 
https://developer.apple.com/library/content/documentation/PassKit/Reference/PassKit_WebService/WebService.html
+    /*! Pass update URL.
+     * \sa 
https://developer.apple.com/library/content/documentation/PassKit/Reference/PassKit_WebService/WebService.html
      */
     [[nodiscard]] QUrl passUpdateUrl() const;
 
@@ -153,25 +157,25 @@
     QList<Field> primaryFields() const;
     QList<Field> secondaryFields() const;
 
-    /** Returns the field with key @p key. */
+    /*! Returns the field with key \a key. */
     Field field(const QString &key) const;
-    /** Returns all fields found in this pass. */
+    /*! Returns all fields found in this pass. */
     QList<Field> fields() const;
 
-    /** Create a appropriate sub-class based on the pkpass file type. */
+    /*! Create a appropriate sub-class based on the pkpass file type. */
     static Pass *fromData(const QByteArray &data, QObject *parent = nullptr);
-    /** Create a appropriate sub-class based on the pkpass file type. */
+    /*! Create a appropriate sub-class based on the pkpass file type. */
     static Pass *fromFile(const QString &fileName, QObject *parent = nullptr);
 
-    /** The raw data of this pass.
+    /*! The raw data of this pass.
      *  That is the binary representation of the ZIP archive which contains
      *  all the pass data.
-     *  @since 5.20.41
+     *  \since 5.20.41
      */
     QByteArray rawData() const;
 
 protected:
-    ///@cond internal
+    ///\\ond internal
     friend class Barcode;
     friend class Field;
     friend class PassPrivate;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/src/passes.h 
new/kpkpass-26.04.0/src/passes.h
--- old/kpkpass-25.12.3/src/passes.h    2026-02-06 06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/src/passes.h    2026-03-28 13:11:58.000000000 +0100
@@ -20,9 +20,13 @@
 
 class PassesPrivate;
 
-/** Representes a .pkpasses multi-pass bundle file.
- *  @see 
https://developer.apple.com/documentation/walletpasses/distributing-and-updating-a-pass#Create-a-bundle-of-passes
- *  @since 25.12
+/*!
+ *  \sa 
https://developer.apple.com/documentation/walletpasses/distributing-and-updating-a-pass#Create-a-bundle-of-passes
+ *  \since 25.12
+ * \class KPkPass::Passes
+ * \brief Representes a .pkpasses multi-pass bundle file.
+ * \inmodule KPkPass
+ * \inheaderfile KPkPass/Passes
  */
 class KPKPASS_EXPORT Passes
 {
@@ -31,13 +35,13 @@
     ~Passes();
     Passes &operator=(Passes &&) noexcept;
 
-    /** Lists the names of all contained passes. */
+    /*! Lists the names of all contained passes. */
     [[nodiscard]] QStringList entries() const;
 
-    /** Returns the raw data of a pass with @p name. */
+    /*! Returns the raw data of a pass with \a name. */
     [[nodiscard]] QByteArray passData(const QString &name) const;
 
-    /** Create a new passes bundle from @p data. */
+    /*! Create a new passes bundle from \a data. */
     [[nodiscard]] static Passes *fromData(const QByteArray &data);
 
 private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpkpass-25.12.3/src/quick/CMakeLists.txt 
new/kpkpass-26.04.0/src/quick/CMakeLists.txt
--- old/kpkpass-25.12.3/src/quick/CMakeLists.txt        2026-02-06 
06:50:49.000000000 +0100
+++ new/kpkpass-26.04.0/src/quick/CMakeLists.txt        2026-03-28 
13:11:58.000000000 +0100
@@ -10,6 +10,11 @@
         types.h
 )
 
-target_link_libraries(kpkpassqmlplugin PRIVATE Qt::Qml KPim6PkPass)
+target_link_libraries(
+    kpkpassqmlplugin
+    PRIVATE
+        Qt::Qml
+        KPim6PkPass
+)
 
 ecm_finalize_qml_module(kpkpassqmlplugin DESTINATION ${KDE_INSTALL_QMLDIR})

Reply via email to