From 125cda8c708f89e92c6634db9ff374721d3682ae Mon Sep 17 00:00:00 2001 From: Damiano Lombardi Date: Fri, 17 Jan 2025 16:46:36 +0100 Subject: [PATCH 1/8] KadasMapCanvasItemManager singleton with Q_GLOBAL_STATIC --- kadas/gui/kadasmapcanvasitemmanager.cpp | 6 ++++-- kadas/gui/kadasmapcanvasitemmanager.h | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/kadas/gui/kadasmapcanvasitemmanager.cpp b/kadas/gui/kadasmapcanvasitemmanager.cpp index a76102432..e2c878cd0 100644 --- a/kadas/gui/kadasmapcanvasitemmanager.cpp +++ b/kadas/gui/kadasmapcanvasitemmanager.cpp @@ -20,6 +20,8 @@ #include "kadas/gui/kadasmapcanvasitemmanager.h" #include "kadas/gui/mapitems/kadasmapitem.h" +Q_GLOBAL_STATIC( KadasMapCanvasItemManager, sKadasMapCanvasItemManager ) + KadasMapCanvasItemManager::KadasMapCanvasItemManager() { connect( QgsProject::instance(), &QgsProject::readProject, this, &KadasMapCanvasItemManager::readFromProject ); @@ -28,13 +30,13 @@ KadasMapCanvasItemManager::KadasMapCanvasItemManager() KadasMapCanvasItemManager *KadasMapCanvasItemManager::instance() { - static KadasMapCanvasItemManager manager; - return &manager; + return sKadasMapCanvasItemManager; } void KadasMapCanvasItemManager::addItem( KadasMapItem *item ) { instance()->mMapItems.append( item ); + qDebug() << "Instance:" << instance(); connect( item, &KadasMapItem::aboutToBeDestroyed, instance(), &KadasMapCanvasItemManager::itemAboutToBeDestroyed ); emit instance() -> itemAdded( item ); } diff --git a/kadas/gui/kadasmapcanvasitemmanager.h b/kadas/gui/kadasmapcanvasitemmanager.h index 059298a15..f947cc47e 100644 --- a/kadas/gui/kadasmapcanvasitemmanager.h +++ b/kadas/gui/kadasmapcanvasitemmanager.h @@ -34,6 +34,7 @@ class KADAS_GUI_EXPORT KadasMapCanvasItemManager : public QObject Q_OBJECT public: + KadasMapCanvasItemManager() SIP_FORCE; static KadasMapCanvasItemManager *instance(); static void addItem( KadasMapItem *item ); static void removeItem( KadasMapItem *item ); @@ -46,8 +47,6 @@ class KADAS_GUI_EXPORT KadasMapCanvasItemManager : public QObject void itemWillBeRemoved( const KadasMapItem *item ); private: - KadasMapCanvasItemManager() SIP_FORCE; - QList mMapItems; private slots: From 468cff02bb389ab0b7cc9deee08efb26484c1441 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Mon, 20 Jan 2025 09:59:27 +0100 Subject: [PATCH 2/8] Build with shared libs --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index a21ea6278..25dda7ed9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,6 +49,9 @@ include(GenerateExportHeader) set(CMAKE_CXX_STANDARD 17) +set(BUILD_SHARED_LIBS + ON + CACHE BOOL "Build using shared libraries") set(KADAS_NAME "Kadas" CACHE STRING "Kadas application name" From 54d3996dd7c7aca7cf957b5a4ab4fabf5893a562 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 08:59:36 +0000 Subject: [PATCH 3/8] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 25dda7ed9..78701f3e8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +51,8 @@ set(CMAKE_CXX_STANDARD 17) set(BUILD_SHARED_LIBS ON - CACHE BOOL "Build using shared libraries") + CACHE BOOL "Build using shared libraries" +) set(KADAS_NAME "Kadas" CACHE STRING "Kadas application name" From 610d18576b447b844f3bc09338fa5209a827962c Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Mon, 20 Jan 2025 10:21:33 +0100 Subject: [PATCH 4/8] Fix bookmarks export --- kadas/app/kadasbookmarksmenu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kadas/app/kadasbookmarksmenu.h b/kadas/app/kadasbookmarksmenu.h index 514b194ef..b575a3666 100644 --- a/kadas/app/kadasbookmarksmenu.h +++ b/kadas/app/kadasbookmarksmenu.h @@ -29,7 +29,7 @@ class QgsMapCanvas; class QgsMessageBar; -class KADAS_GUI_EXPORT KadasBookmarksMenu : public QMenu +class KadasBookmarksMenu : public QMenu { Q_OBJECT public: From aa96e7820c1a40d7d2c7ee1eee6a01cf1d8ec2a6 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Mon, 20 Jan 2025 11:07:06 +0100 Subject: [PATCH 5/8] Debug --- .github/workflows/build-windows.yml | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index bd1e1043f..6103c170f 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -106,16 +106,9 @@ jobs: run: | cmake --build build --config Release - # A preliminary smoke test to determine basic functional python - # To be replaced with something proper when testing lands - - name: 🚭 PySmokeTest - shell: bash - env: - PYTHONPATH: build/output/python/ - run: | - ./build/vcpkg_installed/x64-windows/tools/python3/python.exe -c 'from kadas.kadasgui import *' - ./build/vcpkg_installed/x64-windows/tools/python3/python.exe -c 'from kadas.kadascore import *' - ./build/vcpkg_installed/x64-windows/tools/python3/python.exe -c 'from kadas.kadasanalysis import *' + + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 - name: 📦 Package run: | @@ -136,6 +129,17 @@ jobs: path: | build/kadas-*-win64.msi + # A preliminary smoke test to determine basic functional python + # To be replaced with something proper when testing lands + - name: 🚭 PySmokeTest + shell: bash + env: + PYTHONPATH: build/output/python/ + run: | + ./build/vcpkg_installed/x64-windows/tools/python3/python.exe -c 'from kadas.kadasgui import *' + ./build/vcpkg_installed/x64-windows/tools/python3/python.exe -c 'from kadas.kadascore import *' + ./build/vcpkg_installed/x64-windows/tools/python3/python.exe -c 'from kadas.kadasanalysis import *' + - name: Upload release assets uses: softprops/action-gh-release@v2 if: ${{ github.event_name == 'release' }} From 78fe39645d6f1accff1807e4fd84babc98f864b7 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Mon, 20 Jan 2025 13:29:20 +0100 Subject: [PATCH 6/8] Fix smoke test for dlls --- .github/workflows/build-windows.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 6103c170f..e1f9bfa0b 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -106,10 +106,6 @@ jobs: run: | cmake --build build --config Release - - - name: Setup tmate session - uses: mxschmitt/action-tmate@v3 - - name: 📦 Package run: | cmake --build build --target bundle --config Release @@ -136,9 +132,15 @@ jobs: env: PYTHONPATH: build/output/python/ run: | - ./build/vcpkg_installed/x64-windows/tools/python3/python.exe -c 'from kadas.kadasgui import *' - ./build/vcpkg_installed/x64-windows/tools/python3/python.exe -c 'from kadas.kadascore import *' - ./build/vcpkg_installed/x64-windows/tools/python3/python.exe -c 'from kadas.kadasanalysis import *' + set -e + $(python < Date: Mon, 20 Jan 2025 13:50:19 +0100 Subject: [PATCH 7/8] Update build-windows.yml --- .github/workflows/build-windows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index e1f9bfa0b..894316331 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -133,7 +133,7 @@ jobs: PYTHONPATH: build/output/python/ run: | set -e - $(python < Date: Mon, 20 Jan 2025 15:29:11 +0100 Subject: [PATCH 8/8] Update kadas/gui/kadasmapcanvasitemmanager.cpp --- kadas/gui/kadasmapcanvasitemmanager.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/kadas/gui/kadasmapcanvasitemmanager.cpp b/kadas/gui/kadasmapcanvasitemmanager.cpp index e2c878cd0..7a785241b 100644 --- a/kadas/gui/kadasmapcanvasitemmanager.cpp +++ b/kadas/gui/kadasmapcanvasitemmanager.cpp @@ -36,7 +36,6 @@ KadasMapCanvasItemManager *KadasMapCanvasItemManager::instance() void KadasMapCanvasItemManager::addItem( KadasMapItem *item ) { instance()->mMapItems.append( item ); - qDebug() << "Instance:" << instance(); connect( item, &KadasMapItem::aboutToBeDestroyed, instance(), &KadasMapCanvasItemManager::itemAboutToBeDestroyed ); emit instance() -> itemAdded( item ); }