[pim/kontact] /: Add pre-commit CI support
Laurent Montel
null at kde.org
Mon Jun 9 07:06:54 BST 2025
Git commit 4a6797933710229417e436988e0cf5e6fbd183d0 by Laurent Montel.
Committed on 09/06/2025 at 06:06.
Pushed by mlaurent into branch 'master'.
Add pre-commit CI support
A +95 -0 .clang-format-pre-commit
M +1 -3 .gitlab-ci.yml
A +59 -0 .pre-commit-config.yaml
M +43 -17 CMakeLists.txt
M +1 -1 LICENSES/GPL-2.0-or-later.txt
A +19 -0 LICENSES/MIT.txt
M +1 -2 Thoughts
M +24 -24 doc/kontact/index.docbook
M +0 -1 readme-build-ftime.txt
M +69 -52 src/CMakeLists.txt
M +2 -3 src/about/CMakeLists.txt
M +0 -1 src/about/introduction_kontact.html
M +0 -1 src/kontact-version.h.in
https://invent.kde.org/pim/kontact/-/commit/4a6797933710229417e436988e0cf5e6fbd183d0
diff --git a/.clang-format-pre-commit b/.clang-format-pre-commit
new file mode 100644
index 000000000..9b5ae0af2
--- /dev/null
+++ b/.clang-format-pre-commit
@@ -0,0 +1,95 @@
+---
+# SPDX-FileCopyrightText: 2019 Christoph Cullmann <cullmann at kde.org>
+# SPDX-FileCopyrightText: 2019 Gernot Gebhard <gebhard at absint.com>
+#
+# SPDX-License-Identifier: MIT
+
+# This file got automatically created by ECM, do not edit
+# See https://clang.llvm.org/docs/ClangFormatStyleOptions.html for the config options
+# and https://community.kde.org/Policies/Frameworks_Coding_Style#Clang-format_automatic_code_formatting
+# for clang-format tips & tricks
+---
+Language: JavaScript
+DisableFormat: true
+---
+Language: Json
+DisableFormat: false
+IndentWidth: 4
+---
+
+# 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
+
+# no single line enums
+AllowShortEnumsOnASingleLine: false
+
+# 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 with 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
+
+# Always break after template declaration
+AlwaysBreakTemplateDeclarations: true
+
+# macros for which the opening brace stays attached.
+ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH, forever, Q_FOREVER, QBENCHMARK, QBENCHMARK_ONCE , wl_resource_for_each, wl_resource_for_each_safe ]
+
+# 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 --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3ab8c4371..27f6c937c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -6,12 +6,10 @@ include:
file:
- /gitlab-templates/linux-qt6.yml
- /gitlab-templates/linux-qt6-next.yml
- - /gitlab-templates/json-validation.yml
- /gitlab-templates/freebsd-qt6.yml
- /gitlab-templates/windows-qt6.yml
- /gitlab-templates/craft-windows-x86-64-qt6.yml
- /gitlab-templates/cppcheck.yml
- - /gitlab-templates/clang-format.yml
+ - /gitlab-templates/pre-commit.yml
- /gitlab-templates/craft-windows-appx-qt6.yml
- - /gitlab-templates/xml-lint.yml
- /gitlab-templates/yaml-lint.yml
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 000000000..0fb98c45c
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,59 @@
+# SPDX-FileCopyrightText: none
+# SPDX-License-Identifier: CC0-1.0
+# See https://pre-commit.com for more information
+# See https://pre-commit.com/hooks.html for more hooks
+
+exclude: (^po/|.desktop|Messages.sh)
+repos:
+ - repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v5.0.0
+ hooks:
+ - id: trailing-whitespace
+ - id: end-of-file-fixer
+ - id: check-added-large-files
+ - id: check-case-conflict
+ - id: check-xml
+ #- id: check-yaml
+ # args: [--allow-multiple-documents]
+ # exclude: ^(.clang-tidy)
+ - id: check-json
+ - id: check-symlinks
+ - id: destroyed-symlinks
+ - id: check-executables-have-shebangs
+ - repo: https://github.com/pre-commit/mirrors-clang-format
+ rev: v20.1.4
+ hooks:
+ - id: clang-format
+ # force using this project's configuration rather
+ # than the one provided by CI
+ args: [--style=file:.clang-format-pre-commit]
+ - repo: https://github.com/astral-sh/ruff-pre-commit
+ # Ruff version.
+ rev: v0.11.9
+ hooks:
+ # Run the linter.
+ - id: ruff
+ # Run the formatter.
+ - id: ruff-format
+ - repo: https://github.com/codespell-project/codespell
+ rev: v2.4.1
+ hooks:
+ - id: codespell
+ exclude: (textemoticons/core/data/emoji.json|textgrammarcheck/grammalecte/autotests/data/result1.json|texttranslator/translator/plugins/bergamot/autotests/data/modellanguages/models.json|textgrammarcheck/languagetool/autotests/data/test2.json|textautocorrection/core/autotests/data/custom-fr-ref.xml|textgrammarcheck/common/autotests/grammarresultutiltest.cpp|textautocorrection/core/autotests/data/custom-fr.xml)
+ - repo: https://github.com/BlankSpruce/gersemi
+ rev: 0.19.3
+ hooks:
+ - id: gersemi
+ - repo: https://github.com/DavidAnson/markdownlint-cli2
+ rev: v0.18.1
+ hooks:
+ - id: markdownlint-cli2
+ files: \.(md|mdown|markdown)$
+ - repo: https://github.com/scop/pre-commit-shfmt
+ rev: v3.11.0-1
+ hooks:
+ - id: shfmt
+ - repo: https://github.com/shellcheck-py/shellcheck-py
+ rev: v0.10.0.1
+ hooks:
+ - id: shellcheck
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 95cad3fb7..1d2647ed2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,7 +5,7 @@ set(RELEASE_SERVICE_VERSION "25.07.40")
# Use true if stable version => we will check specific version
set(KONTACT_STABLE_VERSION false)
-
+
# Update it for each release
set(KONTACT_RELEASE_VERSION_DATE "25.07.10") # yy.MM.dd
@@ -16,17 +16,28 @@ find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(ECMInstallIcons)
-
include(ECMSetupVersion)
include(ECMAddTests)
include(GenerateExportHeader)
include(ECMGenerateHeaders)
-include(KDEGitCommitHooks)
-include(KDEClangFormat)
file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES src/*.cpp src/*.h)
-kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
+set(PRE_COMMIT_INSTALLED FALSE)
+if(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
+ if(EXISTS "${PROJECT_SOURCE_DIR}/.git/hooks/pre-commit")
+ file(READ "${PROJECT_SOURCE_DIR}/.git/hooks/pre-commit" FILE_CONTENTS)
+ string(FIND "${FILE_CONTENTS}" "File generated by pre-commit" INDEX)
+ if(${INDEX} GREATER_EQUAL 0)
+ set(PRE_COMMIT_INSTALLED TRUE)
+ endif()
+ endif()
+endif()
+if(NOT ${PRE_COMMIT_INSTALLED})
+ include(KDEGitCommitHooks)
+ include(KDEClangFormat)
+ kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
+endif()
include(CheckFunctionExists)
include(KDEInstallDirs)
@@ -46,7 +57,9 @@ if(DEFINED KDEPIM_DEV_VERSION)
set(KDEPIM_DEV_VERSION " ${KDEPIM_DEV_VERSION}")
endif()
-set(KDEPIM_VERSION "${PIM_VERSION}${KDEPIM_DEV_VERSION} (${RELEASE_SERVICE_VERSION})")
+set(KDEPIM_VERSION
+ "${PIM_VERSION}${KDEPIM_DEV_VERSION} (${RELEASE_SERVICE_VERSION})"
+)
set(KONTACTINTERFACE_LIB_VERSION "6.4.40")
set(PIMCOMMON_LIB_VERSION "6.4.40")
@@ -54,8 +67,12 @@ set(PIMCOMMON_LIB_VERSION "6.4.40")
set(KDEPIM_LIB_VERSION "${PIM_VERSION}")
set(KDEPIM_LIB_SOVERSION "6")
-
-find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED DBus Widgets WebEngineWidgets)
+find_package(
+ Qt6
+ ${QT_REQUIRED_VERSION}
+ CONFIG
+ REQUIRED DBus Widgets WebEngineWidgets
+)
set(LIBKDEPIM_LIB_VERSION "6.4.40")
set(LIBGRANTLEETHEME_LIB_VERSION "6.4.40")
# Find KF6 package
@@ -66,14 +83,18 @@ find_package(KF6Crash ${KF_MIN_VERSION} REQUIRED)
find_package(KF6IconThemes ${KF_MIN_VERSION} REQUIRED)
find_package(KF6GuiAddons ${KF_MIN_VERSION} REQUIRED)
find_package(KF6DocTools ${KF_MIN_VERSION})
-set_package_properties(KF6DocTools PROPERTIES DESCRIPTION
- "Tools to generate documentation"
- TYPE OPTIONAL
+set_package_properties(
+ KF6DocTools
+ PROPERTIES DESCRIPTION "Tools to generate documentation" TYPE OPTIONAL
)
-
# Find KdepimLibs Package
-find_package(KPim6KontactInterface ${KONTACTINTERFACE_LIB_VERSION} CONFIG REQUIRED)
+find_package(
+ KPim6KontactInterface
+ ${KONTACTINTERFACE_LIB_VERSION}
+ CONFIG
+ REQUIRED
+)
find_package(KPim6Libkdepim ${LIBKDEPIM_LIB_VERSION} CONFIG REQUIRED)
find_package(KPim6GrantleeTheme ${LIBGRANTLEETHEME_LIB_VERSION} CONFIG REQUIRED)
find_package(KPim6PimCommon ${PIMCOMMON_LIB_VERSION} CONFIG REQUIRED)
@@ -82,9 +103,12 @@ include_directories(${kontact_SOURCE_DIR} ${kontact_BINARY_DIR})
add_definitions(-DQT_NO_CONTEXTLESS_CONNECT)
ecm_set_disabled_deprecation_versions(QT 6.10.0 KF 6.15.0)
-
add_definitions(-DTRANSLATION_DOMAIN=\"kontact\")
-option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF)
+option(
+ USE_UNITY_CMAKE_SUPPORT
+ "Use UNITY cmake support (speedup compile time)"
+ OFF
+)
set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF)
if(USE_UNITY_CMAKE_SUPPORT)
@@ -96,8 +120,10 @@ ecm_qt_install_logging_categories(
EXPORT KONTACT
FILE kontact.categories
DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
- )
-kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
+)
+if(DEFINED kde_configure_git_pre_commit_hook)
+ kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
+endif()
ki18n_install(po)
if(KF6DocTools_FOUND)
kdoctools_install(po)
diff --git a/LICENSES/GPL-2.0-or-later.txt b/LICENSES/GPL-2.0-or-later.txt
index 1d80ac365..96e2bf1e9 100644
--- a/LICENSES/GPL-2.0-or-later.txt
+++ b/LICENSES/GPL-2.0-or-later.txt
@@ -2,7 +2,7 @@ GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt
new file mode 100644
index 000000000..204b93da4
--- /dev/null
+++ b/LICENSES/MIT.txt
@@ -0,0 +1,19 @@
+MIT License Copyright (c) <year> <copyright holders>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
+OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/Thoughts b/Thoughts
index 8a294fbb5..7a90ec332 100644
--- a/Thoughts
+++ b/Thoughts
@@ -234,7 +234,7 @@ Don: the container. Eg. if the parts want to add folders to the container
Don: apps folder tree (or navigator)
Don:
Don: And maybe for communicating with the status bar.
-
+
Communication/Interaction:
==========================
@@ -372,4 +372,3 @@ h: to get a summary widget for a day?
h: b) use some sort of XML to UI to represent the summary information
h: c) have a stand a lone part which opens the PIM data separately? ( How
h: to synchronize access? )
-
diff --git a/doc/kontact/index.docbook b/doc/kontact/index.docbook
index fa331ac7a..060ff4768 100644
--- a/doc/kontact/index.docbook
+++ b/doc/kontact/index.docbook
@@ -174,7 +174,7 @@ Normal, or Small icons, as well as the option to use text only
instead of icons.</para>
<para>If you dislike the Side Pane, you can simply hide it by dragging the
-splitter. An alternative navigation between parts is provided by the
+splitter. An alternative navigation between parts is provided by the
<guilabel>Navigator</guilabel> toolbar, which can be freely positioned. See
<xref linkend="bars" /> for more on the <guilabel>Navigator</guilabel>
toolbar.</para>
@@ -211,7 +211,7 @@ icon in the Side Pane indicates to which application the Main View belongs.
<para>In addition, there are two ways of overriding the component that &kontact;
starts with. The first is supplying an argument to the &kontact; program call
(see <xref linkend="command-line"/>). The second is a setting in the
-&kontact; Settings dialog that will allow you to always start &kontact; in a
+&kontact; Settings dialog that will allow you to always start &kontact; in a
certain mode.</para>
<para>To get to it, go to <menuchoice><guimenu>Settings</guimenu>
@@ -344,7 +344,7 @@ object.</para>
<sect1 id="side-pane-drag-and-drop">
<title>Drag and Drop Functionality</title>
-<para>&kontact; provides advanced drag and drop functionality between
+<para>&kontact; provides advanced drag and drop functionality between
the programs it contains. Following is a brief description of each of
the specific drag and drop operations that can be used and the
result of each.</para>
@@ -353,14 +353,14 @@ result of each.</para>
<title>&kmail; -> &korganizer; To-do List</title>
<para>
-Dragging a message from
+Dragging a message from
<ulink url="help:/kmail2/using-kmail.html#the-mail-reader-window">&kmail;'s Headers pane</ulink>
-to the icon for &korganizer;'s To-do list
+to the icon for &korganizer;'s To-do list
(<guiicon><inlinemediaobject><imageobject>
<imagedata fileref="todo-list-sidebar-icon.png" format="PNG"/>
</imageobject></inlinemediaobject></guiicon>)
-will create a new To-do with
-<guilabel>Mail: <replaceable>Subject</replaceable></guilabel> as the title and
+will create a new To-do with
+<guilabel>Mail: <replaceable>Subject</replaceable></guilabel> as the title and
<guilabel>From: <replaceable>Sender</replaceable>
To: <replaceable>Receiver</replaceable>
Subject: <replaceable>Subject</replaceable></guilabel> as the contents
@@ -376,14 +376,14 @@ attachment.
<title>&kmail; -> &korganizer; Calendar</title>
<para>
-Dragging a message from
+Dragging a message from
<ulink url="help:/kmail2/using-kmail.html#the-mail-reader-window">&kmail;'s Headers pane</ulink>
to the icon for &korganizer;'s Calendar
(<guiicon><inlinemediaobject><imageobject>
<imagedata fileref="calendar-sidebar-icon.png" format="PNG"/>
</imageobject></inlinemediaobject></guiicon>)
-will create a new Event with
-<guilabel>Mail: <replaceable>Subject</replaceable></guilabel> as the title and
+will create a new Event with
+<guilabel>Mail: <replaceable>Subject</replaceable></guilabel> as the title and
<guilabel>From: <replaceable>Sender</replaceable>
To: <replaceable>Receiver</replaceable>
Subject: <replaceable>Subject</replaceable></guilabel> as the contents
@@ -395,7 +395,7 @@ attachment.
<para>Note that dragging onto the To-do button creates a To-do,
whereas dragging onto the Calendar creates an Event. More on this
-distinction is available in the
+distinction is available in the
<ulink url="help:/korganizer">&korganizer; documentation</ulink>
</para>
@@ -406,11 +406,11 @@ distinction is available in the
<title>&kmail; -> &kaddressbook;</title>
<para>
-Dragging a message from
+Dragging a message from
<ulink url="help:/kmail2/using-kmail.html#the-mail-reader-window">&kmail;'s Headers pane</ulink>
to the icon for &kaddressbook;
(<guiicon><inlinemediaobject><imageobject> <imagedata
- fileref="kaddressbook-sidebar-icon.png"
+ fileref="kaddressbook-sidebar-icon.png"
format="PNG" />
</imageobject></inlinemediaobject></guiicon>) will create a contact
from the email address of the sender, unless a contact with that name
@@ -429,7 +429,7 @@ Dragging any number of entries from <ulink
url="help:/kaddressbook/using-kaddressbook.html">&kaddressbook;'s main
window</ulink> to the icon for &korganizer;'s To-do List
(<guiicon><inlinemediaobject><imageobject> <imagedata
- fileref="todo-list-sidebar-icon.png"
+ fileref="todo-list-sidebar-icon.png"
format="PNG"/>
</imageobject></inlinemediaobject></guiicon>) will create a new To-do
with "Meeting" as the title and the selected contacts as
@@ -438,7 +438,7 @@ attendees.
<para>Note that dragging onto the To-do button creates a To-do,
whereas dragging onto the Calendar creates an Event. More on this
-distinction is available in the
+distinction is available in the
<ulink url="help:/korganizer">&korganizer; documentation</ulink>
</para>
@@ -453,7 +453,7 @@ Dragging any number of entries from <ulink
url="help:/kaddressbook/using-kaddressbook.html">&kaddressbook;'s main
window</ulink> to the icon for &korganizer;'s Calendar
(<guiicon><inlinemediaobject><imageobject> <imagedata
- fileref="calendar-sidebar-icon.png"
+ fileref="calendar-sidebar-icon.png"
format="PNG"/>
</imageobject></inlinemediaobject></guiicon>) will create a new Event
with "Meeting" as the title and the selected contacts as
@@ -462,7 +462,7 @@ attendees.
<para>Note that dragging onto the To-do button creates a To-do,
whereas dragging onto the Calendar creates an Event. More on this
-distinction is available in the
+distinction is available in the
<ulink url="help:/korganizer">&korganizer; documentation</ulink>
</para>
@@ -930,7 +930,7 @@ communicate effectively with various groupware solutions.
<para>
In the &kontact; configuration dialog, under <menuchoice><guimenu>Mail</guimenu>
-<guimenuitem>Misc</guimenuitem></menuchoice> on the <guilabel>Invitations</guilabel> page
+<guimenuitem>Misc</guimenuitem></menuchoice> on the <guilabel>Invitations</guilabel> page
you will find the following options that will help the user communicate
with Microsoft Outlook(tm) running in a Kolab environment or in a
Microsoft Exchange(tm) environment.
@@ -943,13 +943,13 @@ Microsoft Exchange(tm) environment.
<listitem>
<para>Enable this option to make Microsoft Outlook(tm) understand your answers to invitation replies.</para>
<para>Microsoft Outlook has a number of shortcomings in its implementation of
-the iCalendar standard; this option works around one of them. If you
+the iCalendar standard; this option works around one of them. If you
have problems with Outlook users not being able to get your replies,
try setting this option.</para>
-<para>Details: When mailing an iCal invitation this makes the message have
+<para>Details: When mailing an iCal invitation this makes the message have
the From: header the same as the To: header. It also sets header
X-KMail-Identity to the To:'s UIOD and makes sure the BCC: is blank.
-Outlook will only understand the reply if the From: header is
+Outlook will only understand the reply if the From: header is
the same as the To: header of the invitation message.</para>
</listitem>
</varlistentry>
@@ -1006,7 +1006,7 @@ containing non-English characters.</para>
<title>Behavioral Issues</title>
<para>
-This section provides instructions on how to make &kontact;
+This section provides instructions on how to make &kontact;
behave more like other groupware clients.
</para>
@@ -1019,7 +1019,7 @@ CC: or BCC: fields separated by a semicolon (';') character in addition
to a comma (','). By default, &kontact; only allows the comma as an address
separator character. To also allow the semicolon, change the
<option>AllowSemicolonAsAddressSeparator</option> from false to true
-in the installed <filename>share/config.kcfg/messagecomposer.kcfg</filename> file.
+in the installed <filename>share/config.kcfg/messagecomposer.kcfg</filename> file.
</para>
</sect2>
@@ -1044,7 +1044,7 @@ the low-levels libraries used by &kontact;:</para>
<listitem>
<para>
When writing duration values into iCalendar files, &kontact; never
-writes the DURATION property in terms of weeks (i.e., 1*DIGIT "W");
+writes the DURATION property in terms of weeks (i.e., 1*DIGIT "W");
instead, the integer number of weeks is always multiplied by 7 and written
in terms of days (i.e. 1*DIGIT "D").
</para>
diff --git a/readme-build-ftime.txt b/readme-build-ftime.txt
index 833cfa009..b931a1804 100644
--- a/readme-build-ftime.txt
+++ b/readme-build-ftime.txt
@@ -23,4 +23,3 @@ ClangBuildAnalyzer --analyze build-ftime.txt > analyze-build-ftime.txt
see https://aras-p.info/blog/2019/09/28/Clang-Build-Analyzer/
-
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 746b84317..32b4aaa61 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,72 +1,79 @@
-configure_file(kontact-version.h.in ${CMAKE_CURRENT_BINARY_DIR}/kontact-version.h @ONLY)
+configure_file(
+ kontact-version.h.in
+ ${CMAKE_CURRENT_BINARY_DIR}/kontact-version.h
+ @ONLY
+)
configure_file(config-kontact.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-kontact.h)
add_subdirectory(about)
add_library(kontactprivate)
########### next target ###############
-target_sources(kontactprivate PRIVATE
- webengine/introductionwebenginepage.cpp
- webengine/introductionwebengineview.cpp
- mainwindow.cpp
- sidepanebase.cpp
- iconsidepane.cpp
- ksettingsdialog/kontactkcmultidialog.cpp
- ksettingsdialog/kontactsettingsdialog.cpp
- kontactconfiguredialog.cpp
- webengine/introductionwebenginepage.h
- webengine/introductionwebengineview.h
- mainwindow.h
- sidepanebase.h
- iconsidepane.h
- ksettingsdialog/kontactkcmultidialog.h
- ksettingsdialog/kontactsettingsdialog.h
- ksettingsdialog/kontactkcmultidialog_p.h
- ksettingsdialog/kontactsettingsdialog_p.h
- kontactconfiguredialog.h
- kontact.qrc
- )
+target_sources(
+ kontactprivate
+ PRIVATE
+ webengine/introductionwebenginepage.cpp
+ webengine/introductionwebengineview.cpp
+ mainwindow.cpp
+ sidepanebase.cpp
+ iconsidepane.cpp
+ ksettingsdialog/kontactkcmultidialog.cpp
+ ksettingsdialog/kontactsettingsdialog.cpp
+ kontactconfiguredialog.cpp
+ webengine/introductionwebenginepage.h
+ webengine/introductionwebengineview.h
+ mainwindow.h
+ sidepanebase.h
+ iconsidepane.h
+ ksettingsdialog/kontactkcmultidialog.h
+ ksettingsdialog/kontactsettingsdialog.h
+ ksettingsdialog/kontactkcmultidialog_p.h
+ ksettingsdialog/kontactsettingsdialog_p.h
+ kontactconfiguredialog.h
+ kontact.qrc
+)
ecm_qt_declare_logging_category(kontactprivate HEADER kontact_debug.h IDENTIFIER KONTACT_LOG CATEGORY_NAME org.kde.pim.kontact
DESCRIPTION "kontact (kontact application)"
OLD_CATEGORY_NAMES log_kontact
EXPORT KONTACT
- )
+)
kconfig_add_kcfg_files(kontactprivate prefs.kcfgc)
-
if(COMPILE_WITH_UNITY_CMAKE_SUPPORT)
set_target_properties(kontactprivate PROPERTIES UNITY_BUILD ON)
endif()
generate_export_header(kontactprivate BASE_NAME kontact)
-target_link_libraries(kontactprivate
- PUBLIC
- KF6::IconThemes
+target_link_libraries(
+ kontactprivate
+ PUBLIC KF6::IconThemes
PRIVATE
- KF6::KCMUtils
- KF6::I18n
- KF6::KIOWidgets
- KPim6::KontactInterface
- KF6::GuiAddons
- KPim6::Libkdepim
- KPim6::PimCommon
- KPim6::GrantleeTheme
- Qt::WebEngineWidgets
- )
-
-set_target_properties(kontactprivate PROPERTIES
- VERSION ${KDEPIM_LIB_VERSION}
- SOVERSION ${KDEPIM_LIB_SOVERSION}
- )
+ KF6::KCMUtils
+ KF6::I18n
+ KF6::KIOWidgets
+ KPim6::KontactInterface
+ KF6::GuiAddons
+ KPim6::Libkdepim
+ KPim6::PimCommon
+ KPim6::GrantleeTheme
+ Qt::WebEngineWidgets
+)
+
+set_target_properties(
+ kontactprivate
+ PROPERTIES VERSION ${KDEPIM_LIB_VERSION} SOVERSION ${KDEPIM_LIB_SOVERSION}
+)
-install(TARGETS kontactprivate ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP)
+install(
+ TARGETS kontactprivate ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}
+ LIBRARY NAMELINK_SKIP
+)
########### next target ###############
-
file(GLOB icons "${CMAKE_CURRENT_SOURCE_DIR}/icons/*-apps-kontact.png")
ecm_add_app_icon(kontact_bin_SRCS ICONS ${icons})
@@ -75,14 +82,15 @@ target_sources(kontact_bin PRIVATE main.cpp kontact_debug.cpp)
set_target_properties(kontact_bin PROPERTIES OUTPUT_NAME kontact)
-target_link_libraries(kontact_bin
+target_link_libraries(
+ kontact_bin
kontactprivate
KF6::I18n
KPim6::KontactInterface
KF6::Crash
Qt::DBus
KF6::IconThemes
- )
+)
if(COMPILE_WITH_UNITY_CMAKE_SUPPORT)
set_target_properties(kontact_bin PROPERTIES UNITY_BUILD ON)
endif()
@@ -91,24 +99,33 @@ install(TARGETS kontact_bin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
########### next target ###############
add_library(kcm_kontact MODULE kcmkontact.cpp kcmkontact.h)
-target_link_libraries(kcm_kontact
+target_link_libraries(
+ kcm_kontact
KF6::I18n
KF6::KCMUtils
KPim6::Libkdepim
kontactprivate
KF6::KIOWidgets
KPim6::KontactInterface
- )
+)
-install(TARGETS kcm_kontact DESTINATION ${KDE_INSTALL_PLUGINDIR}/pim6/kcms/kontact)
+install(
+ TARGETS kcm_kontact
+ DESTINATION ${KDE_INSTALL_PLUGINDIR}/pim6/kcms/kontact
+)
########### install files ###############
install(PROGRAMS data/org.kde.kontact.desktop DESTINATION ${KDE_INSTALL_APPDIR})
-install(FILES data/org.kde.kontact.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
+install(
+ FILES data/org.kde.kontact.appdata.xml
+ DESTINATION ${KDE_INSTALL_METAINFODIR}
+)
install(FILES kontact.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR})
configure_file(data/org.kde.kontact.service.in org.kde.kontact.service)
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kontact.service DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR})
+install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kontact.service
+ DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}
+)
add_subdirectory(icons)
-
diff --git a/src/about/CMakeLists.txt b/src/about/CMakeLists.txt
index d6909e9fb..75d45da8a 100644
--- a/src/about/CMakeLists.txt
+++ b/src/about/CMakeLists.txt
@@ -1,5 +1,4 @@
-install(FILES
- introduction_kontact.html
- loading_kontact.html
+install(
+ FILES introduction_kontact.html loading_kontact.html
DESTINATION ${KDE_INSTALL_DATADIR}/messageviewer/about/default
)
diff --git a/src/about/introduction_kontact.html b/src/about/introduction_kontact.html
index f384d25cd..ab6a6a70c 100644
--- a/src/about/introduction_kontact.html
+++ b/src/about/introduction_kontact.html
@@ -36,4 +36,3 @@
<span><a href="exec:/switch">{% i18n "Skip this introduction" %}</a></span>
{% endblock box %}
-
diff --git a/src/kontact-version.h.in b/src/kontact-version.h.in
index 24493bd26..91f019fb9 100644
--- a/src/kontact-version.h.in
+++ b/src/kontact-version.h.in
@@ -17,4 +17,3 @@
#pragma once
#define KONTACT_VERSION "@KDEPIM_VERSION@"
-
More information about the kde-doc-english
mailing list