Git commit 3fbe4743ae78a4ad52873c0fe64c0adb4df86a88 by Laurent Montel. Committed on 08/06/2025 at 16:11. Pushed by mlaurent into branch 'master'.
Add CI pre-commit A +95 -0 .clang-format-pre-commit M +0 -1 .craft.ini M +1 -4 .gitlab-ci.yml A +59 -0 .pre-commit-config.yaml M +64 -40 CMakeLists.txt A +19 -0 LICENSES/MIT.txt M +0 -1 REUSE.toml M +24 -7 autotests/CMakeLists.txt M +1 -1 doc/index.docbook M +0 -1 readme-build-ftime.txt M +148 -123 src/CMakeLists.txt M +0 -1 src/config-pim-sieve-editor.h.in M +1 -3 src/importwizard/autotests/CMakeLists.txt M +0 -1 src/importwizard/autotests/data/config/usecustomsieveconfig/akonadi_kolab_resource_0rc M +0 -1 src/importwizard/autotests/data/config/usecustomsieveconfig2/akonadi_kolab_resource_0rc M +0 -1 src/importwizard/autotests/data/config/usecustomsieveconfig3/akonadi_kolab_resource_0rc M +0 -1 src/importwizard/autotests/data/config/usecustomsieveconfig4/akonadi_kolab_resource_0rc M +0 -1 src/importwizard/autotests/data/thunderbird2/profiles.ini M +0 -1 src/importwizard/autotests/data/thunderbirdencryptionnone/profiles.ini M +0 -1 src/importwizard/autotests/data/thunderbirdencryptionnoneoneaccount/profiles.ini M +0 -1 src/importwizard/autotests/data/thunderbirdencryptionssl/profiles.ini M +0 -1 src/importwizard/autotests/data/thunderbirdencryptionssloneaccount/profiles.ini M +0 -1 src/importwizard/autotests/data/thunderbirdencryptionstarttls/profiles.ini M +0 -1 src/importwizard/autotests/data/thunderbirdencryptionstarttlsoneaccount/profiles.ini M +2 -2 src/importwizard/tests/CMakeLists.txt M +1 -1 src/settings/sieveeditorglobalconfig.kcfg M +0 -1 src/sieveeditor-version.h.in M +0 -1 src/sieveeditor.qrc M +1 -2 src/sieveeditorui.rc https://invent.kde.org/pim/pim-sieve-editor/-/commit/3fbe4743ae78a4ad52873c0fe64c0adb4df86a88 diff --git a/.clang-format-pre-commit b/.clang-format-pre-commit new file mode 100644 index 00000000..9b5ae0af --- /dev/null +++ b/.clang-format-pre-commit @@ -0,0 +1,95 @@ +--- +# SPDX-FileCopyrightText: 2019 Christoph Cullmann <[email protected]> +# SPDX-FileCopyrightText: 2019 Gernot Gebhard <[email protected]> +# +# 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/.craft.ini b/.craft.ini index f856e520..69c12d44 100644 --- a/.craft.ini +++ b/.craft.ini @@ -4,4 +4,3 @@ [BlueprintSettings] kde/pim/pim-sieve-editor/pim-sieve-editor.packageAppx=True kde/pim.version=master - diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 04f2d38f..88b245bd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,14 +6,11 @@ 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/reuse-lint.yml - /gitlab-templates/flatpak.yml - /gitlab-templates/cppcheck.yml - - /gitlab-templates/clang-format.yml - /gitlab-templates/craft-windows-x86-64-qt6.yml - /gitlab-templates/craft-windows-appx-qt6.yml - - /gitlab-templates/xml-lint.yml - - /gitlab-templates/yaml-lint.yml + - /gitlab-templates/pre-commit.yml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..0fb98c45 --- /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 52ac745d..3bf875d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.16 FATAL_ERROR) set(PIM_VERSION "6.4.40") -project( sieveeditor VERSION ${PIM_VERSION}) +project(sieveeditor VERSION ${PIM_VERSION}) set(RELEASE_SERVICE_VERSION "25.07.40") # Update it for each release @@ -21,23 +21,35 @@ 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 -autotests/*.cpp -autotests/*.h - +file( + GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES + src/*.cpp + src/*.h + autotests/*.cpp + autotests/*.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) @@ -48,11 +60,12 @@ include(ECMQtDeclareLoggingCategory) include(ECMDeprecationSettings) include(ECMFeatureSummary) include(ECMCheckOutboundLicense) -file(GLOB_RECURSE ALL_SOURCE_FILES -src/*.cpp -src/*.h -autotests/*.cpp -autotests/*.h +file( + GLOB_RECURSE ALL_SOURCE_FILES + src/*.cpp + src/*.h + autotests/*.cpp + autotests/*.h ) ecm_check_outbound_license(LICENSES GPL-2.0-only FILES ${ALL_SOURCE_FILES}) @@ -64,7 +77,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(KMAILTRANSPORT_LIB_VERSION "6.4.40") @@ -75,10 +90,9 @@ set(LIBKSIEVE_LIB_VERSION "6.4.40") set(PIMCOMMON_LIB_VERSION "6.4.40") set(KIMAP_LIB_VERSION "6.4.40") - find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Widgets Network) -if (Qt6Gui_VERSION VERSION_GREATER_EQUAL "6.10.0") +if(Qt6Gui_VERSION VERSION_GREATER_EQUAL "6.10.0") find_package(Qt6GuiPrivate ${QT_REQUIRED_VERSION} REQUIRED NO_MODULE) endif() @@ -93,13 +107,18 @@ find_package(KF6WindowSystem ${KF_MIN_VERSION} REQUIRED) find_package(KF6DocTools ${KF_MIN_VERSION}) find_package(KF6I18n ${KF_MIN_VERSION}) find_package(KF6IconThemes ${KF_MIN_VERSION} QUIET) -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_package(KF6UserFeedback ${KF_MIN_VERSION} CONFIG) -set_package_properties(KF6::UserFeedback PROPERTIES DESCRIPTION "User Feedback lib" TYPE OPTIONAL PURPOSE "Allow to send Telemetry Information (optional).") - +set_package_properties( + KF6::UserFeedback + PROPERTIES + DESCRIPTION "User Feedback lib" + TYPE OPTIONAL + PURPOSE "Allow to send Telemetry Information (optional)." +) # shall we use DBus? # enabled per default on Linux & BSD systems @@ -110,13 +129,12 @@ endif() option(USE_DBUS "Build components using DBus" ${USE_DBUS_DEFAULT}) if(USE_DBUS) - set(WITH_DBUS TRUE) - find_package(KF6DBusAddons ${KF_MIN_VERSION} CONFIG REQUIRED) + set(WITH_DBUS TRUE) + find_package(KF6DBusAddons ${KF_MIN_VERSION} CONFIG REQUIRED) else() - find_package(KDSingleApplication-qt6 CONFIG REQUIRED) + find_package(KDSingleApplication-qt6 CONFIG REQUIRED) endif() - # Find KdepimLibs Package find_package(KPim6MailTransport ${KMAILTRANSPORT_LIB_VERSION} CONFIG REQUIRED) @@ -125,20 +143,24 @@ find_package(KPim6KSieveUi ${LIBKSIEVE_LIB_VERSION} CONFIG REQUIRED) find_package(KPim6IMAP ${KIMAP_LIB_VERSION} CONFIG REQUIRED) find_package(Qt6Keychain ${QT6KEYCHAIN_LIB_VERSION} CONFIG) -set_package_properties(Qt6Keychain PROPERTIES - DESCRIPTION "Provides support for secure credentials storage" - URL "https://github.com/frankosterfeld/qtkeychain" - TYPE REQUIRED) - - +set_package_properties( + Qt6Keychain + PROPERTIES + DESCRIPTION "Provides support for secure credentials storage" + URL "https://github.com/frankosterfeld/qtkeychain" + TYPE REQUIRED +) include_directories(${sieveeditor_SOURCE_DIR} ${sieveeditor_BINARY_DIR}) add_definitions(-DQT_NO_CONTEXTLESS_CONNECT) ecm_set_disabled_deprecation_versions(QT 6.10.0 KF 6.15.0) - -option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF) +option( + USE_UNITY_CMAKE_SUPPORT + "Use UNITY cmake support (speedup compile time)" + OFF +) set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF) if(USE_UNITY_CMAKE_SUPPORT) @@ -146,15 +168,18 @@ if(USE_UNITY_CMAKE_SUPPORT) endif() if(BUILD_TESTING) - add_definitions(-DBUILD_TESTING) - find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Test) + add_definitions(-DBUILD_TESTING) + find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Test) endif() add_subdirectory(src) if(BUILD_TESTING) add_subdirectory(autotests) endif() -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) @@ -163,4 +188,3 @@ if(KF6DocTools_FOUND) endif() ecm_feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) - diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt new file mode 100644 index 00000000..204b93da --- /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/REUSE.toml b/REUSE.toml index b0e48148..2641edc9 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -10,4 +10,3 @@ path = ["src/importwizard/autotests/data/**", "MAINTAINERS", "doc/**", "src/icon precedence = "aggregate" SPDX-FileCopyrightText = "none" SPDX-License-Identifier = "CC0-1.0" - diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index ab8d6ecc..f9e2567e 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -1,32 +1,49 @@ # SPDX-FileCopyrightText: 2013-2025 Laurent Montel <[email protected]> # SPDX-License-Identifier: BSD-3-Clause -add_executable(serversievesettingstest serversievesettingstest.cpp) +add_executable(serversievesettingstest serversievesettingstest.cpp) add_test(NAME serversievesettingstest COMMAND serversievesettingstest) ecm_mark_as_test(serversievesettingstest) -target_link_libraries(serversievesettingstest Qt::Test Qt::Widgets KPim6::MailTransport KF6::I18n KF6::ConfigGui KPim6::KSieveUi libsieveeditor) +target_link_libraries( + serversievesettingstest + Qt::Test + Qt::Widgets + KPim6::MailTransport + KF6::I18n + KF6::ConfigGui + KPim6::KSieveUi + libsieveeditor +) set(sieveeditorutiltest_source sieveeditorutiltest.cpp) add_executable(sieveeditorutiltest ${sieveeditorutiltest_source}) add_test(NAME sieveeditorutiltest COMMAND sieveeditorutiltest) ecm_mark_as_test(sieveeditorutiltest) -target_link_libraries(sieveeditorutiltest Qt::Test KPim6::MailTransport KF6::I18n KF6::ConfigGui KPim6::KSieveUi libsieveeditor) +target_link_libraries( + sieveeditorutiltest + Qt::Test + KPim6::MailTransport + KF6::I18n + KF6::ConfigGui + KPim6::KSieveUi + libsieveeditor +) # convenience macro to add qtest unit tests macro(add_sieveserver_unittest _source) set(_test ${_source}) get_filename_component(_name ${_source} NAME_WE) add_executable(${_name} ${_test}) - add_test( NAME ${_name} COMMAND ${_name}) + add_test(NAME ${_name} COMMAND ${_name}) ecm_mark_as_test(sieveserver-${_name}) - target_link_libraries(${_name} + target_link_libraries( + ${_name} Qt::Test Qt::Widgets KF6::I18n KPim6::MailTransport KPim6::KSieveUi libsieveeditor -) + ) endmacro() add_sieveserver_unittest( sieveeditorconfigureserverpagetest.cpp) - diff --git a/doc/index.docbook b/doc/index.docbook index 81cc875e..7635d1fc 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -6,7 +6,7 @@ <!ENTITY i18n-kapplication "<application>Sieve Editor</application>"> <!ENTITY kappname "&i18n-kapplication;"> <!ENTITY % addindex "IGNORE"> - <!ENTITY % English "INCLUDE"> + <!ENTITY % English "INCLUDE"> ]> <book id="sieveeditor" lang="&language;"> diff --git a/readme-build-ftime.txt b/readme-build-ftime.txt index 833cfa00..b931a180 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 90c66bd7..66fd026c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,105 +5,117 @@ if(TARGET KF6::UserFeedbackWidgets) set(WITH_KUSERFEEDBACK true) endif() - -configure_file(sieveeditor-version.h.in ${CMAKE_CURRENT_BINARY_DIR}/sieveeditor-version.h @ONLY) +configure_file( + sieveeditor-version.h.in + ${CMAKE_CURRENT_BINARY_DIR}/sieveeditor-version.h + @ONLY +) add_library(libsieveeditor) -configure_file(config-pim-sieve-editor.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-pim-sieve-editor.h) +configure_file( + config-pim-sieve-editor.h.in + ${CMAKE_CURRENT_BINARY_DIR}/config-pim-sieve-editor.h +) kconfig_add_kcfg_files(libsieveeditor settings/sieveeditorglobalconfig.kcfgc) -target_sources(libsieveeditor PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/importimapsettingwizard.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/importimapsettingsearchpage.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/importimapsettingnofoundpage.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/importimapsettingprogresspage.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/importimapsettingfinishpage.cpp +target_sources( + libsieveeditor + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/importimapsettingwizard.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/importimapsettingsearchpage.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/importimapsettingnofoundpage.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/importimapsettingprogresspage.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/importimapsettingfinishpage.cpp ) -target_sources(libsieveeditor PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/checks/importimapsettingsakonadicheckjob.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/checks/importimapsettingsthunderbirdcheckjob.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/checks/abstractimapsettingscheckjob.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/checks/abstractimapsettingspassword.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/checks/importimapsettingsakonadipassword.cpp +target_sources( + libsieveeditor + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/checks/importimapsettingsakonadicheckjob.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/checks/importimapsettingsthunderbirdcheckjob.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/checks/abstractimapsettingscheckjob.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/checks/abstractimapsettingspassword.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/importwizard/checks/importimapsettingsakonadipassword.cpp ) if(TARGET KF6::UserFeedbackWidgets) - target_sources(libsieveeditor PRIVATE - userfeedback/userfeedbackmanager.cpp - userfeedback/userfeedbackmanager.h -) + target_sources( + libsieveeditor + PRIVATE + userfeedback/userfeedbackmanager.cpp + userfeedback/userfeedbackmanager.h + ) endif() - -target_sources(libsieveeditor PRIVATE - sieveeditormainwindow.cpp - serversievesettingsdialog.cpp - serversievesettings.cpp - sieveeditormainwidget.cpp - sieveeditorconfiguredialog.cpp - sieveeditorscriptmanagerwidget.cpp - sieveeditorutil.cpp - serversievelistwidget.cpp - sieveeditorconfigureserverwidget.cpp - sieveeditormanagesievewidget.cpp - sieveeditorpagewidget.cpp - sieveeditortabwidget.cpp - sieveeditorcentralwidget.cpp - sieveeditorconfigureserverpage.cpp - sieveeditorbookmarks.cpp - sieveeditoremptytabwidgetlabel.cpp - readserversieveconfigjob.cpp - sieveeditorsavepasswordjob.cpp - sieveeditor.qrc - libsieveeditor_private_export.h - sieveeditortabwidget.h - sieveeditoremptytabwidgetlabel.h - sieveeditormainwindow.h - sieveeditormainwidget.h - sieveeditorconfiguredialog.h - readserversieveconfigjob.h - sieveeditorconfigureserverwidget.h - serversievesettings.h - serversievelistwidget.h - sieveeditorscriptmanagerwidget.h - sieveeditorcentralwidget.h - sieveeditorutil.h - serversievesettingsdialog.h - sieveeditormanagesievewidget.h - importwizard/importimapsettingfinishpage.h - importwizard/checks/abstractimapsettingscheckjob.h - importwizard/checks/importimapsettingsakonadicheckjob.h - importwizard/checks/importimapsettingsthunderbirdcheckjob.h - importwizard/checks/importimapsettingsakonadipassword.h - importwizard/checks/abstractimapsettingspassword.h - importwizard/importimapsettingwizard.h - importwizard/importimapsettingprogresspage.h - importwizard/importimapsettingnofoundpage.h - importwizard/importimapsettingsearchpage.h - sieveeditorsavepasswordjob.h - sieveeditorbookmarks.h - sieveeditorpagewidget.h - sieveeditorconfigureserverpage.h - sievepurposemenuwidget.cpp - sievepurposemenuwidget.h - whatsnew/whatsnewtranslations.h - whatsnew/whatsnewtranslations.cpp +target_sources( + libsieveeditor + PRIVATE + sieveeditormainwindow.cpp + serversievesettingsdialog.cpp + serversievesettings.cpp + sieveeditormainwidget.cpp + sieveeditorconfiguredialog.cpp + sieveeditorscriptmanagerwidget.cpp + sieveeditorutil.cpp + serversievelistwidget.cpp + sieveeditorconfigureserverwidget.cpp + sieveeditormanagesievewidget.cpp + sieveeditorpagewidget.cpp + sieveeditortabwidget.cpp + sieveeditorcentralwidget.cpp + sieveeditorconfigureserverpage.cpp + sieveeditorbookmarks.cpp + sieveeditoremptytabwidgetlabel.cpp + readserversieveconfigjob.cpp + sieveeditorsavepasswordjob.cpp + sieveeditor.qrc + libsieveeditor_private_export.h + sieveeditortabwidget.h + sieveeditoremptytabwidgetlabel.h + sieveeditormainwindow.h + sieveeditormainwidget.h + sieveeditorconfiguredialog.h + readserversieveconfigjob.h + sieveeditorconfigureserverwidget.h + serversievesettings.h + serversievelistwidget.h + sieveeditorscriptmanagerwidget.h + sieveeditorcentralwidget.h + sieveeditorutil.h + serversievesettingsdialog.h + sieveeditormanagesievewidget.h + importwizard/importimapsettingfinishpage.h + importwizard/checks/abstractimapsettingscheckjob.h + importwizard/checks/importimapsettingsakonadicheckjob.h + importwizard/checks/importimapsettingsthunderbirdcheckjob.h + importwizard/checks/importimapsettingsakonadipassword.h + importwizard/checks/abstractimapsettingspassword.h + importwizard/importimapsettingwizard.h + importwizard/importimapsettingprogresspage.h + importwizard/importimapsettingnofoundpage.h + importwizard/importimapsettingsearchpage.h + sieveeditorsavepasswordjob.h + sieveeditorbookmarks.h + sieveeditorpagewidget.h + sieveeditorconfigureserverpage.h + sievepurposemenuwidget.cpp + sievepurposemenuwidget.h + whatsnew/whatsnewtranslations.h + whatsnew/whatsnewtranslations.cpp ) - - ki18n_wrap_ui(libsieveeditor ui/serversievesettings.ui ui/sieveeditorconfigureserverwidget.ui ) ecm_qt_declare_logging_category(libsieveeditor HEADER sieveeditor_debug.h - IDENTIFIER SIEVEEDITOR_LOG - CATEGORY_NAME org.kde.pim.sieveeditor - OLD_CATEGORY_NAMES log_sieveeditor - DESCRIPTION "sieveeditor (sieveeditor)" EXPORT SIEVEEDITOR) + IDENTIFIER SIEVEEDITOR_LOG + CATEGORY_NAME org.kde.pim.sieveeditor + OLD_CATEGORY_NAMES log_sieveeditor + DESCRIPTION "sieveeditor (sieveeditor)" EXPORT SIEVEEDITOR +) if(COMPILE_WITH_UNITY_CMAKE_SUPPORT) set_target_properties(libsieveeditor PROPERTIES UNITY_BUILD ON) @@ -115,43 +127,48 @@ if(TARGET KF6::UserFeedbackWidgets) set(libsieveeditor_userfeedback_LIB KF6::UserFeedbackWidgets) endif() - -target_link_libraries(libsieveeditor +target_link_libraries( + libsieveeditor PRIVATE - KPim6::MailTransport - KF6::Bookmarks - KF6::I18n - KF6::XmlGui - KF6::BookmarksWidgets - KPim6::PimCommon - KPim6::KSieveUi - KPim6::KManageSieve - KF6::WindowSystem - ${libsieveeditor_userfeedback_LIB} + KPim6::MailTransport + KF6::Bookmarks + KF6::I18n + KF6::XmlGui + KF6::BookmarksWidgets + KPim6::PimCommon + KPim6::KSieveUi + KPim6::KManageSieve + KF6::WindowSystem + ${libsieveeditor_userfeedback_LIB} ) target_link_libraries(libsieveeditor PRIVATE qt6keychain) -set_target_properties(libsieveeditor - PROPERTIES OUTPUT_NAME sieveeditor VERSION ${KDEPIM_LIB_VERSION} SOVERSION ${KDEPIM_LIB_SOVERSION} +set_target_properties( + libsieveeditor + PROPERTIES + OUTPUT_NAME sieveeditor + VERSION ${KDEPIM_LIB_VERSION} + SOVERSION ${KDEPIM_LIB_SOVERSION} ) add_executable(sieveeditor) # application icon, in all sizes needed to have e.g. nice Windows icons, too set(ICON_FILES - icons/sc-apps-sieveeditor.svg - icons/16-apps-sieveeditor.png - icons/22-apps-sieveeditor.png - icons/32-apps-sieveeditor.png - icons/48-apps-sieveeditor.png - icons/64-apps-sieveeditor.png + icons/sc-apps-sieveeditor.svg + icons/16-apps-sieveeditor.png + icons/22-apps-sieveeditor.png + icons/32-apps-sieveeditor.png + icons/48-apps-sieveeditor.png + icons/64-apps-sieveeditor.png ) # Add icon files to the application's source files to have CMake bundle them in the executable. ecm_add_app_icon(ICONS_SOURCES ICONS ${ICON_FILES}) target_sources(sieveeditor PRIVATE main.cpp ${ICONS_SOURCES}) -target_link_libraries(sieveeditor +target_link_libraries( + sieveeditor KF6::CoreAddons KF6::Crash libsieveeditor @@ -166,45 +183,53 @@ if(TARGET KF6::DBusAddons) target_link_libraries(sieveeditor KF6::DBusAddons) else() target_link_libraries(sieveeditor KDAB::kdsingleapplication) - if (NOT WIN32 AND NOT APPLE) + if(NOT WIN32 AND NOT APPLE) target_link_libraries(sieveeditor Qt::GuiPrivate) endif() -endif() +endif() install(TARGETS sieveeditor ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) install(PROGRAMS org.kde.sieveeditor.desktop DESTINATION ${KDE_INSTALL_APPDIR}) - -install(FILES settings/sieveeditorglobalconfig.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) -install(TARGETS libsieveeditor ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP) - +install( + FILES settings/sieveeditorglobalconfig.kcfg + DESTINATION ${KDE_INSTALL_KCFGDIR} +) +install( + TARGETS libsieveeditor ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} + LIBRARY NAMELINK_SKIP +) if(BUILD_TESTING) add_subdirectory(importwizard/autotests) add_subdirectory(importwizard/tests) endif() -install(FILES org.kde.sieveeditor.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) +install( + FILES org.kde.sieveeditor.appdata.xml + DESTINATION ${KDE_INSTALL_METAINFODIR} +) ecm_qt_install_logging_categories(EXPORT SIEVEEDITOR FILE sieveeditor.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) add_subdirectory(icons) # See https://cmake.org/cmake/help/v3.15/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.html if(APPLE) - set_property( - TARGET sieveeditor - PROPERTY MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/data/MacOSXBundleInfo.plist.in - ) - - # These are substituted by CMake into plist.in. - set(MACOSX_BUNDLE_DISPLAY_NAME "SieveEditor") - set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.kde.sieveeditor") - set(MACOSX_BUNDLE_BUNDLE_NAME "SieveEditor") - set(MACOSX_BUNDLE_DISPLAY_NAME "SieveEditor") - set(MACOSX_BUNDLE_INFO_STRING "SieveEditor - Sieve Editor") - set(MACOSX_BUNDLE_LONG_VERSION_STRING "SieveEditor ${PIM_VERSION}") - set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${PIM_VERSION}") - set(MACOSX_BUNDLE_BUNDLE_VERSION "${PIM_VERSION}") - set(MACOSX_BUNDLE_COPYRIGHT "2013-2024 The SieveEditor Authors") + set_property( + TARGET sieveeditor + PROPERTY + MACOSX_BUNDLE_INFO_PLIST + ${CMAKE_CURRENT_SOURCE_DIR}/data/MacOSXBundleInfo.plist.in + ) + + # These are substituted by CMake into plist.in. + set(MACOSX_BUNDLE_DISPLAY_NAME "SieveEditor") + set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.kde.sieveeditor") + set(MACOSX_BUNDLE_BUNDLE_NAME "SieveEditor") + set(MACOSX_BUNDLE_DISPLAY_NAME "SieveEditor") + set(MACOSX_BUNDLE_INFO_STRING "SieveEditor - Sieve Editor") + set(MACOSX_BUNDLE_LONG_VERSION_STRING "SieveEditor ${PIM_VERSION}") + set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${PIM_VERSION}") + set(MACOSX_BUNDLE_BUNDLE_VERSION "${PIM_VERSION}") + set(MACOSX_BUNDLE_COPYRIGHT "2013-2024 The SieveEditor Authors") endif() - diff --git a/src/config-pim-sieve-editor.h.in b/src/config-pim-sieve-editor.h.in index 4a06e44b..311adeff 100644 --- a/src/config-pim-sieve-editor.h.in +++ b/src/config-pim-sieve-editor.h.in @@ -9,4 +9,3 @@ #cmakedefine01 SIEVEEDITOR_STABLE_VERSION #define SIEVEEDITOR_RELEASE_VERSION_DATE "${SIEVEEDITOR_RELEASE_VERSION_DATE}" - diff --git a/src/importwizard/autotests/CMakeLists.txt b/src/importwizard/autotests/CMakeLists.txt index 467dc72f..33a8bd15 100644 --- a/src/importwizard/autotests/CMakeLists.txt +++ b/src/importwizard/autotests/CMakeLists.txt @@ -9,11 +9,9 @@ macro(add_sieveeditor_importwizard_unittest _source _additionsource) NAME_PREFIX "sieveeditor-importwizard-" LINK_LIBRARIES Qt::Test KF6::I18n Qt::Gui Qt::Widgets KPim6::MailTransport KF6::ConfigCore KF6::ConfigGui KPim6::KSieveUi libsieveeditor -) + ) endmacro() - - add_sieveeditor_importwizard_unittest(importimapsettingsearchpagetest.cpp "") add_sieveeditor_importwizard_unittest(importimapsettingnofoundpagetest.cpp "") add_sieveeditor_importwizard_unittest(importimapsettingsakonadicheckjobtest.cpp "importimapsettingspasswordtest.cpp") diff --git a/src/importwizard/autotests/data/config/usecustomsieveconfig/akonadi_kolab_resource_0rc b/src/importwizard/autotests/data/config/usecustomsieveconfig/akonadi_kolab_resource_0rc index 379d4559..c55a8307 100644 --- a/src/importwizard/autotests/data/config/usecustomsieveconfig/akonadi_kolab_resource_0rc +++ b/src/importwizard/autotests/data/config/usecustomsieveconfig/akonadi_kolab_resource_0rc @@ -8,4 +8,3 @@ SieveSupport=true SieveReuseConfig=false SievePort=150 SieveCustomUsername=b - diff --git a/src/importwizard/autotests/data/config/usecustomsieveconfig2/akonadi_kolab_resource_0rc b/src/importwizard/autotests/data/config/usecustomsieveconfig2/akonadi_kolab_resource_0rc index 73e2c2ce..162e6c3b 100644 --- a/src/importwizard/autotests/data/config/usecustomsieveconfig2/akonadi_kolab_resource_0rc +++ b/src/importwizard/autotests/data/config/usecustomsieveconfig2/akonadi_kolab_resource_0rc @@ -11,4 +11,3 @@ SieveSupport=true SieveReuseConfig=false SievePort=150 SieveCustomUsername=b - diff --git a/src/importwizard/autotests/data/config/usecustomsieveconfig3/akonadi_kolab_resource_0rc b/src/importwizard/autotests/data/config/usecustomsieveconfig3/akonadi_kolab_resource_0rc index 645a946c..c7fa18ff 100644 --- a/src/importwizard/autotests/data/config/usecustomsieveconfig3/akonadi_kolab_resource_0rc +++ b/src/importwizard/autotests/data/config/usecustomsieveconfig3/akonadi_kolab_resource_0rc @@ -12,4 +12,3 @@ SieveSupport=true SieveReuseConfig=false SievePort=150 SieveCustomUsername=b - diff --git a/src/importwizard/autotests/data/config/usecustomsieveconfig4/akonadi_kolab_resource_0rc b/src/importwizard/autotests/data/config/usecustomsieveconfig4/akonadi_kolab_resource_0rc index 0b78bb89..c9054022 100644 --- a/src/importwizard/autotests/data/config/usecustomsieveconfig4/akonadi_kolab_resource_0rc +++ b/src/importwizard/autotests/data/config/usecustomsieveconfig4/akonadi_kolab_resource_0rc @@ -12,4 +12,3 @@ SieveSupport=true SieveReuseConfig=false SievePort=150 SieveCustomUsername=b - diff --git a/src/importwizard/autotests/data/thunderbird2/profiles.ini b/src/importwizard/autotests/data/thunderbird2/profiles.ini index 44d86039..e0f96bd6 100644 --- a/src/importwizard/autotests/data/thunderbird2/profiles.ini +++ b/src/importwizard/autotests/data/thunderbird2/profiles.ini @@ -6,4 +6,3 @@ Name=default IsRelative=1 Path=profile1 Default=1 - diff --git a/src/importwizard/autotests/data/thunderbirdencryptionnone/profiles.ini b/src/importwizard/autotests/data/thunderbirdencryptionnone/profiles.ini index 44d86039..e0f96bd6 100644 --- a/src/importwizard/autotests/data/thunderbirdencryptionnone/profiles.ini +++ b/src/importwizard/autotests/data/thunderbirdencryptionnone/profiles.ini @@ -6,4 +6,3 @@ Name=default IsRelative=1 Path=profile1 Default=1 - diff --git a/src/importwizard/autotests/data/thunderbirdencryptionnoneoneaccount/profiles.ini b/src/importwizard/autotests/data/thunderbirdencryptionnoneoneaccount/profiles.ini index 44d86039..e0f96bd6 100644 --- a/src/importwizard/autotests/data/thunderbirdencryptionnoneoneaccount/profiles.ini +++ b/src/importwizard/autotests/data/thunderbirdencryptionnoneoneaccount/profiles.ini @@ -6,4 +6,3 @@ Name=default IsRelative=1 Path=profile1 Default=1 - diff --git a/src/importwizard/autotests/data/thunderbirdencryptionssl/profiles.ini b/src/importwizard/autotests/data/thunderbirdencryptionssl/profiles.ini index 44d86039..e0f96bd6 100644 --- a/src/importwizard/autotests/data/thunderbirdencryptionssl/profiles.ini +++ b/src/importwizard/autotests/data/thunderbirdencryptionssl/profiles.ini @@ -6,4 +6,3 @@ Name=default IsRelative=1 Path=profile1 Default=1 - diff --git a/src/importwizard/autotests/data/thunderbirdencryptionssloneaccount/profiles.ini b/src/importwizard/autotests/data/thunderbirdencryptionssloneaccount/profiles.ini index 44d86039..e0f96bd6 100644 --- a/src/importwizard/autotests/data/thunderbirdencryptionssloneaccount/profiles.ini +++ b/src/importwizard/autotests/data/thunderbirdencryptionssloneaccount/profiles.ini @@ -6,4 +6,3 @@ Name=default IsRelative=1 Path=profile1 Default=1 - diff --git a/src/importwizard/autotests/data/thunderbirdencryptionstarttls/profiles.ini b/src/importwizard/autotests/data/thunderbirdencryptionstarttls/profiles.ini index 44d86039..e0f96bd6 100644 --- a/src/importwizard/autotests/data/thunderbirdencryptionstarttls/profiles.ini +++ b/src/importwizard/autotests/data/thunderbirdencryptionstarttls/profiles.ini @@ -6,4 +6,3 @@ Name=default IsRelative=1 Path=profile1 Default=1 - diff --git a/src/importwizard/autotests/data/thunderbirdencryptionstarttlsoneaccount/profiles.ini b/src/importwizard/autotests/data/thunderbirdencryptionstarttlsoneaccount/profiles.ini index 44d86039..e0f96bd6 100644 --- a/src/importwizard/autotests/data/thunderbirdencryptionstarttlsoneaccount/profiles.ini +++ b/src/importwizard/autotests/data/thunderbirdencryptionstarttlsoneaccount/profiles.ini @@ -6,4 +6,3 @@ Name=default IsRelative=1 Path=profile1 Default=1 - diff --git a/src/importwizard/tests/CMakeLists.txt b/src/importwizard/tests/CMakeLists.txt index e92d747d..40e6cbe4 100644 --- a/src/importwizard/tests/CMakeLists.txt +++ b/src/importwizard/tests/CMakeLists.txt @@ -2,7 +2,8 @@ # SPDX-License-Identifier: BSD-3-Clause add_executable(sieveeditorimportwizardtest main.cpp) -target_link_libraries(sieveeditorimportwizardtest +target_link_libraries( + sieveeditorimportwizardtest Qt::Widgets KF6::WidgetsAddons KF6::I18n @@ -12,4 +13,3 @@ target_link_libraries(sieveeditorimportwizardtest KPim6::KSieveUi libsieveeditor ) - diff --git a/src/settings/sieveeditorglobalconfig.kcfg b/src/settings/sieveeditorglobalconfig.kcfg index 9de7bd14..ad35c7ad 100644 --- a/src/settings/sieveeditorglobalconfig.kcfg +++ b/src/settings/sieveeditorglobalconfig.kcfg @@ -18,7 +18,7 @@ <group name="General"> <entry name="PreviousNewFeaturesMD5" type="String"> <default></default> - </entry> + </entry> </group> <group name="Views"> <entry key="ShowMenuBar" type="Bool"> diff --git a/src/sieveeditor-version.h.in b/src/sieveeditor-version.h.in index 179d11fc..833b47a5 100644 --- a/src/sieveeditor-version.h.in +++ b/src/sieveeditor-version.h.in @@ -6,4 +6,3 @@ #pragma once #define SIEVEEDITOR_VERSION "@KDEPIM_VERSION@" - diff --git a/src/sieveeditor.qrc b/src/sieveeditor.qrc index ff69adb4..a83891e6 100644 --- a/src/sieveeditor.qrc +++ b/src/sieveeditor.qrc @@ -8,4 +8,3 @@ <file>sieveeditorui.rc</file> </qresource> </RCC> - diff --git a/src/sieveeditorui.rc b/src/sieveeditorui.rc index 72e73c65..fe57ac70 100644 --- a/src/sieveeditorui.rc +++ b/src/sieveeditorui.rc @@ -68,9 +68,8 @@ </MenuBar> <ToolBar name="mainToolBar"><text>Main Toolbar</text> -<Spacer/> +<Spacer/> <Action name="hamburger_menu"/> </ToolBar> </gui> -
