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);