finance/kraft: import upstream patches to deal with Akonadi renames

This commit is contained in:
Adriaan de Groot 2023-09-10 10:44:36 +02:00
parent 1c5ba1421a
commit 3edfc59720
5 changed files with 339 additions and 1 deletions

View file

@ -1,7 +1,7 @@
PORTNAME= kraft
DISTVERSIONPREFIX= v
DISTVERSION= 1.0
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= finance kde
MAINTAINER= kde@FreeBSD.org

View file

@ -0,0 +1,119 @@
From f54b317f5cd894e4063b6d4c4c3a96012c1bcb28 Mon Sep 17 00:00:00 2001
From: Klaas Freitag <kraft@freisturz.de>
Date: Sat, 29 Apr 2023 10:37:55 +0200
Subject: [PATCH] Adopt CMake files to Akonadi prefix KPim5
---
CMakeLists.txt | 16 ++++++++++------
src/CMakeLists.txt | 13 ++++++-------
tools/CMakeLists.txt | 6 +++---
3 files changed, 19 insertions(+), 16 deletions(-)
diff --git CMakeLists.txt CMakeLists.txt
index 07e15dd..8b5374c 100644
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -8,6 +8,9 @@ find_package(ECM REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
set(CMAKE_AUTOMOC TRUE)
+# Akonadi Prefix: Set this to KF5 for builds with Akonadi Libs before 5.23
+set(AKO_PREFIX "KPim5")
+
include(KDEInstallDirs)
include(KDECMakeSettings)
include(ECMInstallIcons)
@@ -47,23 +50,23 @@ set_package_properties(Grantlee5 PROPERTIES
TYPE OPTIONAL
)
-find_package(KF5Akonadi)
-set_package_properties(KF5Akonadi PROPERTIES
+find_package(${AKO_PREFIX}Akonadi)
+set_package_properties(${AKO_PREFIX}Akonadi PROPERTIES
DESCRIPTION "Library for general Access to Akonadi"
URL "https://www.kde.org/"
PURPOSE "Optionally used for addressbook integration"
TYPE OPTIONAL
)
-find_package(KF5AkonadiContact)
-set_package_properties(KF5AkonadiContact PROPERTIES
+find_package(${AKO_PREFIX}AkonadiContact)
+set_package_properties(${AKO_PREFIX}AkonadiContact PROPERTIES
DESCRIPTION "Library for Accessing Contacts stored in Akonadi"
URL "https://www.kde.org/"
PURPOSE "Optionally used for addressbook integration"
TYPE OPTIONAL
)
-if(KF5Akonadi_FOUND AND KF5AkonadiContact_FOUND)
+if(${AKO_PREFIX}Akonadi_FOUND AND ${AKO_PREFIX}AkonadiContact_FOUND)
add_definitions(-DHAVE_AKONADI)
endif()
@@ -80,7 +83,8 @@ set(QT_DEFINITIONS "${Qt5Core_DEFINITIONS} ${Qt5Gui_DEFINITIONS} ${Qt5Widgets_DE
add_definitions(${QT_DEFINITIONS} )
include_directories(${QT_INCLUDES} src)
-include_directories( /usr/include/KF5/AkonadiCore )
+include_directories( /usr/include/${AKO_PREFIX}/AkonadiCore )
+include_directories(/usr/include/${AKO_PREFIX}/)
if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po")
ki18n_install(po)
diff --git src/CMakeLists.txt src/CMakeLists.txt
index 6eaa557..8e9b069 100644
--- src/CMakeLists.txt
+++ src/CMakeLists.txt
@@ -1,4 +1,3 @@
-# include_directories(${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} ${KDEPIMLIBS_INCLUDE_DIRS} external)
include_directories(${QT_INCLUDES} src)
add_subdirectory(pics)
@@ -167,13 +166,13 @@ set(KRAFT_LINK_LIBS
${CTEMPLATE_LIBRARIES} pthread
Grantlee5::Templates
)
-if(KF5Akonadi_FOUND)
+if(${AKO_PREFIX}Akonadi_FOUND)
list(APPEND KRAFT_LINK_LIBS
- KF5::AkonadiCore
- KF5::AkonadiContact
- KF5::AkonadiAgentBase
- KF5::AkonadiWidgets
- KF5::AkonadiXml
+ ${AKO_PREFIX}::AkonadiCore
+ ${AKO_PREFIX}::AkonadiContact
+ ${AKO_PREFIX}::AkonadiAgentBase
+ ${AKO_PREFIX}::AkonadiWidgets
+ ${AKO_PREFIX}::AkonadiXml
)
endif()
diff --git tools/CMakeLists.txt tools/CMakeLists.txt
index 0c58c75..f005cfe 100644
--- tools/CMakeLists.txt
+++ tools/CMakeLists.txt
@@ -8,15 +8,15 @@ set(AUTOMOC ON)
# For now there is only the Akonadi based address backend, and thus
# the findcontact tool is only built if akonadi is there.
# If there are other backends, this must be FIXED.
-if(KF5Akonadi_FOUND)
+if(${AKO_PREFIX}Akonadi_FOUND)
add_executable(${findcontact_NAME} ${FINDCONTACT_SRC})
target_link_libraries( ${findcontact_NAME}
Qt5::Core
Qt5::Widgets
KF5::Contacts
- KF5::AkonadiCore
- KF5::AkonadiContact
+ ${AKO_PREFIX}::AkonadiCore
+ ${AKO_PREFIX}::AkonadiContact
)
########### install files ###############
--
2.41.0

View file

@ -0,0 +1,25 @@
From 50e090059365ddbacfd219325095f4f6c5f4aa7b Mon Sep 17 00:00:00 2001
From: Klaas Freitag <kraft@freisturz.de>
Date: Sat, 29 Apr 2023 22:23:27 +0200
Subject: [PATCH] use option to set AKO_PREFIX rather than an internal variable
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git CMakeLists.txt CMakeLists.txt
index 8b5374c..f5ecc41 100644
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -9,7 +9,7 @@ set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modul
set(CMAKE_AUTOMOC TRUE)
# Akonadi Prefix: Set this to KF5 for builds with Akonadi Libs before 5.23
-set(AKO_PREFIX "KPim5")
+option(AKO_PREFIX "Akonadi Prefix, either KF5 or KPim5, can be set by -DAKO_PREFIX=KF5" "KPim5")
include(KDEInstallDirs)
include(KDECMakeSettings)
--
2.41.0

View file

@ -0,0 +1,47 @@
From 66b64505bbfbc3285ba34ccacdf454720c8e0abc Mon Sep 17 00:00:00 2001
From: Klaas Freitag <kraft@freisturz.de>
Date: Mon, 1 May 2023 14:09:09 +0200
Subject: [PATCH] Fix Akonadi legacy detection
---
CMakeLists.txt | 8 +++++++-
INSTALL.md | 3 +++
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git CMakeLists.txt CMakeLists.txt
index f5ecc41..82b4e07 100644
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -8,8 +8,14 @@ find_package(ECM REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
set(CMAKE_AUTOMOC TRUE)
+option(AKONADI_LEGACY_BUILD "Build with older versions of Akonadi (KF5 Prefix)" OFF)
# Akonadi Prefix: Set this to KF5 for builds with Akonadi Libs before 5.23
-option(AKO_PREFIX "Akonadi Prefix, either KF5 or KPim5, can be set by -DAKO_PREFIX=KF5" "KPim5")
+set(AKO_PREFIX "KPim5")
+
+if (AKONADI_LEGACY_BUILD)
+ set(AKO_PREFIX "KF5")
+endif()
+message("Akonadi Prefix is ${AKO_PREFIX}")
include(KDEInstallDirs)
include(KDECMakeSettings)
diff --git INSTALL.md INSTALL.md
index 1edd0ae..77d559c 100644
--- INSTALL.md
+++ INSTALL.md
@@ -59,6 +59,9 @@ These are optional to build with Akonadi Support:
- akonadi-contact-devel
- akonadi-devel
+To build with Akonadi versions before 23.04, cmake has to run wtih the
+build option `-DAKONADI_LEGACY_BUILD=ON` to use the old prefix KF5.
+
### Build Kraft
cmake is designed so that the build process can be done in a separate
--
2.41.0

View file

@ -0,0 +1,147 @@
From 51563665cb6b113881e8f1efe00f3df2df48d1f5 Mon Sep 17 00:00:00 2001
From: Klaas Freitag <kraft@freisturz.de>
Date: Tue, 29 Aug 2023 21:03:40 +0200
Subject: [PATCH] Added Akonadi version check for some renamed components
(#210)
* Added Akonadi version check for some renamed components
Akonadi renamed the contact viewer and editors namespace.
kudos to @t-8ch
---
CMakeLists.txt | 10 +++++++++-
src/CMakeLists.txt | 1 +
src/addressselectorwidget.cpp | 20 +++++++++++++++-----
src/addressselectorwidget.h | 15 +++++++++++++--
4 files changed, 38 insertions(+), 8 deletions(-)
diff --git CMakeLists.txt CMakeLists.txt
index 0f5541d..0cd73f9 100644
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -109,7 +109,15 @@ set_package_properties(${AKO_PREFIX}AkonadiContact PROPERTIES
TYPE OPTIONAL
)
-if(${AKO_PREFIX}Akonadi_FOUND AND ${AKO_PREFIX}AkonadiContact_FOUND)
+find_package(${AKO_PREFIX}ContactEditor)
+set_package_properties(${AKO_PREFIX}ContactEditor PROPERTIES
+ DESCRIPTION "Library for editing contacts stored in Akonadi"
+ URL "https://www.kde.org/"
+ PURPOSE "Optionally used for addressbook integration"
+ TYPE OPTIONAL
+)
+
+if(${AKO_PREFIX}Akonadi_FOUND AND ${AKO_PREFIX}AkonadiContact_FOUND AND ${AKO_PREFIX}ContactEditor_FOUND)
add_definitions(-DHAVE_AKONADI)
endif()
diff --git src/CMakeLists.txt src/CMakeLists.txt
index a2bc5dc..eac624d 100644
--- src/CMakeLists.txt
+++ src/CMakeLists.txt
@@ -173,6 +173,7 @@ if(${AKO_PREFIX}Akonadi_FOUND)
list(APPEND KRAFT_LINK_LIBS
${AKO_PREFIX}::AkonadiCore
${AKO_PREFIX}::AkonadiContact
+ ${AKO_PREFIX}::ContactEditor
${AKO_PREFIX}::AkonadiAgentBase
${AKO_PREFIX}::AkonadiWidgets
${AKO_PREFIX}::AkonadiXml
diff --git src/addressselectorwidget.cpp src/addressselectorwidget.cpp
index fd08363..1cf2317 100644
--- src/addressselectorwidget.cpp
+++ src/addressselectorwidget.cpp
@@ -235,7 +235,11 @@ KraftContactViewer::KraftContactViewer(QWidget *parent)
lay->setMargin(0);
setLayout(lay);
#ifdef HAVE_AKONADI
+#if AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 24, 0)
+ _contactViewer = new ContactEditor::ContactViewer;
+#else
_contactViewer = new Akonadi::ContactViewer;
+#endif
_contactViewer->setShowQRCode(false);
lay->addWidget(_contactViewer);
@@ -372,9 +376,12 @@ bool AddressSelectorWidget::backendUp() const
void AddressSelectorWidget::slotCreateNewContact()
{
#ifdef HAVE_AKONADI
- // FIXME
-_addressEditor.reset(new Akonadi::ContactEditorDialog( Akonadi::ContactEditorDialog::CreateMode, this ));
-_addressEditor->show();
+#if AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 24, 0)
+ _addressEditor = new ContactEditor::ContactEditorDialog(ContactEditor::ContactEditorDialog::EditMode, this );
+#else
+ _addressEditor = new Akonadi::ContactEditorDialog(Akonadi::ContactEditorDialog::CreateMode, this );
+#endif
+ _addressEditor->show();
#endif
}
@@ -398,13 +405,16 @@ void AddressSelectorWidget::slotAddresseeSelected(QModelIndex index)
void AddressSelectorWidget::slotEditContact()
{
#ifdef HAVE_AKONADI
-
if( _addressTreeView->selectionModel()->hasSelection() ) {
QModelIndex index = _addressTreeView->selectionModel()->currentIndex();
if ( index.isValid() ) {
const Akonadi::Item item = index.data( Akonadi::EntityTreeModel::ItemRole ).value<Akonadi::Item>();
if ( item.isValid() && item.hasPayload<KContacts::Addressee>() ) {
- _addressEditor.reset(new Akonadi::ContactEditorDialog( Akonadi::ContactEditorDialog::EditMode, this ));
+#if AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 24, 0)
+ _addressEditor = new ContactEditor::ContactEditorDialog(ContactEditor::ContactEditorDialog::EditMode, this );
+#else
+ _addressEditor = new Akonadi::ContactEditorDialog(Akonadi::ContactEditorDialog::CreateMode, this );
+#endif
_addressEditor->setContact( item );
_addressEditor->show();
}
diff --git src/addressselectorwidget.h src/addressselectorwidget.h
index 4c5ec3e..70d9759 100644
--- src/addressselectorwidget.h
+++ src/addressselectorwidget.h
@@ -30,7 +30,10 @@
#else
#define AKONADICONTACT_VERSION AKONADI_VERSION
#endif
-#if AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 20, 0)
+#if AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 24, 0)
+#include <AkonadiContactEditor/Akonadi/ContactViewer>
+#include <AkonadiContactEditor/Akonadi/ContactEditorDialog>
+#elif AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 20, 0)
#include <AkonadiContact/Akonadi/ContactViewer>
#include <AkonadiContact/Akonadi/ContactEditorDialog>
#else
@@ -66,8 +69,12 @@ class KraftContactViewer : public QWidget
private:
#ifdef HAVE_AKONADI
+#if AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 24, 0)
+ ContactEditor::ContactViewer *_contactViewer;
+#else
Akonadi::ContactViewer *_contactViewer;
#endif
+#endif
};
class AddressSortProxyModel : public QSortFilterProxyModel
@@ -124,7 +131,11 @@ private:
QTreeView *_addressTreeView;
KraftContactViewer *_contactViewer;
#ifdef HAVE_AKONADI
- QScopedPointer<Akonadi::ContactEditorDialog> _addressEditor;
+#if AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 24, 0)
+ ContactEditor::ContactEditorDialog *_addressEditor;
+#else
+ Akonadi::ContactEditorDialog *_addressEditor;
+#endif
#endif
};
--
2.41.0