Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kf6-kpeople for openSUSE:Leap:16.0 
checked in at 2025-08-07 21:00:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:16.0/kf6-kpeople (Old)
 and      /work/SRC/openSUSE:Leap:16.0/.kf6-kpeople.new.1085 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kf6-kpeople"

Thu Aug  7 21:00:34 2025 rev:4 rq:1292786 version:6.16.0

Changes:
--------
--- /work/SRC/openSUSE:Leap:16.0/kf6-kpeople/kf6-kpeople.changes        
2025-04-23 16:39:26.203738520 +0200
+++ /work/SRC/openSUSE:Leap:16.0/.kf6-kpeople.new.1085/kf6-kpeople.changes      
2025-08-07 21:01:51.616342615 +0200
@@ -1,0 +2,39 @@
+Mon Jul  7 07:24:45 UTC 2025 - Christophe Marin <christo...@krop.fr>
+
+- Update to 6.16.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/6/6.16.0
+- Changes since 6.15.0:
+  * Update dependency version to 6.16.0
+  * Update version to 6.16.0
+
+-------------------------------------------------------------------
+Mon Jun  9 20:29:42 UTC 2025 - Christophe Marin <christo...@krop.fr>
+
+- Update to 6.15.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/6/6.15.0
+- Changes since 6.14.0:
+  * Update dependency version to 6.15.0
+  * Add tags file to documentation
+  * Add missing qhp projects
+  * Add landing page for QDoc
+  * It compiles fine without kf_6_13 deprecated methods
+  * Port API documentation to QDoc syntax
+  * Update version to 6.15.0
+- Replace _kf6_bugfix_version usage
+
+-------------------------------------------------------------------
+Sun May  4 19:05:27 UTC 2025 - Christophe Marin <christo...@krop.fr>
+
+- Update to 6.14.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/6/6.14.0
+- Changes since 6.13.0:
+  * Update dependency version to 6.14.0
+  * Update version to 6.14.0
+
+-------------------------------------------------------------------

Old:
----
  kpeople-6.13.0.tar.xz
  kpeople-6.13.0.tar.xz.sig

New:
----
  kpeople-6.16.0.tar.xz
  kpeople-6.16.0.tar.xz.sig

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

Other differences:
------------------
++++++ kf6-kpeople.spec ++++++
--- /var/tmp/diff_new_pack.HUCAzP/_old  2025-08-07 21:01:53.088403898 +0200
+++ /var/tmp/diff_new_pack.HUCAzP/_new  2025-08-07 21:01:53.104404564 +0200
@@ -16,16 +16,14 @@
 #
 
 
-%define qt6_version 6.7.0
+%define qt6_version 6.8.0
 
 %define rname kpeople
-# Full KF6 version (e.g. 6.13.0)
+# Full KF6 version (e.g. 6.16.0)
 %{!?_kf6_version: %global _kf6_version %{version}}
-# Last major and minor KF6 version (e.g. 6.0)
-%{!?_kf6_bugfix_version: %define _kf6_bugfix_version %(echo %{_kf6_version} | 
awk -F. '{print $1"."$2}')}
 %bcond_without released
 Name:           kf6-kpeople
-Version:        6.13.0
+Version:        6.16.0
 Release:        0
 Summary:        Library for access to contacts and identity holders
 License:        LGPL-2.1-or-later
@@ -35,7 +33,6 @@
 Source1:        %{rname}-%{version}.tar.xz.sig
 Source2:        frameworks.keyring
 %endif
-BuildRequires:  doxygen
 BuildRequires:  fdupes
 BuildRequires:  kf6-extra-cmake-modules >= %{_kf6_version}
 BuildRequires:  cmake(KF6CoreAddons) >= %{_kf6_version}
@@ -84,7 +81,7 @@
 %autosetup -p1 -n %{rname}-%{version}
 
 %build
-%cmake_kf6 -DBUILD_QCH:BOOL=TRUE \
+%cmake_kf6 \
            -DENABLE_EXAMPLES:BOOL=FALSE
 
 %kf6_build
@@ -114,7 +111,6 @@
 %{_kf6_libdir}/libKF6PeopleWidgets.so.*
 
 %files devel
-%doc %{_kf6_qchdir}/KF6People.*
 %{_kf6_cmakedir}/KF6People/
 %{_kf6_includedir}/KPeople/
 %{_kf6_libdir}/libKF6People.so


++++++ kpeople-6.13.0.tar.xz -> kpeople-6.16.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/CMakeLists.txt 
new/kpeople-6.16.0/CMakeLists.txt
--- old/kpeople-6.13.0/CMakeLists.txt   2025-04-04 16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/CMakeLists.txt   2025-07-04 17:16:30.000000000 +0200
@@ -1,11 +1,11 @@
 cmake_minimum_required(VERSION 3.16)
 
-set(KF_VERSION "6.13.0") # handled by release scripts
-set(KF_DEP_VERSION "6.13.0") # handled by release scripts
+set(KF_VERSION "6.16.0") # handled by release scripts
+set(KF_DEP_VERSION "6.16.0") # handled by release scripts
 project (KPeople VERSION ${KF_VERSION})
 
 include(FeatureSummary)
-find_package(ECM 6.13.0  NO_MODULE)
+find_package(ECM 6.16.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)
 
@@ -20,14 +20,14 @@
 include(ECMGenerateHeaders)
 include(ECMSetupVersion)
 include(ECMAddTests)
-include(ECMAddQch)
 include(CMakePackageConfigHelpers)
 include(ECMGenerateExportHeader)
+include(ECMGenerateQDoc)
 include(ECMQtDeclareLoggingCategory)
 include(ECMDeprecationSettings)
 include(ECMQmlModule)
 
-set(REQUIRED_QT_VERSION 6.6.0)
+set(REQUIRED_QT_VERSION 6.7.0)
 find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Gui Sql Widgets Qml 
Quick)
 
 # shall we use DBus?
@@ -48,9 +48,6 @@
 find_package(KF6ItemViews ${KF_DEP_VERSION} CONFIG REQUIRED)
 find_package(KF6Contacts ${KF_DEP_VERSION} CONFIG REQUIRED)
 
-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)")
-
 add_definitions(-DTRANSLATION_DOMAIN=\"kpeople6\")
 
 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6People")
@@ -67,7 +64,7 @@
 
 ecm_set_disabled_deprecation_versions(
     QT 6.5
-    KF 6.12
+    KF 6.13
 )
 
 add_subdirectory (src)
@@ -78,16 +75,6 @@
     add_subdirectory(autotests)
 endif()
 
-if (BUILD_QCH)
-    ecm_install_qch_export(
-        TARGETS KF6People_QCH
-        FILE KF6PeopleQchTargets.cmake
-        DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
-        COMPONENT Devel
-    )
-    set(PACKAGE_INCLUDE_QCHTARGETS 
"include(\"\${CMAKE_CURRENT_LIST_DIR}/KF6PeopleQchTargets.cmake\")")
-endif()
-
 configure_package_config_file(
   "${CMAKE_CURRENT_SOURCE_DIR}/KF6PeopleConfig.cmake.in"
   "${CMAKE_CURRENT_BINARY_DIR}/KF6PeopleConfig.cmake"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/KF6PeopleConfig.cmake.in 
new/kpeople-6.16.0/KF6PeopleConfig.cmake.in
--- old/kpeople-6.13.0/KF6PeopleConfig.cmake.in 2025-04-04 16:02:38.000000000 
+0200
+++ new/kpeople-6.16.0/KF6PeopleConfig.cmake.in 2025-07-04 17:16:30.000000000 
+0200
@@ -5,4 +5,3 @@
 find_dependency(Qt6Widgets @REQUIRED_QT_VERSION@)
 
 include("${CMAKE_CURRENT_LIST_DIR}/KPeopleTargets.cmake")
-@PACKAGE_INCLUDE_QCHTARGETS@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/po/es/kpeople6.po 
new/kpeople-6.16.0/po/es/kpeople6.po
--- old/kpeople-6.13.0/po/es/kpeople6.po        2025-04-04 16:02:38.000000000 
+0200
+++ new/kpeople-6.16.0/po/es/kpeople6.po        2025-07-04 17:16:30.000000000 
+0200
@@ -1,13 +1,14 @@
-# Copyright (C) YEAR This_file_is_part_of_KDE
-# This file is distributed under the same license as the PACKAGE package.
+# Spanish translations for kpeople6.po package.
+# Copyright (C) 2014-2025 This file is copyright:
+# This file is distributed under the same license as the kpeople package.
 #
-# SPDX-FileCopyrightText: 2014, 2015, 2023 Eloy Cuadra <ecua...@eloihr.net>
+# SPDX-FileCopyrightText: 2014, 2015, 2023, 2025 Eloy Cuadra 
<ecua...@eloihr.net>
 msgid ""
 msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: kpeople6\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2023-12-26 01:32+0000\n"
-"PO-Revision-Date: 2023-12-27 01:05+0100\n"
+"PO-Revision-Date: 2025-05-18 13:45+0100\n"
 "Last-Translator: Eloy Cuadra <ecua...@eloihr.net>\n"
 "Language-Team: Spanish <kde-l10n...@kde.org>\n"
 "Language: es\n"
@@ -68,34 +69,3 @@
 #, kde-format
 msgid "Avatar"
 msgstr "Avatar"
-
-#~ msgid "Show Merge Suggestions..."
-#~ msgstr "Mostrar las sugerencias de fusión..."
-
-#~ msgid "Merge with Selected Contacts"
-#~ msgstr "Fusionar con los contactos seleccionados"
-
-#~ msgctxt "Phone details title"
-#~ msgid "Phone"
-#~ msgstr "Teléfono"
-
-#~ msgid "No Subject"
-#~ msgstr "Sin asunto"
-
-#~ msgid "Subject: "
-#~ msgstr "Asunto: "
-
-#~ msgid "No Emails"
-#~ msgstr "Ningún correo electrónico"
-
-#, fuzzy
-#~| msgid "Mails"
-#~ msgctxt "Emails field label"
-#~ msgid "Mails"
-#~ msgstr "Correos electrónicos"
-
-#~ msgid "Email"
-#~ msgstr "Correo electrónico"
-
-#~ msgid "SweetPeople - KPeople Example"
-#~ msgstr "SweetPeople - Ejemplo de KPeople"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/CMakeLists.txt 
new/kpeople-6.16.0/src/CMakeLists.txt
--- old/kpeople-6.13.0/src/CMakeLists.txt       2025-04-04 16:02:38.000000000 
+0200
+++ new/kpeople-6.16.0/src/CMakeLists.txt       2025-07-04 17:16:30.000000000 
+0200
@@ -106,37 +106,6 @@
 
 install(FILES personmanager_p.h DESTINATION 
${KDE_INSTALL_INCLUDEDIR_KF}/KPeople/kpeopleprivate)
 
-if(BUILD_QCH)
-    ecm_add_qch(
-        KF6People_QCH
-        NAME KPeople
-        BASE_NAME KF6People
-        VERSION ${KF_VERSION}
-        ORG_DOMAIN org.kde
-        SOURCES # using only public headers, to cover only public API
-            ${KPeople_HEADERS}
-            ${KPeopleWidgets_QCH_SOURCES}
-            ${KPeopleBackend_QCH_SOURCES}
-        MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
-        LINK_QCHS
-            Qt6Gui_QCH
-            Qt6Widgets_QCH
-        BLANK_MACROS
-            KPEOPLE_EXPORT
-            KPEOPLE_DEPRECATED
-            KPEOPLE_DEPRECATED_EXPORT
-            KPEOPLEWIDGETS_EXPORT
-            KPEOPLEWIDGETS_DEPRECATED
-            KPEOPLEWIDGETS_DEPRECATED_EXPORT
-            KPEOPLEBACKEND_EXPORT
-            KPEOPLEBACKEND_DEPRECATED
-            KPEOPLEBACKEND_DEPRECATED_EXPORT
-        TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
-        QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
-        COMPONENT Devel
-    )
-endif()
-
 ecm_qt_install_logging_categories(
     EXPORT KPEOPLE
     FILE kpeople.categories
@@ -146,3 +115,5 @@
 if (ANDROID)
     install(FILES KF6People-android-dependencies.xml DESTINATION 
${KDE_INSTALL_LIBDIR})
 endif()
+
+ecm_generate_qdoc(KF6People kpeople.qdocconf)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/actions.h 
new/kpeople-6.16.0/src/actions.h
--- old/kpeople-6.13.0/src/actions.h    2025-04-04 16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/actions.h    2025-07-04 17:16:30.000000000 +0200
@@ -20,11 +20,18 @@
 Q_NAMESPACE_EXPORT(KPEOPLE_EXPORT)
 class PersonData;
 
-/**
+/*!
  * Each action returned in the list can be one of these
  * types, however the Type is not mandatory with the action
  *
  * The type should be set as QObject property "actionType"
+ *
+ * \value TextChatAction
+ * \value AudioCallAction
+ * \value VideoCallAction
+ * \value SendEmailAction
+ * \value SendFileAction
+ * \value OtherAction
  */
 enum ActionType {
     TextChatAction,
@@ -36,9 +43,9 @@
 };
 Q_ENUM_NS(ActionType)
 
-/**
- * Returns a list of actions relevant to the specified @p contactUri where
- * each QAction will have @p parent passed as its parent QObject
+/*!
+ * Returns a list of actions relevant to the specified \a contactUri where
+ * each QAction will have \a parent passed as its parent QObject
  */
 KPEOPLE_EXPORT QList<QAction *> actionsForPerson(const QString &contactUri, 
QObject *parent);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/backends/CMakeLists.txt 
new/kpeople-6.16.0/src/backends/CMakeLists.txt
--- old/kpeople-6.13.0/src/backends/CMakeLists.txt      2025-04-04 
16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/backends/CMakeLists.txt      2025-07-04 
17:16:30.000000000 +0200
@@ -64,5 +64,4 @@
   DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KPeople/kpeoplebackend COMPONENT 
Devel
 )
 
-# make available to ecm_add_qch in parent folder
-set(KPeopleBackend_QCH_SOURCES ${KPeopleBackend_HEADERS} PARENT_SCOPE)
+ecm_generate_qdoc(KF6PeopleBackend kpeoplebackend.qdocconf)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/backends/abstractcontact.h 
new/kpeople-6.16.0/src/backends/abstractcontact.h
--- old/kpeople-6.13.0/src/backends/abstractcontact.h   2025-04-04 
16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/backends/abstractcontact.h   2025-07-04 
17:16:30.000000000 +0200
@@ -13,62 +13,75 @@
 
 namespace KPeople
 {
-/**
- * @brief KPeople::AbstractContact is the class to provide the data from a 
given
+/*!
+ * \class KPeople::AbstractContact
+ * \inmodule KPeopleBackend
+ * \inheaderfile KPeopleBackend/AbstractContact
+ *
+ * \brief KPeople::AbstractContact is the class to provide the data from a 
given
  * contact by the backends.
  *
  * To obtain it from a front-end application PersonData and PersonsModel
  * should be used.
  *
- * @since 5.8
- * @internal
+ * \since 5.8
  */
-
 class KPEOPLEBACKEND_EXPORT AbstractContact : public QSharedData
 {
 public:
+    /*!
+     * \typedef KPeople::AbstractContact::Ptr
+     */
     typedef QExplicitlySharedDataPointer<AbstractContact> Ptr;
+
+    /*!
+     * \typedef KPeople::AbstractContact::List
+     */
     typedef QList<AbstractContact::Ptr> List;
+
+    /*!
+     *
+     */
     AbstractContact();
     virtual ~AbstractContact();
 
     //     well-known properties
-    /** String property representing the display name of the contact */
+    /*! String property representing the display name of the contact */
     static const QString NameProperty;
 
-    /** String property representing the preferred name of the contact */
+    /*! String property representing the preferred name of the contact */
     static const QString EmailProperty;
 
-    /** String property representing the preferred phone number of the contact 
*/
+    /*! String property representing the preferred phone number of the contact 
*/
     static const QString PhoneNumberProperty;
 
-    /** QVariantList property that lists all phone numbers the contact has */
+    /*! QVariantList property that lists all phone numbers the contact has */
     static const QString AllPhoneNumbersProperty;
 
-    /**
+    /*!
      * String property representing the IM presence of the contact.
-     * @sa KPeople::iconNameForPresenceString()
+     * \sa KPeople::iconNameForPresenceString()
      */
     static const QString PresenceProperty;
 
-    /**
+    /*!
      * QUrl or QPixmap property representing the contacts' avatar
      */
     static const QString PictureProperty;
 
-    /** QVariantList property that lists the groups the contacts belongs to */
+    /*! QVariantList property that lists the groups the contacts belongs to */
     static const QString GroupsProperty;
 
-    /** QVariantList property that lists the emails the contact has */
+    /*! QVariantList property that lists the emails the contact has */
     static const QString AllEmailsProperty;
 
-    /** QByteArray with the raw vcard information */
+    /*! QByteArray with the raw vcard information */
     static const QString VCardProperty;
 
-    /**
+    /*!
      * Generic method to access a random contact property
      *
-     * @returns the value for the @p key property.
+     * Returns the value for the \a key property.
      */
     virtual QVariant customProperty(const QString &key) const = 0;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kpeople-6.13.0/src/backends/abstracteditablecontact.h 
new/kpeople-6.16.0/src/backends/abstracteditablecontact.h
--- old/kpeople-6.13.0/src/backends/abstracteditablecontact.h   2025-04-04 
16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/backends/abstracteditablecontact.h   2025-07-04 
17:16:30.000000000 +0200
@@ -12,14 +12,17 @@
 
 namespace KPeople
 {
-/**
- * @brief Additionally to @class AbstractContact features, it will allow us
+/*!
+ * \class KPeople::AbstractEditableContact
+ * \inmodule KPeopleBackend
+ * \inheaderfile KPeopleBackend/AbstractEditableContact
+ *
+ * \brief Additionally to AbstractContact features, it will allow us
  * to suggest the backend property values for a said key.
  *
- * @since 5.62
- * @internal
+ * \since 5.62
+ * \internal
  */
-
 class KPEOPLEBACKEND_EXPORT AbstractEditableContact : public AbstractContact
 {
 public:
@@ -28,11 +31,12 @@
     AbstractEditableContact();
     ~AbstractEditableContact() override;
 
-    /**
-     * @p key @see AbstractContact for key identifiers
-     * @p value suggested value
+    /*!
+     * \a key See AbstractContact for key identifiers
+     *
+     * \a value suggested value
      *
-     * @returns whether the change was successful
+     * Returns whether the change was successful
      */
     virtual bool setCustomProperty(const QString &key, const QVariant &value) 
= 0;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/backends/abstractpersonaction.h 
new/kpeople-6.16.0/src/backends/abstractpersonaction.h
--- old/kpeople-6.13.0/src/backends/abstractpersonaction.h      2025-04-04 
16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/backends/abstractpersonaction.h      2025-07-04 
17:16:30.000000000 +0200
@@ -17,16 +17,27 @@
 {
 class PersonData;
 
+/*!
+ * \class KPeople::AbstractPersonAction
+ * \inmodule KPeopleBackend
+ * \inheaderfile KPeopleBackend/AbstractPersonAction
+ */
 class KPEOPLEBACKEND_EXPORT AbstractPersonAction : public QObject
 {
     Q_OBJECT
 public:
+    /*!
+     *
+     */
     explicit AbstractPersonAction(QObject *parent);
-    /** A list of actions that can be executed for a contact
+
+    /*!
+     * A list of actions that can be executed for a contact
      * Disabled actions should not be added
      *
-     * @param data passes the person we're creating the actions for
-     * @param parent parent object for newly created actions
+     * \a data passes the person we're creating the actions for
+     *
+     * \a parent parent object for newly created actions
      */
     virtual QList<QAction *> actionsForPerson(const PersonData &data, QObject 
*parent) const = 0;
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/backends/allcontactsmonitor.h 
new/kpeople-6.16.0/src/backends/allcontactsmonitor.h
--- old/kpeople-6.13.0/src/backends/allcontactsmonitor.h        2025-04-04 
16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/backends/allcontactsmonitor.h        2025-07-04 
17:16:30.000000000 +0200
@@ -17,65 +17,78 @@
 {
 class AllContactsMonitorPrivate;
 
-/**
- * This class should be subclassed by each datasource and return a list of
+/*!
+ * \class KPeople::AllContactsMonitor
+ * \inmodule KPeopleBackend
+ * \inheaderfile KPeopleBackend/AllContactsMonitor
+ *
+ * \brief This class should be subclassed by each datasource and return a list 
of
  * all contacts that the datasource knows about.
  *
  * Subclasses are expected to be asynchronous
  *
- * @since 5.8
+ * \since 5.8
  */
 class KPEOPLEBACKEND_EXPORT AllContactsMonitor : public QObject
 {
     Q_OBJECT
 public:
+    /*!
+     *
+     */
     explicit AllContactsMonitor(); // TODO make protected? this isn't useful 
unless subclassed
     ~AllContactsMonitor() override;
 
-    /**
+    /*!
      * Returns all currently loaded contacts
      */
     virtual QMap<QString, AbstractContact::Ptr> contacts();
 
     // TODO redo as a state enum - InitialLoad, Fail, Loaded
+    /*!
+     *
+     */
     bool isInitialFetchComplete() const;
 
+    /*!
+     *
+     */
     bool initialFetchSuccess() const;
 
 Q_SIGNALS:
-    /**
+    /*!
      * DataSources should emit this whenever a known contact changes
      */
     void contactChanged(const QString &contactUri, const 
KPeople::AbstractContact::Ptr &contact);
 
-    /**
+    /*!
      * DataSources should emit this whenever a contact is added
      */
     void contactAdded(const QString &contactUri, const 
KPeople::AbstractContact::Ptr &contact);
 
-    /**
+    /*!
      * DataSources should emit this whenever a contact is removed and they are 
no longer able to supply up-to-date data on a contact
      */
     void contactRemoved(const QString &contactUri);
 
-    /**
+    /*!
      * Notifies that the DataSource has completed it's initial fetch.
      *
-     * @warning DataSources should use emitInitialFetchComplete() instead of 
emitting this signal
+     * \warning DataSources should use emitInitialFetchComplete() instead of 
emitting this signal
      * directly.
      *
-     * @param success True when the fetch was successful, False when an error 
occurred.
+     * \a success True when the fetch was successful, False when an error 
occurred.
      */
     void initialFetchComplete(bool success);
 
 protected Q_SLOTS:
-    /**
+    /*!
      * DataSources should call this once they have finished initial retrieval 
of all contacts from their
      * storage.
      *
      * This will emit initialFetchComplete() signal
      *
-     * @p success Whether the fetch was successful.
+     * \a success Whether the fetch was successful.
      */
     void emitInitialFetchComplete(bool success);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/backends/basepersonsdatasource.h 
new/kpeople-6.16.0/src/backends/basepersonsdatasource.h
--- old/kpeople-6.13.0/src/backends/basepersonsdatasource.h     2025-04-04 
16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/backends/basepersonsdatasource.h     2025-07-04 
17:16:30.000000000 +0200
@@ -21,33 +21,44 @@
 class BasePersonsDataSourcePrivate;
 
 // This is a QObject for KPluginFactory
+/*!
+ * \class KPeople::BasePersonsDataSource
+ * \inmodule KPeopleBackend
+ * \inheaderfile KPeopleBackend/BasePersonsDataSource
+ */
 class KPEOPLEBACKEND_EXPORT BasePersonsDataSource : public QObject
 {
     Q_OBJECT
 public:
+    /*!
+     *
+     */
     BasePersonsDataSource(QObject *parent, const QVariantList &args = 
QVariantList());
     ~BasePersonsDataSource() override;
 
-    /**
+    /*!
      * Return a ref counted AllContactMonitor which lists and monitors all 
contacts from a source
      */
     AllContactsMonitorPtr allContactsMonitor();
 
-    /**
+    /*!
      * Return a ref counted watcher for a single contact
      */
     ContactMonitorPtr contactMonitor(const QString &contactUri);
 
-    /**
+    /*!
      * Returns the ID used by this datasource.
      * i.e if the contactIDs are in the form akonadi://?item=324 this method 
should return "akonadi"
      */
     virtual QString sourcePluginId() const = 0;
 
 protected:
+    /*!
+     *
+     */
     virtual AllContactsMonitor *createAllContactsMonitor() = 0;
 
-    /**
+    /*!
      * Base classes can implement this in order to not load every contact
      * otherwise the AllContactWatcher will be used and filtered.
      */
@@ -59,13 +70,28 @@
     BasePersonsDataSourcePrivate *d_ptr;
 };
 
+/*!
+ * \class KPeople::BasePersonsDataSourceV2
+ * \inmodule KPeopleBackend
+ * \inheaderfile KPeopleBackend/BasePersonsDataSource
+ */
 class KPEOPLEBACKEND_EXPORT BasePersonsDataSourceV2 : public 
BasePersonsDataSource
 {
     Q_OBJECT
 public:
+    /*!
+     *
+     */
     BasePersonsDataSourceV2(QObject *parent, const QVariantList &args = 
QVariantList());
 
+    /*!
+     *
+     */
     virtual bool addContact(const QVariantMap &properties) = 0;
+
+    /*!
+     *
+     */
     virtual bool deleteContact(const QString &uri) = 0;
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/backends/contactmonitor.h 
new/kpeople-6.16.0/src/backends/contactmonitor.h
--- old/kpeople-6.13.0/src/backends/contactmonitor.h    2025-04-04 
16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/backends/contactmonitor.h    2025-07-04 
17:16:30.000000000 +0200
@@ -18,40 +18,47 @@
 {
 class ContactMonitorPrivate;
 
-/**
- * This class loads data for a single contact from a datasource.
+/*!
+ * \class KPeople::ContactMonitor
+ * \inmodule KPeopleBackend
+ * \inheaderfile KPeopleBackend/ContactMonitor
+ *
+ * \brief This class loads data for a single contact from a datasource.
  *
  * Datasources should subclass this and call setContact() when the contact 
loads or changes.
  * It is used for optimising performance over loading all contacts and 
filtering the results.
  * Subclasses are expected to be asynchronous in loading data.
  *
- * @since 5.8
+ * \since 5.8
  */
 class KPEOPLEBACKEND_EXPORT ContactMonitor : public QObject
 {
     Q_OBJECT
 public:
+    /*!
+     *
+     */
     ContactMonitor(const QString &contactUri);
     ~ContactMonitor() override;
 
-    /**
+    /*!
      * The ID of the contact being loaded
      */
     QString contactUri() const;
 
-    /**
+    /*!
      * The currently loaded information on this contact.
      */
     AbstractContact::Ptr contact() const;
 Q_SIGNALS:
-    /**
+    /*!
      * Emitted whenever the contact changes
      */
     void contactChanged();
 
 protected:
-    /**
-     * Sets or updates the contact and emits contactChanged
+    /*!
+     * Sets or updates the \a contact and emits contactChanged
      * Subclasses should call this when data is loaded or changes
      */
     void setContact(const AbstractContact::Ptr &contact);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/backends/kpeoplebackend.qdoc 
new/kpeople-6.16.0/src/backends/kpeoplebackend.qdoc
--- old/kpeople-6.13.0/src/backends/kpeoplebackend.qdoc 1970-01-01 
01:00:00.000000000 +0100
+++ new/kpeople-6.16.0/src/backends/kpeoplebackend.qdoc 2025-07-04 
17:16:30.000000000 +0200
@@ -0,0 +1,9 @@
+/*!
+    \module KPeopleBackend
+    \title KPeopleBackend C++ Classes
+    \ingroup modules
+    \cmakepackage KF6
+    \cmakecomponent PeopleBackend
+
+    \brief Backend support for contacts management.
+*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/backends/kpeoplebackend.qdocconf 
new/kpeople-6.16.0/src/backends/kpeoplebackend.qdocconf
--- old/kpeople-6.13.0/src/backends/kpeoplebackend.qdocconf     1970-01-01 
01:00:00.000000000 +0100
+++ new/kpeople-6.16.0/src/backends/kpeoplebackend.qdocconf     2025-07-04 
17:16:30.000000000 +0200
@@ -0,0 +1,29 @@
+include($KDE_DOCS/global/qt-module-defaults.qdocconf)
+
+project = KPeopleBackend
+description = Backend support for contacts management.
+
+documentationinheaders = true
+
+headerdirs += .
+sourcedirs += .
+
+navigation.landingpage = "KPeople"
+
+depends += qtgui
+
+qhp.projects            = KPeopleBackend
+
+qhp.KPeopleBackend.file                = kpeoplebackend.qhp
+qhp.KPeopleBackend.namespace           = org.kde.kpeoplebackend.$QT_VERSION_TAG
+qhp.KPeopleBackend.virtualFolder       = kpeoplebackend
+qhp.KPeopleBackend.indexTitle          = KPeopleBackend
+qhp.KPeopleBackend.indexRoot           =
+
+qhp.KPeopleBackend.subprojects         = classes
+qhp.KPeopleBackend.subprojects.classes.title = C++ Classes
+qhp.KPeopleBackend.subprojects.classes.indexTitle = KPeople Backend C++ Classes
+qhp.KPeopleBackend.subprojects.classes.selectors = class fake:headerfile
+qhp.KPeopleBackend.subprojects.classes.sortPages = true
+
+tagfile = kpeoplebackend.tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/declarative/avatarimageprovider.h 
new/kpeople-6.16.0/src/declarative/avatarimageprovider.h
--- old/kpeople-6.13.0/src/declarative/avatarimageprovider.h    2025-04-04 
16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/declarative/avatarimageprovider.h    2025-07-04 
17:16:30.000000000 +0200
@@ -8,8 +8,11 @@
 
 #include <QQuickImageProvider>
 
-/**
- * @brief An image provider for displaying a contact's photo
+/*!
+ * \class AvatarImageProvider
+ * \inmodule KPeopleDeclarative
+ *
+ * \brief An image provider for displaying a contact's photo.
  *
  * It is automatically available when importing the KPeople QML module.
  *
@@ -17,13 +20,13 @@
  * or from `KPeople.PersonsModel`'s `photoImageProviderUri` role.
  *
  * Example:
- * \code
+ * \qml
  * Kirigami.Avatar {
  *     source: person.photoImageProviderUri
  * }
- * \endcode
+ * \endqml
  *
- * @since 5.93.0
+ * \since 5.93.0
  */
 class AvatarImageProvider : public QQuickImageProvider
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/duplicatesfinder_p.h 
new/kpeople-6.16.0/src/duplicatesfinder_p.h
--- old/kpeople-6.13.0/src/duplicatesfinder_p.h 2025-04-04 16:02:38.000000000 
+0200
+++ new/kpeople-6.16.0/src/duplicatesfinder_p.h 2025-07-04 17:16:30.000000000 
+0200
@@ -25,7 +25,7 @@
 public:
     explicit DuplicatesFinder(PersonsModel *model, QObject *parent = nullptr);
 
-    /** Specifies a @p personUri id to look contacts for, in contrast to the 
whole contact list. */
+    /** Specifies a personUri id to look contacts for, in contrast to the 
whole contact list. */
     void setSpecificPerson(const QString &personUri);
 
     /** Returns the match results. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/global.h 
new/kpeople-6.16.0/src/global.h
--- old/kpeople-6.13.0/src/global.h     2025-04-04 16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/global.h     2025-07-04 17:16:30.000000000 +0200
@@ -13,39 +13,40 @@
 
 #include <kpeople/kpeople_export.h>
 
+/*!
+ * \namespace KPeople
+ * \inmodule KPeople
+ */
 namespace KPeople
 {
 class PersonData;
 
-/**
+/*!
  * Merge all uris into a single person.
+ *
  * Ids can be a mix of person Ids and contact IDs.
  *
- * @param uris a list of all identifiers to be merged
+ * \a uris a list of all identifiers to be merged
  *
- * @return the identifier of the new person or an empty string upon failure
+ * Returns the identifier of the new person or an empty string upon failure
  */
 KPEOPLE_EXPORT QString mergeContacts(const QStringList &uris);
 
-/**
+/*!
  * Unmerge a contact. Either remove a contact from a given person or remove a 
person
  * identified by @p uri.
  *
- * @return Whether the unmerge was successful
+ * Returns whether the unmerge was successful
  */
 KPEOPLE_EXPORT bool unmergeContact(const QString &uri);
 
-/**
+/*!
  * Return a QPixmap for a TP presence string
- *
- * @return QPixmap with the Tp presence icon
  */
 KPEOPLE_EXPORT QString iconNameForPresenceString(const QString &presenceName);
 
-/**
+/*!
  * Returns a sort priority for the given presenceName
- *
- * @return sort priority of the given presence
  */
 KPEOPLE_EXPORT int presenceSortPriority(const QString &presenceName);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/kpeople-index.qdoc 
new/kpeople-6.16.0/src/kpeople-index.qdoc
--- old/kpeople-6.13.0/src/kpeople-index.qdoc   1970-01-01 01:00:00.000000000 
+0100
+++ new/kpeople-6.16.0/src/kpeople-index.qdoc   2025-07-04 17:16:30.000000000 
+0200
@@ -0,0 +1,23 @@
+/*!
+    \page kpeople-index.html
+    \title KPeople
+
+    Provides access to all contacts and aggregates them by person.
+
+    \section1 Using the Module
+
+    \include {module-use.qdocinc} {using the c++ api}
+
+    \section2 Building with CMake
+
+    \include {module-use.qdocinc} {building with cmake} {KF6} {People} 
{KF6::People}
+
+    \section1 API Reference
+
+    \list
+        \li \l{KPeople C++ Classes}
+        \li \l{KPeopleBackend C++ Classes}
+        \li \l{KPeopleWidgets C++ Classes}
+        \li \l{KPeople QML Types}
+    \endlist
+*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/kpeople.qdoc 
new/kpeople-6.16.0/src/kpeople.qdoc
--- old/kpeople-6.13.0/src/kpeople.qdoc 1970-01-01 01:00:00.000000000 +0100
+++ new/kpeople-6.16.0/src/kpeople.qdoc 2025-07-04 17:16:30.000000000 +0200
@@ -0,0 +1,25 @@
+/*!
+    \module KPeople
+    \title KPeople C++ Classes
+    \ingroup modules
+    \cmakepackage KF6
+    \cmakecomponent People
+
+    \brief Provides access to all contacts and aggregates them by person.
+
+    KPeople offers unified access to our contacts from different sources,
+    grouping them by person while still exposing all the data.
+
+    Furthermore, KPeople will also provide facilities to integrate the data
+    provided in user interfaces by providing QML and Qt Widgets components.
+
+    The sources are plugin-based, allowing to easily extend the contacts 
collection.
+*/
+
+/*!
+    \qmlmodule org.kde.kpeople
+    \title KPeople QML Types
+    \ingroup qmlmodules
+    \brief Provides access to all contacts and aggregates them by person.
+
+*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/kpeople.qdocconf 
new/kpeople-6.16.0/src/kpeople.qdocconf
--- old/kpeople-6.13.0/src/kpeople.qdocconf     1970-01-01 01:00:00.000000000 
+0100
+++ new/kpeople-6.16.0/src/kpeople.qdocconf     2025-07-04 17:16:30.000000000 
+0200
@@ -0,0 +1,37 @@
+include($KDE_DOCS/global/qt-module-defaults.qdocconf)
+
+project = KPeople
+description = Provides access to all contacts and the people who hold them
+
+documentationinheaders = true
+
+headerdirs += .
+sourcedirs += .
+excludedirs += backends declarative widgets
+imagedirs = ../docs/pics
+
+navigation.landingpage = "KPeople"
+
+depends += kde \
+           qtgui \
+           qtsql \
+           ki18n \
+           kcoreaddons \
+           kpeoplewidgets \
+           kpeoplebackend
+
+qhp.projects            = KPeople
+
+qhp.KPeople.file                = kpeople.qhp
+qhp.KPeople.namespace           = org.kde.kpeople.$QT_VERSION_TAG
+qhp.KPeople.virtualFolder       = kpeople
+qhp.KPeople.indexTitle          = KPeople
+qhp.KPeople.indexRoot           =
+
+qhp.KPeople.subprojects         = classes
+qhp.KPeople.subprojects.classes.title = C++ Classes
+qhp.KPeople.subprojects.classes.indexTitle = KPeople C++ Classes
+qhp.KPeople.subprojects.classes.selectors = class fake:headerfile
+qhp.KPeople.subprojects.classes.sortPages = true
+
+tagfile = kpeople.tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/matchessolver_p.h 
new/kpeople-6.16.0/src/matchessolver_p.h
--- old/kpeople-6.13.0/src/matchessolver_p.h    2025-04-04 16:02:38.000000000 
+0200
+++ new/kpeople-6.16.0/src/matchessolver_p.h    2025-07-04 17:16:30.000000000 
+0200
@@ -19,31 +19,30 @@
 {
 class PersonsModel;
 
-/**
- * @brief This class is responsible for merging different persons into one
+/*
+ * This class is responsible for merging different persons into one
  *
  * One of the important tasks of KPeople is putting together different 
contacts into
  * the same person representation.
  *
- * This class gets a list of matches, usually from @a DuplicatesFinder and 
makes
+ * This class gets a list of matches, usually from DuplicatesFinder and makes
  * the needed changes to the database so that everything looks as it should.
  */
-
 class KPEOPLE_EXPORT MatchesSolver : public KJob
 {
     Q_OBJECT
 public:
-    /**
-     * Constructs a solver given the @p matches against a @p model.
+    /*!
+     * Constructs a solver given the matches against a model.
      *
-     * Note: Obviously, the @p model should be the same @p matches refers to.
+     * Note: Obviously, the model should be the same matches refers to.
      */
     explicit MatchesSolver(const QList<Match> &matches, PersonsModel *model, 
QObject *parent = nullptr);
 
-    /**
+    /*!
      * Start doing some crazy matching!
      *
-     * @see KJob::finished()
+     * \sa KJob::finished()
      */
     void start() override;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/persondata.h 
new/kpeople-6.16.0/src/persondata.h
--- old/kpeople-6.13.0/src/persondata.h 2025-04-04 16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/persondata.h 2025-07-04 17:16:30.000000000 +0200
@@ -21,32 +21,79 @@
 
 class PersonData;
 
-/**
- * @brief Allows to query the information about a given person
+/*!
+ * \qmlvaluetype personData
+ * \inqmlmodule org.kde.kpeople
+ * \nativetype KPeople::PersonData
+ *
+ * \brief Allows querying the information about a given person.
+ *
+ * PersonData exposes the information of a given person (in contrast to 
everyone
+ * available, which is done by PersonsModel).
+ * This class will provide comfortable interfaces so it can be easily adopted
+ * in any application.
+ */
+
+/*!
+ * \class KPeople::PersonData
+ * \inmodule KPeople
+ * \inheaderfile KPeople/PersonData
+ *
+ * \brief Allows querying the information about a given person.
  *
  * PersonData exposes the information of a given person (in contrast to 
everyone
  * available, which is done by PersonsModel).
  * This class will provide comfortable interfaces so it can be easily adopted
  * in any application.
  *
- * @since 5.8
+ * \since 5.8
  */
 class KPEOPLE_EXPORT PersonData : public QObject
 {
     Q_OBJECT
+
+    /*!
+     * \qmlproperty string personData::name
+     */
+
+    /*!
+     * \property KPeople::PersonData::name
+     */
     Q_PROPERTY(QString name READ name NOTIFY dataChanged)
+
+    /*!
+     * \qmlproperty image personData::photo
+     */
+
+    /*!
+     * \property KPeople::PersonData::photo
+     */
     Q_PROPERTY(QPixmap photo READ photo NOTIFY dataChanged)
+
+    /*!
+     * \qmlproperty string personData::presenceIconName
+     */
+
+    /*!
+     * \property KPeople::PersonData::presenceIconName
+     */
     Q_PROPERTY(QString presenceIconName READ presenceIconName NOTIFY 
dataChanged)
 
-    /**
-     * @returns whether setContactCustomProperty can be called on this contact
+    /*!
+     * \qmlproperty bool personData::isEditable
+     */
+
+    /*!
+     * \property KPeople::PersonData::isEditable
+     *
+     * Returns whether setContactCustomProperty can be called on this contact
      *
-     * @since 5.62
+     * \since 5.62
      */
     Q_PROPERTY(bool isEditable READ isEditable CONSTANT)
 
 public:
-    /** Creates a Person object from a given ID.
+    /*! Creates a Person object from a given ID.
      * The ID can be either a local application specific ID (such as 
akonadi://?item=15)
      * or a kpeople ID in the form kpeople://15
      */
@@ -54,76 +101,76 @@
 
     ~PersonData() override;
 
-    /**
+    /*!
      * Returns true if this PersonData is mapped to some existing contact
-     * @since 5.22
+     * \since 5.22
      */
     bool isValid() const;
 
-    /** Returns the person's id */
+    /*! Returns the person's id */
     QString personUri() const;
 
-    /**
+    /*!
      * Returns a list of contact ids that identify the PersonData instance.
      */
     QStringList contactUris() const;
 
-    /**
-     * @returns the name of the person
+    /*!
+     * Returns the name of the person
      */
     QString name() const;
 
-    /**
-     * @returns an icon name that represents the IM status of the person
+    /*!
+     * Returns an icon name that represents the IM status of the person
      */
     QString presenceIconName() const;
 
-    /**
-     * @returns a pixmap with the photo of the person, or a default one if not 
available
+    /*!
+     * Returns a pixmap with the photo of the person, or a default one if not 
available
      */
     QPixmap photo() const;
 
-    /**
-     * @returns the property for a said @p key.
+    /*!
+     * Returns the property for a said \a key.
      */
     Q_SCRIPTABLE QVariant contactCustomProperty(const QString &key) const;
 
-    /**
-     * Sends a desired @p value for the contact according to the @p key.
+    /*!
+     * Sends a desired \a value for the contact according to the \a key.
      * It's not necessarily implemented. The back-end gets to decide whether a 
property
      * can be set or not.
      *
-     * @returns whether the property value was changed
+     * Returns whether the property value was changed
      *
-     * @since 5.62
+     * \since 5.62
      */
     Q_SCRIPTABLE bool setContactCustomProperty(const QString &key, const 
QVariant &value);
 
-    /**
+    /*!
      * Returns the contact's online presence.
      */
     QString presence() const;
 
-    /**
+    /*!
      * Returns the contact's preferred email address.
      */
     QString email() const;
 
-    /**
+    /*!
      * Returns a the url of the picture that represents the contact.
      */
     QUrl pictureUrl() const;
 
-    /** Returns all groups the person is in. */
+    /*! Returns all groups the person is in. */
     QStringList groups() const;
 
-    /** Returns all e-mail addresses from the person. */
+    /*! Returns all e-mail addresses from the person. */
     QStringList allEmails() const;
 
-    /**
-     * @returns whether the contact can be edited.
+    /*!
+     * Returns whether the contact can be edited.
      *
-     * @since 5.62
+     * \since 5.62
      */
     bool isEditable() const;
 
@@ -134,7 +181,7 @@
     //     QList<PhoneNumber> phoneNumbers() const { 
createPhoneNumbers(customProperty("phoneNumbers")); };
 
 Q_SIGNALS:
-    /**
+    /*!
      * One of the contact sources has changed
      */
     void dataChanged();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/personpluginmanager.h 
new/kpeople-6.16.0/src/personpluginmanager.h
--- old/kpeople-6.13.0/src/personpluginmanager.h        2025-04-04 
16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/personpluginmanager.h        2025-07-04 
17:16:30.000000000 +0200
@@ -18,8 +18,12 @@
 class AbstractPersonAction;
 class BasePersonsDataSource;
 
-/**
-  This class allows applications to manage DataSource plugins
+/*!
+  \class KPeople::PersonPluginManager
+  \inmodule KPeople
+  \inheaderfile KPeople/PersonPluginManager
+
+  \brief This class allows applications to manage DataSource plugins.
 
   It can be useful if an application wants to use custom DataSource,
   without exposing it to other KPeople-based applications
@@ -28,46 +32,55 @@
   Another use-case is that it allows to pass custom arguments to DataSources
   (i.e. an ItemModel which will be used as a source of data)
 
-  @since 5.51
+  \since 5.51
  */
 class KPEOPLE_EXPORT PersonPluginManager
 {
 public:
-    /**
+    /*!
      * Use this if you explicitly don't want KPeople to autoload all the
      * available data source plugins.
      *
      * The default behavior is to autoload them
      */
     static void setAutoloadDataSourcePlugins(bool autoloadDataSourcePlugins);
+
+    /*!
+     *
+     */
     static QList<BasePersonsDataSource *> dataSourcePlugins();
-    /**
-     * Adds custom data source. If DataSource with such @p sourceId was 
already loaded, we override it
+
+    /*!
+     * Adds custom data source. If DataSource with such \a sourceId was 
already loaded, we override it
      *
-     * Takes ownership of the @p source
+     * Takes ownership of the \a source
      */
     static void addDataSource(const QString &sourceId, BasePersonsDataSource 
*source);
+
+    /*!
+     *
+     */
     static BasePersonsDataSource *dataSource(const QString &sourceId);
 
-    /**
+    /*!
      * Instead of loading datasources from plugins, set sources manually
      * This is for unit tests only
      */
     static void setDataSourcePlugins(const QHash<QString, 
BasePersonsDataSource *> &dataSources);
 
-    /**
-     * Creates a contact with the specified @p properties
-     * @returns if it could be done successfully
+    /*!
+     * Creates a contact with the specified \a properties
+     * Returns if it could be done successfully
      *
-     * @since 5.62
+     * \since 5.62
      */
     static bool addContact(const QVariantMap &properties);
 
-    /**
-     * Deletes a contact with the specified &p uri
-     * @returns if it could be done successfully
+    /*!
+     * Deletes a contact with the specified \a uri
+     * Returns true if the contact was deleted
      *
-     * @since 5.62
+     * \since 5.62
      */
     static bool deleteContact(const QString &uri);
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/personsmodel.h 
new/kpeople-6.16.0/src/personsmodel.h
--- old/kpeople-6.13.0/src/personsmodel.h       2025-04-04 16:02:38.000000000 
+0200
+++ new/kpeople-6.16.0/src/personsmodel.h       2025-07-04 17:16:30.000000000 
+0200
@@ -23,31 +23,84 @@
 class MetaContact;
 class PersonsModelPrivate;
 
-/**
- * This class creates a model of all known contacts from all sources
+/*!
+ * \qmlvaluetype personsModel
+ * \inqmlmodule org.kde.kpeople
+ * \nativetype KPeople::PersonsModel
+ *
+ * \brief This class creates a model of all known contacts from all sources.
+ *
+ * Contacts are represented as a tree where the top level represents a 
"person" which is an
+ * amalgamation of all the sub-contacts
+ */
+
+/*!
+ * \class KPeople::PersonsModel
+ * \inmodule KPeople
+ * \inheaderfile KPeople/PersonsModel
+ *
+ * \brief This class creates a model of all known contacts from all sources.
+ *
  * Contacts are represented as a tree where the top level represents a 
"person" which is an
  * amalgamation of all the sub-contacts
  *
- * @since 5.8
+ * \since 5.8
  */
 class KPEOPLE_EXPORT PersonsModel : public QAbstractItemModel
 {
     Q_OBJECT
-    /** specifies whether the model has already been initialized */
+
+    /*!
+     * \qmlproperty bool personsModel::isInitialized
+     */
+
+    /*!
+     * \property KPeople::PersonsModel::isInitialized
+     */
     Q_PROPERTY(bool isInitialized READ isInitialized NOTIFY modelInitialized)
+
 public:
+    /*!
+     * \enum KPeople::PersonsModel::Role
+     *
+     * \value FormattedNameRole
+     * QString best name for this person
+     *
+     * \value PhotoRole
+     * QPixmap best photo for this person
+     *
+     * \value PersonUriRole
+     * QString ID of this person
+     *
+     * \value PersonVCardRole
+     * AbstractContact::Ptr
+     *
+     * \value ContactsVCardRole
+     * AbstractContact::List (FIXME or map?)
+     *
+     * \value GroupsRole
+     * QStringList
+     *
+     * \value PhoneNumberRole
+     *
+     * \value PhotoImageProviderUri
+     * Provide a URL to use with QtQuick's Image.source, similar to the Photo 
Role. \since 5.93
+
+     * \value UserRole
+     * In case it's needed to extend, use this one to start from
+     */
     enum Role {
-        FormattedNameRole = Qt::DisplayRole, // QString best name for this 
person
-        PhotoRole = Qt::DecorationRole, // QPixmap best photo for this person
-        PersonUriRole = Qt::UserRole, // QString ID of this person
-        PersonVCardRole, // AbstractContact::Ptr
-        ContactsVCardRole, // AbstractContact::List (FIXME or map?)
+        FormattedNameRole = Qt::DisplayRole,
+        PhotoRole = Qt::DecorationRole,
+        PersonUriRole = Qt::UserRole,
+        PersonVCardRole,
+        ContactsVCardRole,
 
-        GroupsRole, /// groups QStringList
+        GroupsRole,
         PhoneNumberRole,
-        PhotoImageProviderUri, ///< Provide a URL to use with QtQuick's 
Image.source, similar to the Photo Role. @since 5.93
+        PhotoImageProviderUri,
 
-        UserRole = Qt::UserRole + 0x1000, ///< in case it's needed to extend, 
use this one to start from
+        UserRole = Qt::UserRole + 0x1000,
     };
     Q_ENUM(Role)
 
@@ -62,24 +115,24 @@
     int rowCount(const QModelIndex &parent = QModelIndex()) const override;
     QHash<int, QByteArray> roleNames() const override;
 
-    /** @returns the index for a given @p personUri */
+    /*! Returns the index for a given \a personUri */
     QModelIndex indexForPersonUri(const QString &personUri) const;
 
-    /** Returns if all the backends have been initialized yet. */
+    /*! Returns if all the backends have been initialized yet. */
     bool isInitialized() const;
 
-    /** Helper class to ease model access through QML */
+    /*! Helper class to ease model access through QML */
     Q_SCRIPTABLE QVariant get(int row, int role);
 
-    /**
+    /*!
      * Makes it possible to access custom properties that are not available to 
the model
      *
-     * @returns the property for the contact at @p index defined by the @p key
+     * Returns the property for the contact at \a index defined by the \a key
      */
     QVariant contactCustomProperty(const QModelIndex &index, const QString 
&key) const;
 
 Q_SIGNALS:
-    /** Will emit when the model is finally initialized. @p success will 
specify if it succeeded */
+    /*! Will emit when the model is finally initialized. \a success will 
specify if it succeeded */
     void modelInitialized(bool success);
 
 private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/personssortfilterproxymodel.h 
new/kpeople-6.16.0/src/personssortfilterproxymodel.h
--- old/kpeople-6.13.0/src/personssortfilterproxymodel.h        2025-04-04 
16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/personssortfilterproxymodel.h        2025-07-04 
17:16:30.000000000 +0200
@@ -15,20 +15,43 @@
 {
 class PersonsSortFilterProxyModelPrivate;
 
-/**
- * Helps filtering and sorting PersonsModel
+/*!
+ * \qmltype personsSortFilterProxyModule
+ * \inqmlmodule org.kde.kpeople
+ * \nativetype KPeople::PersonsSortFilterProxyModel
+ *
+ * \brief Helps filtering and sorting PersonsModel.
+ *
+ * Especially useful for creating interfaces around specific properties rather
+ * than the complete set as a whole.
+ */
+
+/*!
+ * \class KPeople::PersonsSortFilterProxyModel
+ * \inmodule KPeople
+ * \inheaderfile KPeople/PersonsSortFilterProxyModel
+ *
+ * \brief Helps filtering and sorting PersonsModel.
  *
  * Especially useful for creating interfaces around specific properties rather
  * than the complete set as a whole.
  *
- * @sa PersonsModel
- * @since 5.12
+ * \sa PersonsModel
+ * \since 5.12
  */
 class KPEOPLE_EXPORT PersonsSortFilterProxyModel : public QSortFilterProxyModel
 {
     Q_OBJECT
-    /** Specifies the properties that should be provided by the contact for 
the contact to be shown. */
+
+    /*!
+     * \qmlproperty list<string> 
personsSortFilterProxyModule::requiredProperties
+     */
+
+    /*!
+     * \property KPeople::PersonsSortFilterProxyModel::requiredProperties
+     */
     Q_PROPERTY(QStringList requiredProperties READ requiredProperties WRITE 
setRequiredProperties)
+
 public:
     explicit PersonsSortFilterProxyModel(QObject *parent = nullptr);
     ~PersonsSortFilterProxyModel() override;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/widgets/CMakeLists.txt 
new/kpeople-6.16.0/src/widgets/CMakeLists.txt
--- old/kpeople-6.13.0/src/widgets/CMakeLists.txt       2025-04-04 
16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/widgets/CMakeLists.txt       2025-07-04 
17:16:30.000000000 +0200
@@ -83,5 +83,4 @@
   DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KPeople/kpeople/widgets COMPONENT 
Devel
 )
 
-# make available to ecm_add_qch in parent folder
-set(KPeopleWidgets_QCH_SOURCES ${KPeopleWidgets_HEADERS} PARENT_SCOPE)
+ecm_generate_qdoc(KF6PeopleWidgets kpeoplewidgets.qdocconf)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/widgets/kpeoplewidgets.qdoc 
new/kpeople-6.16.0/src/widgets/kpeoplewidgets.qdoc
--- old/kpeople-6.13.0/src/widgets/kpeoplewidgets.qdoc  1970-01-01 
01:00:00.000000000 +0100
+++ new/kpeople-6.16.0/src/widgets/kpeoplewidgets.qdoc  2025-07-04 
17:16:30.000000000 +0200
@@ -0,0 +1,9 @@
+/*!
+    \module KPeopleWidgets
+    \title KPeopleWidgets C++ Classes
+    \ingroup modules
+    \cmakepackage KF6
+    \cmakecomponent PeopleWidgets
+
+    \brief Provides UX widgets for editing contacts.
+*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/widgets/kpeoplewidgets.qdocconf 
new/kpeople-6.16.0/src/widgets/kpeoplewidgets.qdocconf
--- old/kpeople-6.13.0/src/widgets/kpeoplewidgets.qdocconf      1970-01-01 
01:00:00.000000000 +0100
+++ new/kpeople-6.16.0/src/widgets/kpeoplewidgets.qdocconf      2025-07-04 
17:16:30.000000000 +0200
@@ -0,0 +1,35 @@
+include($KDE_DOCS/global/qt-module-defaults.qdocconf)
+
+project = KPeopleWidgets
+description = Provides UX widgets for editing contacts.
+
+documentationinheaders = true
+
+headerdirs += .
+sourcedirs += .
+
+navigation.landingpage = "KPeople"
+
+depends += kde \
+           qtwidgets \
+           kcoreaddons \
+           kpeople \
+           kpeoplebackend \
+           kpeoplewidgets \
+           kwidgetsaddons
+
+qhp.projects            = KPeopleWidgets
+
+qhp.KPeopleWidgets.file                = kpeoplewidgets.qhp
+qhp.KPeopleWidgets.namespace           = org.kde.kpeoplewidgets.$QT_VERSION_TAG
+qhp.KPeopleWidgets.virtualFolder       = kpeoplewidgets
+qhp.KPeopleWidgets.indexTitle          = KPeople Widgets
+qhp.KPeopleWidgets.indexRoot           =
+
+qhp.KPeopleWidgets.subprojects         = classes
+qhp.KPeopleWidgets.subprojects.classes.title = C++ Classes
+qhp.KPeopleWidgets.subprojects.classes.indexTitle = KPeople Widgets C++ Classes
+qhp.KPeopleWidgets.subprojects.classes.selectors = class fake:headerfile
+qhp.KPeopleWidgets.subprojects.classes.sortPages = true
+
+tagfile = kpeoplewidgets.tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/widgets/mergedialog.h 
new/kpeople-6.16.0/src/widgets/mergedialog.h
--- old/kpeople-6.13.0/src/widgets/mergedialog.h        2025-04-04 
16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/widgets/mergedialog.h        2025-07-04 
17:16:30.000000000 +0200
@@ -21,20 +21,32 @@
 class PersonsModel;
 class Match;
 
-/**
- * The merge dialog will be used to provide a GUI to attempt to
+/*!
+ * \class KPeople::MergeDialog
+ * \inmodule KPeopleWidgets
+ * \inheaderfile KPeople/Widgets/MergeDialog
+ *
+ * \brief The merge dialog will be used to provide a GUI to attempt to
  * figure out what contacts should be merged.
  *
- * By properly mergeing contacts, the user will end up with having more
+ * By properly merging contacts, the user will end up with having more
  * information on each person.
  *
- * @since 5.8
+ * \since 5.8
  */
 class KPEOPLEWIDGETS_EXPORT MergeDialog : public QDialog
 {
     Q_OBJECT
 
 public:
+    /*!
+     * \enum KPeople::MergeDialog::Role
+     *
+     * \value NameRole
+     * \value UriRole
+     * \value PixmapRole
+     * \value MergeReasonRole
+     */
     enum Role {
         NameRole = Qt::DisplayRole,
         UriRole = Qt::UserRole + 1,
@@ -42,11 +54,17 @@
         MergeReasonRole,
     };
 
+    /*!
+     *
+     */
     explicit MergeDialog(QWidget *parent = nullptr);
     ~MergeDialog() override;
 
-    /**
+    /*!
      * Specifies which PersonsModel will be used to look for duplicates.
+     *
+     * \a model is the PersonsModel to use
+     *
      */
     void setPersonsModel(PersonsModel *model);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kpeople-6.13.0/src/widgets/persondetailsview.h 
new/kpeople-6.16.0/src/widgets/persondetailsview.h
--- old/kpeople-6.13.0/src/widgets/persondetailsview.h  2025-04-04 
16:02:38.000000000 +0200
+++ new/kpeople-6.16.0/src/widgets/persondetailsview.h  2025-07-04 
17:16:30.000000000 +0200
@@ -20,11 +20,15 @@
 {
 class PersonDetailsViewPrivate;
 
-/**
- * Use PersonDetailsView to integrate a person's information
+/*!
+ * \class KPeople::PersonDetailsView
+ * \inmodule KPeopleWidgets
+ * \inheaderfile KPeople/Widgets/PersonDetailsView
+ *
+ * \brief Use PersonDetailsView to integrate a person's information
  * in the GUI.
  *
- * @since 5.8
+ * \since 5.8
  */
 class KPEOPLEWIDGETS_EXPORT PersonDetailsView : public QWidget
 {
@@ -34,7 +38,7 @@
     ~PersonDetailsView() override;
 
 public Q_SLOTS:
-    /** Specifies the @p person for which the details will be displayed. */
+    /*! Specifies the \a person for which the details will be displayed. */
     void setPerson(PersonData *person);
     //     void setPersonsModel(PersonsModel *model);
 

Reply via email to