Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kontactinterface for 
openSUSE:Factory checked in at 2021-04-24 23:07:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kontactinterface (Old)
 and      /work/SRC/openSUSE:Factory/.kontactinterface.new.12324 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kontactinterface"

Sat Apr 24 23:07:48 2021 rev:67 rq:887707 version:21.04.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kontactinterface/kontactinterface.changes        
2021-03-08 15:13:49.849782014 +0100
+++ 
/work/SRC/openSUSE:Factory/.kontactinterface.new.12324/kontactinterface.changes 
    2021-04-24 23:08:40.331354001 +0200
@@ -1,0 +2,29 @@
+Fri Apr 16 16:12:26 UTC 2021 - Christophe Giboudeaux <[email protected]>
+
+- Update to 21.04.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/gear/21.04
+- No code change since 21.03.90
+
+-------------------------------------------------------------------
+Fri Apr  9 17:40:52 UTC 2021 - Christophe Giboudeaux <[email protected]>
+
+- Update to 21.03.90
+  * New feature release
+- No code change since 21.03.80
+
+-------------------------------------------------------------------
+Sun Mar 21 13:28:41 UTC 2021 - Christophe Giboudeaux <[email protected]>
+
+- Update to 21.03.80
+  * New feature release
+- Changes since 20.12.3:
+  * Use git commit hook
+  * run git clang-format
+  * Add explicit/override remove not necessary Q_REQUIRED_RESULT
+  * Properly include QStringList . Forward declaring it breaks with Qt6
+  * Clean includes
+  * Remove unused include
+
+-------------------------------------------------------------------

Old:
----
  kontactinterface-20.12.3.tar.xz
  kontactinterface-20.12.3.tar.xz.sig

New:
----
  kontactinterface-21.04.0.tar.xz
  kontactinterface-21.04.0.tar.xz.sig

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

Other differences:
------------------
++++++ kontactinterface.spec ++++++
--- /var/tmp/diff_new_pack.ChBhC5/_old  2021-04-24 23:08:40.751354596 +0200
+++ /var/tmp/diff_new_pack.ChBhC5/_new  2021-04-24 23:08:40.755354601 +0200
@@ -16,19 +16,23 @@
 #
 
 
-%define kf5_version 5.75.0
+%define kf5_version 5.79.0
 # Latest stable Applications (e.g. 17.08 in KA, but 17.11.80 in KUA)
 %{!?_kapp_version: %define _kapp_version %(echo %{version}| awk -F. '{print 
$1"."$2}')}
 %bcond_without lang
 Name:           kontactinterface
-Version:        20.12.3
+Version:        21.04.0
 Release:        0
 Summary:        KDE PIM Libraries: Interface to Contacts
 License:        LGPL-2.1-or-later
 Group:          System/GUI/KDE
 URL:            https://www.kde.org
 Source:         
https://download.kde.org/stable/release-service/%{version}/src/%{name}-%{version}.tar.xz
-BuildRequires:  extra-cmake-modules >= 5.19.0
+%if %{with lang}
+Source1:        
https://download.kde.org/stable/release-service/%{version}/src/%{name}-%{version}.tar.xz.sig
+Source2:        applications.keyring
+%endif
+BuildRequires:  extra-cmake-modules
 BuildRequires:  kf5-filesystem
 BuildRequires:  cmake(KF5CoreAddons) >= %{kf5_version}
 BuildRequires:  cmake(KF5I18n) >= %{kf5_version}
@@ -36,10 +40,6 @@
 BuildRequires:  cmake(KF5Parts) >= %{kf5_version}
 BuildRequires:  cmake(KF5WindowSystem) >= %{kf5_version}
 BuildRequires:  cmake(KF5XmlGui) >= %{kf5_version}
-%if %{with lang}
-Source1:        
https://download.kde.org/stable/release-service/%{version}/src/%{name}-%{version}.tar.xz.sig
-Source2:        applications.keyring
-%endif
 
 %description
 This package contains additional libraries for KDE PIM applications.
@@ -66,7 +66,7 @@
 %lang_package
 
 %prep
-%setup -q -n kontactinterface-%{version}
+%autosetup -p1
 
 %build
   %cmake_kf5 -d build -- -DBUILD_TESTING=OFF 
-DKF5_INCLUDE_INSTALL_DIR=%{_kf5_includedir}
@@ -83,10 +83,10 @@
 
 %files -n libKF5KontactInterface5
 %license LICENSES/*
-%{_kf5_libdir}/libKF5KontactInterface.so.*
-%{_kf5_servicetypesdir}/kontactplugin.desktop
 %{_kf5_debugdir}/*.categories
 %{_kf5_debugdir}/*.renamecategories
+%{_kf5_libdir}/libKF5KontactInterface.so.*
+%{_kf5_servicetypesdir}/kontactplugin.desktop
 
 %files devel
 %license LICENSES/*


++++++ kontactinterface-20.12.3.tar.xz -> kontactinterface-21.04.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/.clang-format 
new/kontactinterface-21.04.0/.clang-format
--- old/kontactinterface-20.12.3/.clang-format  1970-01-01 01:00:00.000000000 
+0100
+++ new/kontactinterface-21.04.0/.clang-format  2021-04-10 07:59:39.000000000 
+0200
@@ -0,0 +1,76 @@
+---
+# SPDX-FileCopyrightText: 2019 Christoph Cullmann <[email protected]>
+# SPDX-FileCopyrightText: 2019 Gernot Gebhard <[email protected]>
+#
+# SPDX-License-Identifier: MIT
+
+# Style for C++
+Language: Cpp
+
+# base is WebKit coding style: https://webkit.org/code-style-guidelines/
+# below are only things set that diverge from this style!
+BasedOnStyle: WebKit
+
+# enforce C++11 (e.g. for std::vector<std::vector<lala>>
+Standard: Cpp11
+
+# 4 spaces indent
+TabWidth: 4
+
+# 2 * 80 wide lines
+ColumnLimit: 160
+
+# sort includes inside line separated groups
+SortIncludes: true
+
+# break before braces on function, namespace and class definitions.
+BreakBeforeBraces: Linux
+
+# CrlInstruction *a;
+PointerAlignment: Right
+
+# horizontally aligns arguments after an open bracket.
+AlignAfterOpenBracket: Align
+
+# don't move all parameters to new line
+AllowAllParametersOfDeclarationOnNextLine: false
+
+# no single line functions
+AllowShortFunctionsOnASingleLine: None
+
+# always break before you encounter multi line strings
+AlwaysBreakBeforeMultilineStrings: true
+
+# don't move arguments to own lines if they are not all on the same
+BinPackArguments: false
+
+# don't move parameters to own lines if they are not all on the same
+BinPackParameters: false
+
+# In case we have an if statement whith multiple lines the operator should be 
at the beginning of the line
+# but we do not want to break assignments
+BreakBeforeBinaryOperators: NonAssignment
+
+# format C++11 braced lists like function calls
+Cpp11BracedListStyle: true
+
+# do not put a space before C++11 braced lists
+SpaceBeforeCpp11BracedList: false
+
+# remove empty lines
+KeepEmptyLinesAtTheStartOfBlocks: false
+
+# no namespace indentation to keep indent level low
+NamespaceIndentation: None
+
+# we use template< without space.
+SpaceAfterTemplateKeyword: false
+
+# macros for which the opening brace stays attached.
+ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH, forever, Q_FOREVER, 
QBENCHMARK, QBENCHMARK_ONCE ]
+
+# keep lambda formatting multi-line if not empty
+AllowShortLambdasOnASingleLine: Empty
+
+# We do not want clang-format to put all arguments on a new line
+AllowAllArgumentsOnNextLine: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/.git-blame-ignore-revs 
new/kontactinterface-21.04.0/.git-blame-ignore-revs
--- old/kontactinterface-20.12.3/.git-blame-ignore-revs 1970-01-01 
01:00:00.000000000 +0100
+++ new/kontactinterface-21.04.0/.git-blame-ignore-revs 2021-04-10 
07:59:39.000000000 +0200
@@ -0,0 +1,2 @@
+# clang-format
+be4b7559cb70a86db937f692b29f3c90c3ef3977
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/.gitignore 
new/kontactinterface-21.04.0/.gitignore
--- old/kontactinterface-20.12.3/.gitignore     2021-02-04 13:58:15.000000000 
+0100
+++ new/kontactinterface-21.04.0/.gitignore     2021-04-10 07:59:39.000000000 
+0200
@@ -18,3 +18,4 @@
 .cmake/
 CMakeLists.txt.user*
 *.unc-backup*
+compile_commands.json
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/.gitlab-ci.yml 
new/kontactinterface-21.04.0/.gitlab-ci.yml
--- old/kontactinterface-20.12.3/.gitlab-ci.yml 2021-02-04 13:58:15.000000000 
+0100
+++ new/kontactinterface-21.04.0/.gitlab-ci.yml 2021-04-10 07:59:39.000000000 
+0200
@@ -1,10 +1,14 @@
+# SPDX-FileCopyrightText: 2020-2021 Laurent Montel <[email protected]>
+# SPDX-FileCopyrightText: 2021 Laurent Montel <[email protected]>
+# SPDX-License-Identifier: CC0-1.0
+
 include:
   - https://invent.kde.org/sysadmin/ci-tooling/raw/master/invent/ci-before.yml
   - 
https://invent.kde.org/sysadmin/ci-tooling/raw/master/invent/ci-applications-linux.yml
 
 build_clazy_clang_tidy:
   stage: build
-  image: kdeorg/ci-suse-qt514
+  image: kdeorg/ci-suse-qt515
   extends: .linux
   #only:
   #  - merge_requests
@@ -26,5 +30,5 @@
     - python3 -u $CI_TOOLING/helpers/compile-build.py --product $PRODUCT 
--project $PROJECT --branchGroup $BRANCH_GROUP --platform $PLATFORM 
--usingInstall $INSTALL_PREFIX
     - cd build && run-clang-tidy
   variables:
-    PLATFORM: SUSEQt5.14
+    PLATFORM: SUSEQt5.15
     BRANCH_GROUP: kf5-qt5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/CMakeLists.txt 
new/kontactinterface-21.04.0/CMakeLists.txt
--- old/kontactinterface-20.12.3/CMakeLists.txt 2021-03-02 01:51:29.000000000 
+0100
+++ new/kontactinterface-21.04.0/CMakeLists.txt 2021-04-10 07:59:39.000000000 
+0200
@@ -1,10 +1,10 @@
-cmake_minimum_required(VERSION 3.5)
-set(PIM_VERSION "5.16.3")
+cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
+set(PIM_VERSION "5.17.0")
 
 project(KontactInterface VERSION ${PIM_VERSION})
 
 # ECM setup
-set(KF5_MIN_VERSION "5.75.0")
+set(KF5_MIN_VERSION "5.79.0")
 
 find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED)
 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
@@ -19,6 +19,7 @@
 
 include(ECMSetupVersion)
 include(FeatureSummary)
+include(KDEGitCommitHooks)
 include(ECMQtDeclareLoggingCategory)
 include(ECMSetupQtPluginMacroNames)
 
@@ -90,12 +91,22 @@
 add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f00)
 add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x054C00)
 
-add_definitions(-DQT_NO_FOREACH)
-add_definitions(-DQT_NO_KEYWORDS)
+
+option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile 
time)" FALSE)
+
+set(COMPILE_WITH_UNITY_CMAKE_SUPPORT false)
+if (USE_UNITY_CMAKE_SUPPORT)
+    if(${CMAKE_VERSION} VERSION_LESS "3.16.0")
+        message(STATUS "CMAKE version is less than 3.16.0 . We can't use cmake 
unify build support")
+    else()
+        set(COMPILE_WITH_UNITY_CMAKE_SUPPORT true)
+    endif()
+endif()
 
 add_subdirectory(src)
 
 
+kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
+ki18n_install(po)
 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
-ki18n_install(po)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/CMakePresets.json 
new/kontactinterface-21.04.0/CMakePresets.json
--- old/kontactinterface-20.12.3/CMakePresets.json      1970-01-01 
01:00:00.000000000 +0100
+++ new/kontactinterface-21.04.0/CMakePresets.json      2021-04-10 
07:59:39.000000000 +0200
@@ -0,0 +1,56 @@
+{
+    "version": 1,
+    "configurePresets": [
+        {
+            "name": "dev",
+            "displayName": "Build as debug",
+            "generator": "Ninja",
+            "binaryDir": "${sourceDir}/build",
+            "cacheVariables": {
+                "CMAKE_BUILD_TYPE": "Debug",
+               "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
+            }
+        },
+        {
+            "name": "asan",
+            "displayName": "Build with Asan support.",
+            "generator": "Ninja",
+            "binaryDir": "${sourceDir}/build-asan",
+            "cacheVariables": {
+                "CMAKE_BUILD_TYPE": "Debug",
+                "ECM_ENABLE_SANITIZERS" : "'address;undefined'",
+               "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
+            }
+        },
+        {
+            "name": "unity",
+            "displayName": "Build with CMake unity support.",
+            "generator": "Ninja",
+            "binaryDir": "${sourceDir}/build-unity",
+            "cacheVariables": {
+                "CMAKE_BUILD_TYPE": "Debug",
+               "USE_UNITY_CMAKE_SUPPORT": "ON",
+               "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
+            }
+        },
+        {
+            "name": "release",
+            "displayName": "Build as release mode.",
+            "generator": "Ninja",
+            "binaryDir": "${sourceDir}/build-release",
+            "cacheVariables": {
+                "CMAKE_BUILD_TYPE": "Release"
+            }
+        },
+        {
+            "name": "profile",
+            "displayName": "profile",
+            "generator": "Ninja",
+            "binaryDir": "${sourceDir}/build-profile",
+            "cacheVariables": {
+                "CMAKE_BUILD_TYPE": "RelWithDebInfo",
+               "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
+            }
+        }
+    ]
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/CMakePresets.json.license 
new/kontactinterface-21.04.0/CMakePresets.json.license
--- old/kontactinterface-20.12.3/CMakePresets.json.license      1970-01-01 
01:00:00.000000000 +0100
+++ new/kontactinterface-21.04.0/CMakePresets.json.license      2021-04-10 
07:59:39.000000000 +0200
@@ -0,0 +1,2 @@
+# SPDX-FileCopyrightText: 2021 Laurent Montel <[email protected]>
+# SPDX-License-Identifier: BSD-3-Clause
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/LICENSES/CC0-1.0.txt 
new/kontactinterface-21.04.0/LICENSES/CC0-1.0.txt
--- old/kontactinterface-20.12.3/LICENSES/CC0-1.0.txt   1970-01-01 
01:00:00.000000000 +0100
+++ new/kontactinterface-21.04.0/LICENSES/CC0-1.0.txt   2021-04-10 
07:59:39.000000000 +0200
@@ -0,0 +1,119 @@
+Creative Commons Legal Code
+
+CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES
+NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE
+AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION
+ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE
+OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS
+LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE 
INFORMATION
+OR WORKS PROVIDED HEREUNDER.
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer 
exclusive
+Copyright and Related Rights (defined below) upon the creator and subsequent
+owner(s) (each and all, an "owner") of an original work of authorship and/or
+a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for the
+purpose of contributing to a commons of creative, cultural and scientific
+works ("Commons") that the public can reliably and without fear of later claims
+of infringement build upon, modify, incorporate in other works, reuse and
+redistribute as freely as possible in any form whatsoever and for any purposes,
+including without limitation commercial purposes. These owners may contribute
+to the Commons to promote the ideal of a free culture and the further 
production
+of creative, cultural and scientific works, or to gain reputation or greater
+distribution for their Work in part through the use and efforts of others.
+
+For these and/or other purposes and motivations, and without any expectation
+of additional consideration or compensation, the person associating CC0 with
+a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
+and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
+and publicly distribute the Work under its terms, with knowledge of his or
+her Copyright and Related Rights in the Work and the meaning and intended
+legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be 
protected
+by copyright and related or neighboring rights ("Copyright and Related 
Rights").
+Copyright and Related Rights include, but are not limited to, the following:
+
+i. the right to reproduce, adapt, distribute, perform, display, communicate,
+and translate a Work;
+
+      ii. moral rights retained by the original author(s) and/or performer(s);
+
+iii. publicity and privacy rights pertaining to a person's image or likeness
+depicted in a Work;
+
+iv. rights protecting against unfair competition in regards to a Work, subject
+to the limitations in paragraph 4(a), below;
+
+v. rights protecting the extraction, dissemination, use and reuse of data
+in a Work;
+
+vi. database rights (such as those arising under Directive 96/9/EC of the
+European Parliament and of the Council of 11 March 1996 on the legal protection
+of databases, and under any national implementation thereof, including any
+amended or successor version of such directive); and
+
+vii. other similar, equivalent or corresponding rights throughout the world
+based on applicable law or treaty, and any national implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention of,
+applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
+unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
+and Related Rights and associated claims and causes of action, whether now
+known or unknown (including existing as well as future claims and causes of
+action), in the Work (i) in all territories worldwide, (ii) for the maximum
+duration provided by applicable law or treaty (including future time 
extensions),
+(iii) in any current or future medium and for any number of copies, and (iv)
+for any purpose whatsoever, including without limitation commercial, 
advertising
+or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the
+benefit of each member of the public at large and to the detriment of 
Affirmer's
+heirs and successors, fully intending that such Waiver shall not be subject
+to revocation, rescission, cancellation, termination, or any other legal or
+equitable action to disrupt the quiet enjoyment of the Work by the public
+as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason be
+judged legally invalid or ineffective under applicable law, then the Waiver
+shall be preserved to the maximum extent permitted taking into account 
Affirmer's
+express Statement of Purpose. In addition, to the extent the Waiver is so
+judged Affirmer hereby grants to each affected person a royalty-free, non
+transferable, non sublicensable, non exclusive, irrevocable and unconditional
+license to exercise Affirmer's Copyright and Related Rights in the Work (i)
+in all territories worldwide, (ii) for the maximum duration provided by 
applicable
+law or treaty (including future time extensions), (iii) in any current or
+future medium and for any number of copies, and (iv) for any purpose 
whatsoever,
+including without limitation commercial, advertising or promotional purposes
+(the "License"). The License shall be deemed effective as of the date CC0
+was applied by Affirmer to the Work. Should any part of the License for any
+reason be judged legally invalid or ineffective under applicable law, such
+partial invalidity or ineffectiveness shall not invalidate the remainder of
+the License, and in such case Affirmer hereby affirms that he or she will
+not (i) exercise any of his or her remaining Copyright and Related Rights
+in the Work or (ii) assert any associated claims and causes of action with
+respect to the Work, in either case contrary to Affirmer's express Statement
+of Purpose.
+
+   4. Limitations and Disclaimers.
+
+a. No trademark or patent rights held by Affirmer are waived, abandoned, 
surrendered,
+licensed or otherwise affected by this document.
+
+b. Affirmer offers the Work as-is and makes no representations or warranties
+of any kind concerning the Work, express, implied, statutory or otherwise,
+including without limitation warranties of title, merchantability, fitness
+for a particular purpose, non infringement, or the absence of latent or other
+defects, accuracy, or the present or absence of errors, whether or not 
discoverable,
+all to the greatest extent permissible under applicable law.
+
+c. Affirmer disclaims responsibility for clearing rights of other persons
+that may apply to the Work or any use thereof, including without limitation
+any person's Copyright and Related Rights in the Work. Further, Affirmer 
disclaims
+responsibility for obtaining any necessary consents, permissions or other
+rights required for any use of the Work.
+
+d. Affirmer understands and acknowledges that Creative Commons is not a party
+to this document and has no duty or obligation with respect to this CC0 or
+use of the Work.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/po/uk/kontactinterfaces5.po 
new/kontactinterface-21.04.0/po/uk/kontactinterfaces5.po
--- old/kontactinterface-20.12.3/po/uk/kontactinterfaces5.po    2021-03-02 
01:51:29.000000000 +0100
+++ new/kontactinterface-21.04.0/po/uk/kontactinterfaces5.po    2021-04-16 
10:45:35.000000000 +0200
@@ -1,5 +1,5 @@
 # Translation of kontactinterfaces5.po to Ukrainian
-# Copyright (C) 2014 This_file_is_part_of_KDE
+# Copyright (C) 2018 This_file_is_part_of_KDE
 # This file is distributed under the license LGPL version 2.1 or
 # version 3 or later versions approved by the membership of KDE e.V.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kontactinterface-20.12.3/po/zh_CN/kontactinterfaces5.po 
new/kontactinterface-21.04.0/po/zh_CN/kontactinterfaces5.po
--- old/kontactinterface-20.12.3/po/zh_CN/kontactinterfaces5.po 2021-03-02 
01:51:29.000000000 +0100
+++ new/kontactinterface-21.04.0/po/zh_CN/kontactinterfaces5.po 2021-04-16 
10:45:35.000000000 +0200
@@ -7,7 +7,7 @@
 "Project-Id-Version: kdeorg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2019-05-20 03:17+0200\n"
-"PO-Revision-Date: 2021-02-04 12:01\n"
+"PO-Revision-Date: 2021-03-27 17:31\n"
 "Last-Translator: \n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/sanitizers.supp 
new/kontactinterface-21.04.0/sanitizers.supp
--- old/kontactinterface-20.12.3/sanitizers.supp        1970-01-01 
01:00:00.000000000 +0100
+++ new/kontactinterface-21.04.0/sanitizers.supp        2021-04-10 
07:59:39.000000000 +0200
@@ -0,0 +1,14 @@
+# Suppression file for ASAN/LSAN
+
+leak:libspeechd
+leak:getdelim
+leak:g_malloc
+leak:libfontconfig
+leak:libdbus
+leak:QEasingCurve::
+leak:QtSharedPointer::ExternalRefCountData::getAndRef
+leak:QArrayData::allocate
+leak:QObject::QObject
+leak:QObjectPrivate::addConnection
+leak:QObjectPrivate::connectImpl
+leak:QPropertyAnimation::QPropertyAnimation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/src/CMakeLists.txt 
new/kontactinterface-21.04.0/src/CMakeLists.txt
--- old/kontactinterface-20.12.3/src/CMakeLists.txt     2021-02-04 
13:58:15.000000000 +0100
+++ new/kontactinterface-21.04.0/src/CMakeLists.txt     2021-04-10 
07:59:39.000000000 +0200
@@ -11,6 +11,9 @@
         DESCRIPTION "kontactinterface (pim lib)" EXPORT KONTACTINTERFACE)
 
 add_library(KF5KontactInterface ${kontactinterface_LIB_SRCS})
+if (COMPILE_WITH_UNITY_CMAKE_SUPPORT)
+    set_target_properties(KF5KontactInterface PROPERTIES UNITY_BUILD ON)
+endif()
 
 generate_export_header(KF5KontactInterface BASE_NAME kontactinterface)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/src/core.cpp 
new/kontactinterface-21.04.0/src/core.cpp
--- old/kontactinterface-20.12.3/src/core.cpp   2021-02-04 13:58:15.000000000 
+0100
+++ new/kontactinterface-21.04.0/src/core.cpp   2021-04-10 07:59:39.000000000 
+0200
@@ -37,16 +37,20 @@
 };
 
 Core::Private::Private(Core *qq)
-    : q(qq), mLastDate(QDate::currentDate())
+    : q(qq)
+    , mLastDate(QDate::currentDate())
 {
 }
 //@endcond
 
 Core::Core(QWidget *parent, Qt::WindowFlags f)
-    : KParts::MainWindow(parent, f), d(new Private(this))
+    : KParts::MainWindow(parent, f)
+    , d(new Private(this))
 {
     QTimer *timer = new QTimer(this);
-    connect(timer, &QTimer::timeout, this, [this]() { d->checkNewDay(); });
+    connect(timer, &QTimer::timeout, this, [this]() {
+        d->checkNewDay();
+    });
     timer->start(1000 * 60);
 }
 
@@ -77,8 +81,9 @@
 
     if (part) {
         d->mParts.insert(libname, part);
-        QObject::connect(part, &KParts::Part::destroyed,
-                         this, [this](QObject* obj) { 
d->slotPartDestroyed(obj);});
+        QObject::connect(part, &KParts::Part::destroyed, this, [this](QObject 
*obj) {
+            d->slotPartDestroyed(obj);
+        });
     } else {
         d->lastErrorMessage = loader.errorString();
         qCWarning(KONTACTINTERFACE_LOG) << d->lastErrorMessage;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/src/core.h 
new/kontactinterface-21.04.0/src/core.h
--- old/kontactinterface-20.12.3/src/core.h     2021-02-04 13:58:15.000000000 
+0100
+++ new/kontactinterface-21.04.0/src/core.h     2021-04-10 07:59:39.000000000 
+0200
@@ -17,7 +17,6 @@
 
 namespace KontactInterface
 {
-
 class Plugin;
 
 /**
@@ -104,4 +103,3 @@
 }
 
 #endif
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/src/kontactplugin.desktop 
new/kontactinterface-21.04.0/src/kontactplugin.desktop
--- old/kontactinterface-20.12.3/src/kontactplugin.desktop      2021-02-04 
13:58:15.000000000 +0100
+++ new/kontactinterface-21.04.0/src/kontactplugin.desktop      2021-04-10 
07:59:39.000000000 +0200
@@ -4,6 +4,7 @@
 Name=Kontact Plugin
 Name[ar]=?????????? ??????????????????
 Name[az]=Kontakt Qo??mas??
+Name[bg]=?????????????????? Kontact
 Name[bs]=Priklju??ak za kontakt
 Name[ca]=Connector per al Kontact
 Name[ca@valencia]=Connector per al Kontact
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kontactinterface-20.12.3/src/pimuniqueapplication.cpp 
new/kontactinterface-21.04.0/src/pimuniqueapplication.cpp
--- old/kontactinterface-20.12.3/src/pimuniqueapplication.cpp   2021-02-04 
13:58:15.000000000 +0100
+++ new/kontactinterface-21.04.0/src/pimuniqueapplication.cpp   2021-04-10 
07:59:39.000000000 +0200
@@ -5,28 +5,27 @@
    SPDX-License-Identifier: LGPL-2.0-only OR LGPL-3.0-only OR 
LicenseRef-KDE-Accepted-LGPL
 */
 
-#include "config-kontactinterface.h"
 #include "pimuniqueapplication.h"
+#include "config-kontactinterface.h"
 #include "kontactinterface_debug.h"
 
+#include <KAboutData>
 #include <KStartupInfo>
 #include <KWindowSystem>
-#include <KAboutData>
 
 #include <QCommandLineParser>
-#include <QLoggingCategory>
 #include <QDir>
 
-#include <QWidget>
 #include <QMainWindow>
+#include <QWidget>
 
-#include <QDBusInterface>
 #include <QDBusConnectionInterface>
+#include <QDBusInterface>
 
 using namespace KontactInterface;
 
-namespace {
-
+namespace
+{
 const char kChromiumFlagsEnv[] = "QTWEBENGINE_CHROMIUM_FLAGS";
 const char kDisableInProcessStackTraces[] = 
"--disable-in-process-stack-traces";
 
@@ -38,7 +37,8 @@
 public:
     Private()
         : cmdArgs(new QCommandLineParser())
-    {}
+    {
+    }
 
     ~Private()
     {
@@ -80,25 +80,18 @@
     aboutData.setupCommandLine(d->cmdArgs);
     // This object name is used in start(), and also in kontact's 
UniqueAppHandler.
     const QString objectName = QLatin1Char('/') + 
QApplication::applicationName() + QLatin1String("_PimApplication");
-    QDBusConnection::sessionBus().registerObject(
-        objectName, this,
-        QDBusConnection::ExportScriptableSlots |
-        QDBusConnection::ExportScriptableProperties |
-        QDBusConnection::ExportAdaptors);
+    QDBusConnection::sessionBus().registerObject(objectName,
+                                                 this,
+                                                 
QDBusConnection::ExportScriptableSlots | 
QDBusConnection::ExportScriptableProperties
+                                                     | 
QDBusConnection::ExportAdaptors);
 }
 
 static bool callNewInstance(const QString &appName, const QString 
&serviceName, const QByteArray &asn_id, const QStringList &arguments)
 {
     const QString objectName = QLatin1Char('/') + appName + 
QLatin1String("_PimApplication");
-    QDBusInterface iface(serviceName,
-            objectName,
-            QStringLiteral("org.kde.PIMUniqueApplication"),
-            QDBusConnection::sessionBus());
+    QDBusInterface iface(serviceName, objectName, 
QStringLiteral("org.kde.PIMUniqueApplication"), QDBusConnection::sessionBus());
     if (iface.isValid()) {
-        QDBusReply<int> reply = iface.call(QStringLiteral("newInstance"),
-                asn_id,
-                arguments,
-                QDir::currentPath());
+        QDBusReply<int> reply = iface.call(QStringLiteral("newInstance"), 
asn_id, arguments, QDir::currentPath());
         if (reply.isValid()) {
             return true;
         }
@@ -111,7 +104,6 @@
     return newInstance(KStartupInfo::startupId(), QStringList() << 
QApplication::applicationName(), QDir::currentPath());
 }
 
-
 bool PimUniqueApplication::start(const QStringList &arguments)
 {
     const QString appName = QApplication::applicationName();
@@ -138,7 +130,7 @@
         KWindowSystem::allowExternalProcessWindowActivation();
 
         if (callNewInstance(appName, serviceName, new_asn_id, arguments)) {
-            return false;  // success means that main() can exit now.
+            return false; // success means that main() can exit now.
         }
     }
 
@@ -156,19 +148,16 @@
 bool PimUniqueApplication::activateApplication(const QString &appName, const 
QStringList &additionalArguments)
 {
     const QString serviceName = QLatin1String("org.kde.") + appName;
-    QStringList arguments{ appName };
+    QStringList arguments{appName};
     arguments += additionalArguments;
     // Start it standalone if not already running (if kontact is running, then 
this will do nothing)
     QDBusConnection::sessionBus().interface()->startService(serviceName);
     return callNewInstance(appName, serviceName, 
KStartupInfo::createNewStartupId(), arguments);
-
 }
 
 // This is called via DBus either by another instance that has just been
 // started or by Kontact when the module is activated
-int PimUniqueApplication::newInstance(const QByteArray &startupId,
-                                      const QStringList &arguments,
-                                      const QString &workingDirectory)
+int PimUniqueApplication::newInstance(const QByteArray &startupId, const 
QStringList &arguments, const QString &workingDirectory)
 {
     KStartupInfo::setStartupId(startupId);
 
@@ -191,8 +180,7 @@
 
 int PimUniqueApplication::activate(const QStringList &arguments, const QString 
&workingDirectory)
 {
-    Q_UNUSED(arguments);
-    Q_UNUSED(workingDirectory);
+    Q_UNUSED(arguments)
+    Q_UNUSED(workingDirectory)
     return 0;
 }
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/src/pimuniqueapplication.h 
new/kontactinterface-21.04.0/src/pimuniqueapplication.h
--- old/kontactinterface-20.12.3/src/pimuniqueapplication.h     2021-02-04 
13:58:15.000000000 +0100
+++ new/kontactinterface-21.04.0/src/pimuniqueapplication.h     2021-04-10 
07:59:39.000000000 +0200
@@ -16,7 +16,6 @@
 
 namespace KontactInterface
 {
-
 /**
  * KDEPIM applications which can be integrated into kontact should use
  * PimUniqueApplication instead of QApplication + Dbus unique.
@@ -26,13 +25,12 @@
  */
 class KONTACTINTERFACE_EXPORT PimUniqueApplication : public QApplication
 {
-
     Q_OBJECT
     Q_CLASSINFO("D-Bus Interface", "org.kde.PIMUniqueApplication")
 
 public:
     explicit PimUniqueApplication(int &argc, char **argv[]);
-    ~PimUniqueApplication();
+    ~PimUniqueApplication() override;
 
     void setAboutData(KAboutData &aboutData);
 
@@ -46,8 +44,7 @@
     /**
      * Ensure that another PIM application is running.
      */
-    static bool activateApplication(const QString &application,
-                                    const QStringList &additionalArguments = 
{});
+    static bool activateApplication(const QString &application, const 
QStringList &additionalArguments = {});
 
     Q_REQUIRED_RESULT QCommandLineParser *cmdArgs() const;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/src/plugin.cpp 
new/kontactinterface-21.04.0/src/plugin.cpp
--- old/kontactinterface-20.12.3/src/plugin.cpp 2021-02-04 13:58:15.000000000 
+0100
+++ new/kontactinterface-21.04.0/src/plugin.cpp 2021-04-10 07:59:39.000000000 
+0200
@@ -9,22 +9,20 @@
 
 #include "plugin.h"
 #include "core.h"
-#include "processes.h"
 #include "kontactinterface_debug.h"
+#include "processes.h"
 
-#include <KPluginLoader>
-#include <KXMLGUIFactory>
 #include <KAboutData>
-#include <KLocalizedString>
 #include <KIO/CommandLauncherJob>
+#include <KXMLGUIFactory>
 
 #include <QDBusConnection>
+#include <QDir>
 #include <QDomDocument>
 #include <QFileInfo>
-#include <QDir>
 
-#include <QStandardPaths>
 #include <QCoreApplication>
+#include <QStandardPaths>
 
 using namespace KontactInterface;
 
@@ -36,7 +34,6 @@
 class Q_DECL_HIDDEN Plugin::Private
 {
 public:
-
     void partDestroyed();
     void setXmlFiles();
     void removeInvisibleToolbarActions(Plugin *plugin);
@@ -58,7 +55,9 @@
 //@endcond
 
 Plugin::Plugin(Core *core, QObject *parent, const char *appName, const char 
*pluginName)
-    : KXMLGUIClient(core), QObject(parent), d(new Private)
+    : KXMLGUIClient(core)
+    , QObject(parent)
+    , d(new Private)
 {
     setObjectName(QLatin1String(appName));
     core->factory()->addClient(this);
@@ -141,7 +140,9 @@
     if (!d->part) {
         d->part = createPart();
         if (d->part) {
-            connect(d->part, &KParts::Part::destroyed, this, [this]() { 
d->partDestroyed(); });
+            connect(d->part, &KParts::Part::destroyed, this, [this]() {
+                d->partDestroyed();
+            });
             d->removeInvisibleToolbarActions(this);
             core()->partLoaded(this, d->part);
         }
@@ -194,7 +195,7 @@
 
 bool Plugin::canDecodeMimeData(const QMimeData *data) const
 {
-    Q_UNUSED(data);
+    Q_UNUSED(data)
     return false;
 }
 
@@ -249,21 +250,20 @@
     // solutions work visually, but only modifying the XML ensures that the
     // actions don't appear in "edit toolbars". #207296
     const QStringList hideActions = plugin->invisibleToolbarActions();
-    //qCDebug(KONTACTINTERFACE_LOG) << "Hiding actions" << hideActions << 
"from" << pluginName << part;
+    // qCDebug(KONTACTINTERFACE_LOG) << "Hiding actions" << hideActions << 
"from" << pluginName << part;
     QDomDocument doc = part->domDocument();
     QDomElement docElem = doc.documentElement();
     // 1. Iterate over containers
-    for (QDomElement containerElem = docElem.firstChildElement();
-            !containerElem.isNull(); containerElem = 
containerElem.nextSiblingElement()) {
+    for (QDomElement containerElem = docElem.firstChildElement(); 
!containerElem.isNull(); containerElem = containerElem.nextSiblingElement()) {
         if (QString::compare(containerElem.tagName(), 
QLatin1String("ToolBar"), Qt::CaseInsensitive) == 0) {
             // 2. Iterate over actions in toolbars
             QDomElement actionElem = containerElem.firstChildElement();
             while (!actionElem.isNull()) {
                 QDomElement nextActionElem = actionElem.nextSiblingElement();
                 if (QString::compare(actionElem.tagName(), 
QLatin1String("Action"), Qt::CaseInsensitive) == 0) {
-                    //qCDebug(KONTACTINTERFACE_LOG) << "Looking at action" << 
actionElem.attribute("name");
+                    // qCDebug(KONTACTINTERFACE_LOG) << "Looking at action" << 
actionElem.attribute("name");
                     if 
(hideActions.contains(actionElem.attribute(QStringLiteral("name")))) {
-                        //qCDebug(KONTACTINTERFACE_LOG) << "REMOVING";
+                        // qCDebug(KONTACTINTERFACE_LOG) << "REMOVING";
                         containerElem.removeChild(actionElem);
                     }
                 }
@@ -278,8 +278,8 @@
     // the fast kdeui code for that rather than a full QDomDocument.
     // (*) or when invisibleToolbarActions() changes :)
 
-    const QString newAppFile =
-        QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) 
+ QLatin1String("/kontact/default-") + QLatin1String(pluginName) + 
QLatin1String(".rc");
+    const QString newAppFile = 
QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + 
QLatin1String("/kontact/default-")
+        + QLatin1String(pluginName) + QLatin1String(".rc");
     QFileInfo fileInfo(newAppFile);
     QDir().mkpath(fileInfo.absolutePath());
 
@@ -299,10 +299,10 @@
     if (pluginName.isEmpty()) {
         return;
     }
-    const QString newAppFile =
-        QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) 
+ QLatin1String("/kontact/default-") + QLatin1String(pluginName) + 
QLatin1String(".rc");
-    const QString localFile =
-        QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) 
+ QLatin1String("/kontact/local-") + QLatin1String(pluginName) + 
QLatin1String(".rc");
+    const QString newAppFile = 
QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + 
QLatin1String("/kontact/default-")
+        + QLatin1String(pluginName) + QLatin1String(".rc");
+    const QString localFile = 
QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + 
QLatin1String("/kontact/local-")
+        + QLatin1String(pluginName) + QLatin1String(".rc");
     if (!localFile.isEmpty() && !newAppFile.isEmpty()) {
         if (part->xmlFile() != newAppFile || part->localXMLFile() != 
localFile) {
             part->replaceXMLFile(newAppFile, localFile);
@@ -331,7 +331,7 @@
 
 Summary *Plugin::createSummaryWidget(QWidget *parent)
 {
-    Q_UNUSED(parent);
+    Q_UNUSED(parent)
     return nullptr;
 }
 
@@ -366,8 +366,7 @@
 
 void Plugin::virtual_hook(int, void *)
 {
-    //BASE::virtual_hook( id, data );
+    // BASE::virtual_hook( id, data );
 }
 
 #include "moc_plugin.cpp"
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/src/plugin.h 
new/kontactinterface-21.04.0/src/plugin.h
--- old/kontactinterface-20.12.3/src/plugin.h   2021-02-04 13:58:15.000000000 
+0100
+++ new/kontactinterface-21.04.0/src/plugin.h   2021-04-10 07:59:39.000000000 
+0200
@@ -25,7 +25,7 @@
 class KConfigGroup;
 class QDropEvent;
 class QMimeData;
-class QStringList;
+#include <QStringList>
 class QWidget;
 namespace KParts
 {
@@ -40,35 +40,36 @@
 /**
   Exports Kontact plugin. Deprecated in favour of 
EXPORT_KONTACT_PLUGIN_WITH_JSON
  */
-#define EXPORT_KONTACT_PLUGIN( pluginclass, pluginname ) \
-    class Instance                                           \
-    {                                                        \
-    public:                                                \
-        static QObject *createInstance( QWidget *, QObject *parent, const 
QVariantList &list ) \
-        { return new pluginclass( static_cast<KontactInterface::Core*>( parent 
), list ); } \
-    };                                                                    \
-    K_PLUGIN_FACTORY( KontactPluginFactory, registerPlugin< pluginclass >   \
-                      ( QString(), Instance::createInstance ); )
+#define EXPORT_KONTACT_PLUGIN(pluginclass, pluginname)                         
                                                                                
\
+    class Instance                                                             
                                                                                
\
+    {                                                                          
                                                                                
\
+    public:                                                                    
                                                                                
\
+        static QObject *createInstance(QWidget *, QObject *parent, const 
QVariantList &list)                                                             
      \
+        {                                                                      
                                                                                
\
+            return new pluginclass(static_cast<KontactInterface::Core 
*>(parent), list);                                                              
         \
+        }                                                                      
                                                                                
\
+    };                                                                         
                                                                                
\
+    K_PLUGIN_FACTORY(KontactPluginFactory, 
registerPlugin<pluginclass>(QString(), Instance::createInstance);)
 
 /**
   Exports Kontact plugin.
   @param pluginclass the class to instanciate (must derive from 
KontactInterface::Plugin
   @param jsonFile filename of the JSON file, generated from a .desktop file
  */
-#define EXPORT_KONTACT_PLUGIN_WITH_JSON( pluginclass, jsonFile ) \
-    class Instance                                           \
-    {                                                        \
-    public:                                                \
-        static QObject *createInstance( QWidget *, QObject *parent, const 
QVariantList &list ) \
-        { return new pluginclass( static_cast<KontactInterface::Core*>( parent 
), list ); } \
-    };                                                                    \
-    K_PLUGIN_FACTORY_WITH_JSON( KontactPluginFactory, jsonFile, 
registerPlugin< pluginclass >   \
-                              ( QString(), Instance::createInstance ); ) \
+#define EXPORT_KONTACT_PLUGIN_WITH_JSON(pluginclass, jsonFile)                 
                                                                                
\
+    class Instance                                                             
                                                                                
\
+    {                                                                          
                                                                                
\
+    public:                                                                    
                                                                                
\
+        static QObject *createInstance(QWidget *, QObject *parent, const 
QVariantList &list)                                                             
      \
+        {                                                                      
                                                                                
\
+            return new pluginclass(static_cast<KontactInterface::Core 
*>(parent), list);                                                              
         \
+        }                                                                      
                                                                                
\
+    };                                                                         
                                                                                
\
+    K_PLUGIN_FACTORY_WITH_JSON(KontactPluginFactory, jsonFile, 
registerPlugin<pluginclass>(QString(), Instance::createInstance);)              
                \
     K_EXPORT_PLUGIN_VERSION(KONTACT_PLUGIN_VERSION)
 
 namespace KontactInterface
 {
-
 class Core;
 class Summary;
 /**
@@ -220,7 +221,7 @@
     /**
      * Registers the client at DBus and returns the dbus identifier.
      */
-    Q_REQUIRED_RESULT QString registerClient();
+    QString registerClient();
 
     /**
      * Return the weight of the plugin. The higher the weight the lower it will
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/src/processes.cpp 
new/kontactinterface-21.04.0/src/processes.cpp
--- old/kontactinterface-20.12.3/src/processes.cpp      2021-02-04 
13:58:15.000000000 +0100
+++ new/kontactinterface-21.04.0/src/processes.cpp      2021-04-10 
07:59:39.000000000 +0200
@@ -14,22 +14,22 @@
   @author Jaros??aw Staniek \<[email protected]\>
 */
 
-//krazy:excludeall=captruefalse,null
+// krazy:excludeall=captruefalse,null
 
 #include "processes.h"
 using namespace KontactInterface;
 
 #ifdef Q_OS_WIN
 
-#include <windows.h>
-#include <tlhelp32.h>
 #include <psapi.h>
 #include <signal.h>
+#include <tlhelp32.h>
+#include <windows.h>
 
 #include <QtDebug>
 
-#include <QCoreApplication>
 #include "kontactinterface_debug.h"
+#include <QCoreApplication>
 
 // Copy from kdelibs/kinit/kinit_win.cpp
 PSID copySid(PSID from)
@@ -39,7 +39,7 @@
     }
 
     int sidLength = GetLengthSid(from);
-    PSID to = (PSID) malloc(sidLength);
+    PSID to = (PSID)malloc(sidLength);
     CopySid(sidLength, to, from);
     return to;
 }
@@ -63,7 +63,7 @@
 
             sid = copySid(userStruct->User.Sid);
             CloseHandle(hToken);
-            delete [] userStruct;
+            delete[] userStruct;
             return sid;
         }
     }
@@ -73,11 +73,7 @@
 // Copy from kdelibs/kinit/kinit_win.cpp
 static HANDLE getProcessHandle(int processID)
 {
-    return OpenProcess(SYNCHRONIZE |
-                       PROCESS_QUERY_INFORMATION |
-                       PROCESS_VM_READ |
-                       PROCESS_TERMINATE,
-                       false, processID);
+    return OpenProcess(SYNCHRONIZE | PROCESS_QUERY_INFORMATION | 
PROCESS_VM_READ | PROCESS_TERMINATE, false, processID);
 }
 
 void KontactInterface::getProcessesIdForName(const QString &processName, 
QList<int> &pids)
@@ -90,7 +86,7 @@
         return;
     }
 
-    pe32.dwSize = sizeof(PROCESSENTRY32);   // Necessary according to MSDN
+    pe32.dwSize = sizeof(PROCESSENTRY32); // Necessary according to MSDN
     if (!Process32First(h, &pe32)) {
         return;
     }
@@ -128,7 +124,7 @@
     int myPid = QCoreApplication::applicationPid();
     for (int pid : qAsConst(pids)) {
         if (myPid != pid) {
-            //qCDebug(KONTACTINTERFACE_LOG) << "Process ID is " << pid;
+            // qCDebug(KONTACTINTERFACE_LOG) << "Process ID is " << pid;
             return true;
         }
     }
@@ -163,7 +159,10 @@
 }
 
 struct EnumWindowsStruct {
-    EnumWindowsStruct() : windowId(0) {}
+    EnumWindowsStruct()
+        : windowId(0)
+    {
+    }
     int pid;
     HWND windowId;
 };
@@ -171,7 +170,6 @@
 BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
 {
     if (GetWindowLong(hwnd, GWL_STYLE) & WS_VISIBLE) {
-
         DWORD pidwin;
 
         GetWindowThreadProcessId(hwnd, &pidwin);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/src/processes.h 
new/kontactinterface-21.04.0/src/processes.h
--- old/kontactinterface-20.12.3/src/processes.h        2021-02-04 
13:58:15.000000000 +0100
+++ new/kontactinterface-21.04.0/src/processes.h        2021-04-10 
07:59:39.000000000 +0200
@@ -27,7 +27,6 @@
 
 namespace KontactInterface
 {
-
 #ifdef Q_OS_WIN
 /**
  * Sets @a pids to a list of processes having name @a processName.
@@ -58,4 +57,3 @@
 }
 
 #endif
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/src/summary.cpp 
new/kontactinterface-21.04.0/src/summary.cpp
--- old/kontactinterface-20.12.3/src/summary.cpp        2021-02-04 
13:58:15.000000000 +0100
+++ new/kontactinterface-21.04.0/src/summary.cpp        2021-04-10 
07:59:39.000000000 +0200
@@ -9,19 +9,19 @@
 
 #include "summary.h"
 
-#include <QFont>
-#include <QLabel>
 #include <QDrag>
-#include <QPainter>
-#include <QPixmap>
-#include <QMouseEvent>
 #include <QDragEnterEvent>
-#include <QMimeData>
 #include <QDropEvent>
+#include <QFont>
+#include <QFontDatabase>
 #include <QHBoxLayout>
 #include <QIcon>
+#include <QLabel>
+#include <QMimeData>
+#include <QMouseEvent>
+#include <QPainter>
+#include <QPixmap>
 #include <QStyle>
-#include <QFontDatabase>
 
 using namespace KontactInterface;
 
@@ -49,7 +49,8 @@
 //@endcond
 
 Summary::Summary(QWidget *parent)
-    : QWidget(parent), d(new Private)
+    : QWidget(parent)
+    , d(new Private)
 {
     setFont(QFontDatabase::systemFont(QFontDatabase::GeneralFont));
     setAcceptDrops(true);
@@ -102,7 +103,7 @@
 
 void Summary::updateSummary(bool force)
 {
-    Q_UNUSED(force);
+    Q_UNUSED(force)
 }
 
 void Summary::mousePressEvent(QMouseEvent *event)
@@ -114,17 +115,14 @@
 
 void Summary::mouseMoveEvent(QMouseEvent *event)
 {
-    if ((event->buttons() & Qt::LeftButton) &&
-            (event->pos() - d->mDragStartPoint).manhattanLength() > 4) {
-
+    if ((event->buttons() & Qt::LeftButton) && (event->pos() - 
d->mDragStartPoint).manhattanLength() > 4) {
         QDrag *drag = new QDrag(this);
         drag->setMimeData(new SummaryMimeData());
         drag->setObjectName(QStringLiteral("SummaryWidgetDrag"));
 
         QPixmap pm = grab();
         if (pm.width() > 300) {
-            pm = QPixmap::fromImage(
-                     pm.toImage().scaled(300, 300, Qt::KeepAspectRatio, 
Qt::SmoothTransformation));
+            pm = QPixmap::fromImage(pm.toImage().scaled(300, 300, 
Qt::KeepAspectRatio, Qt::SmoothTransformation));
         }
 
         QPainter painter;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/src/summary.h 
new/kontactinterface-21.04.0/src/summary.h
--- old/kontactinterface-20.12.3/src/summary.h  2021-02-04 13:58:15.000000000 
+0100
+++ new/kontactinterface-21.04.0/src/summary.h  2021-04-10 07:59:39.000000000 
+0200
@@ -18,7 +18,6 @@
 
 namespace KontactInterface
 {
-
 /**
  * @short Base class for summary widgets in Kontact.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/src/uniqueapphandler.cpp 
new/kontactinterface-21.04.0/src/uniqueapphandler.cpp
--- old/kontactinterface-20.12.3/src/uniqueapphandler.cpp       2021-02-04 
13:58:15.000000000 +0100
+++ new/kontactinterface-21.04.0/src/uniqueapphandler.cpp       2021-04-10 
07:59:39.000000000 +0200
@@ -7,7 +7,6 @@
 */
 
 #include "uniqueapphandler.h"
-#include <QDBusAbstractAdaptor>
 #include "core.h"
 
 #include "processes.h"
@@ -21,10 +20,8 @@
 
 #include <QCommandLineParser>
 
-#include <QLoggingCategory>
-
 #ifdef Q_OS_WIN
-#  include <process.h>
+#include <process.h>
 #endif
 
 /*
@@ -76,7 +73,8 @@
 //@endcond
 
 UniqueAppHandler::UniqueAppHandler(Plugin *plugin)
-    : QObject(plugin), d(new Private)
+    : QObject(plugin)
+    , d(new Private)
 {
     qCDebug(KONTACTINTERFACE_LOG) << "plugin->objectName():" << 
plugin->objectName();
 
@@ -115,8 +113,8 @@
 // Plugin-specific newInstance implementation, called by above method
 int KontactInterface::UniqueAppHandler::activate(const QStringList &args, 
const QString &workingDirectory)
 {
-    Q_UNUSED(args);
-    Q_UNUSED(workingDirectory);
+    Q_UNUSED(args)
+    Q_UNUSED(workingDirectory)
 
     if (s_mainWidget) {
         s_mainWidget->show();
@@ -153,17 +151,17 @@
 //@endcond
 
 UniqueAppWatcher::UniqueAppWatcher(UniqueAppHandlerFactoryBase *factory, 
Plugin *plugin)
-    : QObject(plugin), d(new Private)
+    : QObject(plugin)
+    , d(new Private)
 {
     d->mFactory = factory;
     d->mPlugin = plugin;
 
     // The app is running standalone if 1) that name is known to D-Bus
     const QString serviceName = QLatin1String("org.kde.") + 
plugin->objectName();
-    //Needed for wince build
+    // Needed for wince build
 #undef interface
-    d->mRunningStandalone =
-        
QDBusConnection::sessionBus().interface()->isServiceRegistered(serviceName);
+    d->mRunningStandalone = 
QDBusConnection::sessionBus().interface()->isServiceRegistered(serviceName);
 #ifdef Q_OS_WIN
     if (d->mRunningStandalone) {
         QList<int> pids;
@@ -187,13 +185,13 @@
         d->mRunningStandalone = false;
     }
 
-    qCDebug(KONTACTINTERFACE_LOG) << " plugin->objectName()=" << 
plugin->objectName()
-                                  << " running standalone:" << 
d->mRunningStandalone;
+    qCDebug(KONTACTINTERFACE_LOG) << " plugin->objectName()=" << 
plugin->objectName() << " running standalone:" << d->mRunningStandalone;
 
     if (d->mRunningStandalone) {
         QObject::connect(QDBusConnection::sessionBus().interface(),
                          &QDBusConnectionInterface::serviceOwnerChanged,
-                         this, &UniqueAppWatcher::slotApplicationRemoved);
+                         this,
+                         &UniqueAppWatcher::slotApplicationRemoved);
     } else {
         d->mFactory->createHandler(d->mPlugin);
     }
@@ -210,9 +208,7 @@
     return d->mRunningStandalone;
 }
 
-void KontactInterface::UniqueAppWatcher::slotApplicationRemoved(const QString 
&name,
-        const QString &oldOwner,
-        const QString &newOwner)
+void KontactInterface::UniqueAppWatcher::slotApplicationRemoved(const QString 
&name, const QString &oldOwner, const QString &newOwner)
 {
     if (oldOwner.isEmpty() || !newOwner.isEmpty()) {
         return;
@@ -234,4 +230,3 @@
 {
     return s_mainWidget;
 }
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kontactinterface-20.12.3/src/uniqueapphandler.h 
new/kontactinterface-21.04.0/src/uniqueapphandler.h
--- old/kontactinterface-20.12.3/src/uniqueapphandler.h 2021-02-04 
13:58:15.000000000 +0100
+++ new/kontactinterface-21.04.0/src/uniqueapphandler.h 2021-04-10 
07:59:39.000000000 +0200
@@ -16,7 +16,6 @@
 
 namespace KontactInterface
 {
-
 /**
  * D-Bus Object that has the name of the standalone application (e.g. "kmail")
  * and implements newInstance() so that running the separate application does
@@ -31,7 +30,7 @@
     Q_CLASSINFO("D-Bus Interface", "org.kde.PIMUniqueApplication")
 
 public:
-    UniqueAppHandler(Plugin *plugin);
+    explicit UniqueAppHandler(Plugin *plugin);
     ~UniqueAppHandler() override;
 
     /// This must be reimplemented so that app-specific command line options 
can be parsed
@@ -67,7 +66,9 @@
 class UniqueAppHandlerFactoryBase
 {
 public:
-    virtual ~UniqueAppHandlerFactoryBase() {}
+    virtual ~UniqueAppHandlerFactoryBase()
+    {
+    }
     virtual UniqueAppHandler *createHandler(Plugin *) = 0;
 };
 
@@ -77,10 +78,11 @@
  * The template argument is the UniqueAppHandler-derived class.
  * This allows to remove the need to subclass UniqueAppWatcher.
  */
-template <class T> class UniqueAppHandlerFactory : public 
UniqueAppHandlerFactoryBase
+template<class T> class UniqueAppHandlerFactory : public 
UniqueAppHandlerFactoryBase
 {
 public:
-    UniqueAppHandler *createHandler(Plugin *plugin) override {
+    UniqueAppHandler *createHandler(Plugin *plugin) override
+    {
         plugin->registerClient();
         return new T(plugin);
     }
@@ -114,8 +116,7 @@
     bool isRunningStandalone() const;
 
 private Q_SLOTS:
-    void slotApplicationRemoved(const QString &name, const QString &oldOwner,
-                                const QString &newOwner);
+    void slotApplicationRemoved(const QString &name, const QString &oldOwner, 
const QString &newOwner);
 
 private:
     class Private;
@@ -125,4 +126,3 @@
 } // namespace
 
 #endif
-

Reply via email to