Compare commits

...

101 Commits

Author SHA1 Message Date
Jean Felder
5029b328b0
Merge c84954481637e139d1817456e7f40ea93eb40226 into b927df884feb840b67724af5c82c8088a9d20bfe 2025-07-02 13:17:38 +02:00
Loïc Bartoletti
b927df884f
Merge pull request #62484 from jef-n/fix-62478
fix #62478 (followup eac401c009)
2025-07-02 06:09:23 +02:00
qgis-bot
fe299930cd auto sipify 🍺 2025-07-01 23:40:57 +00:00
Mathieu Pellerin
8c7edbeec2 Rename rotation enum keys 2025-07-02 11:38:05 +12:00
Mathieu Pellerin
ce2c8ac21f Address review 2025-07-02 11:38:05 +12:00
Mathieu Pellerin
faf4afcba7 Fix case warning 2025-07-02 11:38:05 +12:00
Mathieu Pellerin
4bad76d876 Where did my pre-commit hook go? 2025-07-02 11:38:05 +12:00
Mathieu Pellerin
1f6c1277dd Lock rotation handle UI/UX behind an enabled boolean 2025-07-02 11:38:05 +12:00
Mathieu Pellerin
ae463d8b75 Implement a ctrl modifier to snap to common angles when rotating item(s) 2025-07-02 11:38:05 +12:00
Mathieu Pellerin
fb0d20942d Show rotation (delta) value in status bar 2025-07-02 11:38:05 +12:00
Mathieu Pellerin
1680a6cd2e [layouts] Brand new layout item rotation handles 2025-07-02 11:38:05 +12:00
Juergen E. Fischer
6fd32d92fd fix #62478 (followup eac401c009) 2025-07-01 17:54:58 +02:00
Juergen E. Fischer
74549aad26 Reapply "Allow free naming of project properties (#60855)"
This reverts commit fb11239112adfc321b3bbacbb20da888a7a37c23.
2025-07-01 09:08:44 +00:00
Juergen E. Fischer
eac401c009 if a plugin supports qt6 it should also support QGIS4 (fixes #62359) 2025-07-01 09:07:26 +00:00
Loïc Bartoletti
1f0166d35e
Merge pull request #62365 from benoitdm-oslandia/fix/cgibin_dir
fix: update default cgi-bin installation paths according to OS
2025-07-01 07:26:25 +02:00
Loïc Bartoletti
ada589bb1d
Merge pull request #62052 from martin-s42/visitPointsByRegularDistance-segfault-fix
fix segfault due to calling qgsDoubleNear with tollerance that can ne…
2025-07-01 06:59:03 +02:00
Alexander Bruy
08dd318614
Merge pull request #62463 from qgis/m-kuhn-patch-2
Add qtimageformats
2025-06-30 12:19:41 +01:00
Nyall Dawson
ac9051e2b6 Update src/core/CMakeLists.txt 2025-06-30 14:03:24 +12:00
Nyall Dawson
a940543035 Fix a number of warnings when building in c++20 mode 2025-06-30 14:03:24 +12:00
qgis-bot
d1528ee83d auto sipify 🍺 2025-06-29 23:10:34 +00:00
Mathieu Pellerin
d49bfa66ee Disable bogus lint warnings 2025-06-30 11:07:37 +12:00
Mathieu Pellerin
d31b74c0ae Address review 2025-06-30 11:07:37 +12:00
Mathieu Pellerin
231929e6e3 Make the feature filter provider thread friendly, relocate old filter classes back into server 2025-06-30 11:07:37 +12:00
Mathieu Pellerin
8133424f5e Address review 2025-06-30 11:07:37 +12:00
Mathieu Pellerin
d8d7d5480e Fix rebase conflict 2025-06-30 11:07:37 +12:00
Mathieu Pellerin
42e2fbfc09 Add test masks 2025-06-30 11:07:37 +12:00
Mathieu Pellerin
6c9e71fae2 Sipify, again! 2025-06-30 11:07:37 +12:00
Mathieu Pellerin
d2377a0c48 Sipify 2025-06-30 11:07:37 +12:00
Mathieu Pellerin
432e29a504 Add test coverage 2025-06-30 11:07:37 +12:00
Mathieu Pellerin
cc17d79bd7 [layout] Add an atlas option to limit coverage layer rendering to the current feature only 2025-06-30 11:07:37 +12:00
Mathieu Pellerin
cbee242034 Move QgsFeatureFilter and QgsFeatureFilterProviderGroup from server into core 2025-06-30 11:07:37 +12:00
github-actions[bot]
e5ee5686c1 auto-fix pre-commit issues 2025-06-29 23:04:38 +00:00
Harrissou Sant-anna
8c0a4221e1 Add more methods to the Processing script template 2025-06-30 11:03:42 +12:00
David Koňařík
174c548d40 Improve camera XML format per review suggestion 2025-06-29 19:44:56 +02:00
David Koňařík
19ded7be74 Fix saving/loading 3D map view viewpoint
Previously the point was saved in origin-relative coordinates. Now since
we pick the origin automatically, it can be changed by various
initialisation routines, so the coordinates will be interpreted relative
to the wrong origin.

This commit changes the format to use map coordinates instead, and saves
the "original" origin from the XML for interpreting older projects.
2025-06-29 19:44:56 +02:00
Matthias Kuhn
89dbd40b8f
Add qtimageformats 2025-06-29 13:02:03 +02:00
Germán Carrillo
429500187c [tests] Add more tests for extent parameter in Package Layers algorithm 2025-06-29 09:00:21 +12:00
Germán Carrillo
cd7a0f9ce4 [tests] Tests for extent parameter in Package Layers algorithm 2025-06-29 09:00:21 +12:00
Germán Carrillo
700ba50d15 [feature] Add optional extent parameter for Package Layers alg., to only export features that intersect a given extent 2025-06-29 09:00:21 +12:00
Alexander Bruy
4edb67501a
Merge pull request #62438 from uclaros/fix-vtiles-longint
Fix overflow in vector tile long int attributes
2025-06-27 15:38:04 +01:00
bdm-oslandia
b1c8ef3265 fixup! fix: update default cgi-bin installation paths according to OS 2025-06-27 09:35:48 +02:00
Alessandro Pasotti
b32ddd8972
Merge pull request #62429 from dvdkon/fix-exit-crash
Fix crash when exiting QGIS
2025-06-27 08:15:13 +02:00
Nyall Dawson
e388375c71 Bump workflow python versions 2025-06-27 16:18:55 +12:00
Nyall Dawson
e13978d61f Bump minimum Python version to 3.11 2025-06-27 16:18:55 +12:00
Matthias Kuhn
852d84a8c8
Merge pull request #62433 from m-kuhn/network-comm
[macos] Local network communication
2025-06-27 05:52:00 +02:00
uclaros
7e1d3bb944 Fix overflow in vector tile long int attributes 2025-06-26 16:58:11 +03:00
Matthias Kuhn
c36d211e8b Local network communication 2025-06-26 11:49:46 +02:00
David Koňařík
4a0477af3c Fix crash when exiting QGIS
The handler was being called when the QgsAuthConfigurationStorageDb
object had been already destroyed.
2025-06-26 09:58:56 +02:00
Alessandro Pasotti
c637e42516
Merge pull request #62394 from elpaso/server-wfs-3d-z-gml-part-2-server
[server] Server WFS Z gml transactional support
2025-06-26 09:19:40 +02:00
Nyall Dawson
ea4fa041e8 Update README 2025-06-26 11:49:00 +12:00
Nyall Dawson
b9c2611153 Remove xca project folder
Keys are now generated with a script
2025-06-26 11:49:00 +12:00
Nyall Dawson
b3920f056f Revert "[Tests] Disable 7 tests that break due to expired certificate"
This reverts commit 47576382adeea10d5392bd36d1fcc277d6172496.
2025-06-26 11:49:00 +12:00
Nyall Dawson
e06fec0084 Add script to regenerate auth certificates 2025-06-26 11:49:00 +12:00
Martin Dobias
37449ae90f More robust way to pick zoom level of a scene layer (2D)
For world-wide datasets like google 3d tiles or quantized mesh terrains,
when zoomed full, the 2D map canvas would fetch tiles at a much more
detailed zoom level than I would expect. It turned out this was because
of ellipsoidal distance calculation on full extent width, where we would
often calculate much shorter distances than we should.

To make it more robust, we use only one pixel distance at the center
of the map, which should avoid these issues.
2025-06-26 10:33:04 +12:00
Matthias Kuhn
85637da1f1
Remove spaces from master build ids 2025-06-25 20:22:17 +02:00
Matthias Kuhn
ced6fd5280
Use filename instead of display-name 2025-06-25 18:49:54 +02:00
Matthias Kuhn
2b1c9fe053
Fix ccache id for macos 2025-06-25 16:08:44 +02:00
Matthias Kuhn
4fa4a323ff
Merge pull request #62407 from qgis/py-duckdb
Add py-duckdb and fix master builds of mac packages
2025-06-25 15:40:03 +02:00
Matthias Kuhn
244746fde0 Fixed target name and configurable executable name 2025-06-25 09:52:05 +02:00
Matthias Kuhn
99ff547e69 vcpkg-diff: graceful with * at the start of the line 2025-06-25 09:23:53 +02:00
Matthias Kuhn
ae81584a3f Add py-duckdb 2025-06-25 08:56:01 +02:00
bdm-oslandia
f4cf09d4b0 fixup! fix: update default cgi-bin installation paths according to OS 2025-06-25 08:29:52 +02:00
bdm-oslandia
9db58e3726 fixup! fix: update default cgi-bin installation paths according to OS 2025-06-24 17:37:57 +02:00
Alessandro Pasotti
379a3ee48b Add server tests for Z WFS transactions 2025-06-24 10:45:38 +02:00
Alessandro Pasotti
755fe2dec0 Restore patch from julien 2025-06-24 10:36:33 +02:00
Alessandro Pasotti
0a5242ac96 Server WFS: GML Z transaction support 2025-06-24 10:36:33 +02:00
bdm-oslandia
551aa20f20 fix: update default cgi-bin installation paths according to OS 2025-06-23 10:44:49 +02:00
Jean Felder
c849544816
tests: Update test_core_layoutmanualtable masks for qt 6.9 2025-06-17 22:10:55 +02:00
Jean Felder
42dc01b772
tests: Update test_core_layoutlabel masks for qt 6.9 2025-06-17 22:10:54 +02:00
Jean Felder
0632f2edbb
tests: Update test_core_layouttable tests for qt 6.9 2025-06-17 22:10:54 +02:00
Jean Felder
b2538d2259
tests: Update test_core_legendrenderer tests for qt 6.9 2025-06-17 22:10:54 +02:00
Jean Felder
8f16dcfa73
tests: Update test_core_datadefinedsizelegend masks for qt 6.9 2025-06-17 22:10:53 +02:00
Jean Felder
4f1f3056b6
tests: Update PyQgsTextRenderer masks for qt 6.9 2025-06-17 22:10:53 +02:00
Jean Felder
a6c084fb17
tests: Update PyQgsServerWMSGetPrintOutputs tests for qt 6.9 2025-06-17 21:46:21 +02:00
Jean Felder
b357daacd5
tests: Update PyQgsServerWMSGetPrintExtra masks for qt 6.9 2025-06-17 21:46:20 +02:00
Jean Felder
a116c74164
tests: Update PyQgsServerWMSGetPrint masks for qt 6.9 2025-06-17 21:46:20 +02:00
Jean Felder
2380db7f18
tests: Update PyQgsServerWMSGetMap masks for qt 6.9 2025-06-17 21:46:19 +02:00
Jean Felder
8f86f2e22e
tests: Update PyQgsServerWMSGetLegendGraphic masks for qt 6.9 2025-06-17 21:46:19 +02:00
Jean Felder
caf413d3ad
tests: Update PyQgsProfileSourceRegistry masks for qt 6.9 2025-06-17 21:46:18 +02:00
Jean Felder
707b54f739
tests: Update PyQgsMeshLayerLabeling masks for qt 6.9 2025-06-17 21:46:18 +02:00
Jean Felder
0c45184799
tests: Update PyQgsLayoutMap masks for qt 6.9 2025-06-17 21:46:17 +02:00
Jean Felder
d4b0cc7819
tests: Update PyQgsLayoutLegend masks for qt 6.9 2025-06-17 21:46:17 +02:00
Jean Felder
f89c2b0364
tests: Update PyQgsRasterLabeling masks for qt 6.9 2025-06-17 21:46:16 +02:00
Jean Felder
62f0f5c94e
tests: Update elevation profile masks for qt 6.9 2025-06-17 21:46:16 +02:00
Jean Felder
dadbf039ea
tests: Update test_core_maprendererjob masks for qt 6.9 2025-06-17 21:45:55 +02:00
Jean Felder
fb449b1cfc
tests: Update test_core_layoutscalebar masks for qt 6.9 2025-06-16 18:43:10 +02:00
Jean Felder
2a7a329347
tests: Update PyQgsLayoutAtlas masks for qt 6.9 2025-06-16 18:43:10 +02:00
Jean Felder
31e6fe6906
tests: Update PyQgsColorRampLegendNode masks for qt 6.9 2025-06-16 18:43:09 +02:00
Jean Felder
5a17c9c7bc
tests: Update maprotation masks for qt 6.9 2025-06-16 18:43:09 +02:00
Jean Felder
a97bc042d5
tests: Update pallabeling masks for qt 6.9 2025-06-16 18:43:08 +02:00
Jean Felder
98adc45f3b
tests: Update core_callout masks for qt 6.9 2025-06-16 18:43:08 +02:00
Jean Felder
c3b62d98b9
chore(ci): Upgrade to fedora 42 2025-06-16 10:40:10 +02:00
Jean Felder
a160613e9b
tests: Update selective masking masks for qt 6.9 2025-06-16 10:40:10 +02:00
Jean Felder
cdc03196db
tests: Update qgswebengine masks for qt 6.9 2025-06-12 19:46:43 +02:00
Jean Felder
37be88f82c
tests: Update svg cache masks for qt 6.9 2025-06-12 19:46:42 +02:00
Jean Felder
0cb2a6573b
tests: Update annotation picture item masks for qt 6.9 2025-06-12 19:46:42 +02:00
Jean Felder
f57367d269
tests: Update svg marker masks for qt 6.9 2025-06-12 19:46:42 +02:00
Jean Felder
1973267cb3
tests: Update composer label masks for qt 6.9 2025-06-12 19:46:41 +02:00
Jean Felder
b426450728
tests(hillshade): Update hash for fedora 42 2025-06-12 19:46:41 +02:00
Jean Felder
b6798e1d92
test(grass): Update hash for fedora 42 2025-06-12 19:46:41 +02:00
Martin Siegert
a156c43f7b
fix segfault due to calling qgsDoubleNear with tollerance that can never been reached
see issue #60772: function interpolatePoint in qgsabstractprofilesurfacegenerator.cpp:157 can return a nullpointer causing a segfault because qgsDoubleNear in visitPointsByRegularDistance in qgslinestring.cpp is called with a tolerance that is too small so that qgsDoubleNear always returns false. Solution: scale epsilon by the size of the numbers to be compared.
2025-05-29 13:37:03 -07:00
926 changed files with 7604 additions and 4649 deletions

View File

@ -1,4 +1,4 @@
ARG DISTRO_VERSION=39
ARG DISTRO_VERSION=42
FROM fedora:${DISTRO_VERSION} AS binary-for-oracle
LABEL org.opencontainers.image.authors="Matthias Kuhn <matthias@opengis.ch>"

1
.gitattributes vendored
View File

@ -1,2 +1,3 @@
*.sip export-subst
*.py export-subst
tests/testdata/auth_system/certs_keys/donald_key_DSA_crlf.pem text eol=crlf

View File

@ -26,7 +26,7 @@ runs:
SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)
BRANCH_NAME=${GITHUB_REF#refs/heads/}
ID="$BRANCH_NAME-$SHORT_SHA"
DISPLAY_ID="$BRANCH_NAME build $SHORT_SHA"
DISPLAY_ID="$BRANCH_NAME-$SHORT_SHA"
fi
# Set outputs

View File

@ -10,7 +10,7 @@ def extract_packages(data):
for line in lines:
# Regex to match the package format and capture features inside brackets
match = re.match(
r"\s*\*\s+([^\[\]:]+)(?:\[(.*?)\])?:([^\[\]@]+)@([^\s]+)\s+--", line
r"\s*\*?\s+([^\[\]:]+)(?:\[(.*?)\])?:([^\[\]@]+)@([^\s]+)\s+--", line
)
if match:
package_name = match.group(1)

View File

@ -67,8 +67,8 @@ jobs:
uses: hendrikmuhs/ccache-action@v1.2
with:
max-size: 500M
key: build-ccache-win64-qt6-${{ github.event.pull_request.base.ref || github.ref_name }}
# save: ${{ github.event_name == 'push' }}
key: build-ccache-${{ matrix.triplet }}-qt6-${{ github.event.pull_request.base.ref || github.ref_name }}
save: ${{ github.event_name == 'push' }}
- name: 🛍️ Tune ccache configuration
shell: bash
@ -136,14 +136,14 @@ jobs:
- name: Archive app
run: |
gtar -cpvzf qgis-app-${{steps.workflow-artifact-ids.outputs.display-name}}-${{ matrix.triplet }}.tar.gz ./build/_CPack_Packages/Darwin/External/*/*.app
gtar -cpvzf qgis-app-${{steps.workflow-artifact-ids.outputs.filename}}-${{ matrix.triplet }}.tar.gz ./build/_CPack_Packages/Darwin/External/*/*.app
- name: 📤 Upload app
uses: actions/upload-artifact@v4
with:
name: qgis-app-${{steps.workflow-artifact-ids.outputs.display-name}}-${{ matrix.triplet }}
name: qgis-app-${{steps.workflow-artifact-ids.outputs.filename}}-${{ matrix.triplet }}
path: |
qgis-app-${{steps.workflow-artifact-ids.outputs.display-name}}-${{ matrix.triplet }}.tar.gz
qgis-app-${{steps.workflow-artifact-ids.outputs.filename}}-${{ matrix.triplet }}.tar.gz
schedule_download_comment:
name: Create dmg
@ -165,16 +165,16 @@ jobs:
- name: 📤 Download app
uses: actions/download-artifact@v4
with:
pattern: qgis-app-${{steps.workflow-artifact-ids.outputs.display-name}}-*
pattern: qgis-app-${{steps.workflow-artifact-ids.outputs.filename}}-*
path: |
artifacts
- name: Create universal app
run: |
mkdir -p x64
gtar --strip-components=5 -zxf ./artifacts/qgis-app-${{steps.workflow-artifact-ids.outputs.display-name}}-x64-osx-dynamic-release/qgis-app-${{steps.workflow-artifact-ids.outputs.display-name}}-x64-osx-dynamic-release.tar.gz -C x64
gtar --strip-components=5 -zxf ./artifacts/qgis-app-${{steps.workflow-artifact-ids.outputs.filename}}-x64-osx-dynamic-release/qgis-app-${{steps.workflow-artifact-ids.outputs.filename}}-x64-osx-dynamic-release.tar.gz -C x64
mkdir -p arm64
gtar --strip-components=5 -zxf ./artifacts/qgis-app-${{steps.workflow-artifact-ids.outputs.display-name}}-arm64-osx-dynamic-release/qgis-app-${{steps.workflow-artifact-ids.outputs.display-name}}-arm64-osx-dynamic-release.tar.gz -C arm64
gtar --strip-components=5 -zxf ./artifacts/qgis-app-${{steps.workflow-artifact-ids.outputs.filename}}-arm64-osx-dynamic-release/qgis-app-${{steps.workflow-artifact-ids.outputs.filename}}-arm64-osx-dynamic-release.tar.gz -C arm64
pip install lipomerge
lipomerge ./x64 ./arm64 universal
@ -198,7 +198,7 @@ jobs:
uses: actions/upload-artifact@v4
id: artifact-mac-qt6
with:
name: qgis-${{steps.workflow-artifact-ids.outputs.display-name}}-dmg
name: qgis-${{steps.workflow-artifact-ids.outputs.filename}}-dmg
path: |
*.dmg

View File

@ -24,10 +24,10 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python 3.10
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.13'
- name: Install requirements
run: |
wget https://www.doxygen.nl/files/doxygen-${DOXYGEN_VERSION}.linux.bin.tar.gz
@ -176,10 +176,10 @@ jobs:
sip_check:
runs-on: ubuntu-latest
steps:
- name: Set up Python 3.12
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
- name: Install Requirements
run: |
python -m pip install --upgrade pip
@ -214,6 +214,6 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
- name: Run Check
run: python3 scripts/includemocs.py src --dry-run

View File

@ -59,7 +59,7 @@ jobs:
experimental: false
unity-builds: ON
- distro-version: '39'
- distro-version: '42'
qt-version: 6
run-tests: true
with-qt6: ON
@ -251,7 +251,7 @@ jobs:
docker-target: binary-only
- qt-version: 6
distro-version: 39
distro-version: 42
docker-target: binary-only
- qt-version: 5

View File

@ -14,7 +14,7 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: '3.12'
python-version: '3.13'
- name: Install Requirements
run: pip install nose2 mock termcolor pyyaml

View File

@ -67,11 +67,7 @@ set(COMPLETE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINO
set(RELEASE_NAME "Master")
project(qgis VERSION ${COMPLETE_VERSION})
if (APPLE)
set(QGIS_APP_NAME "QGIS" CACHE STRING "The main app name and bundle name")
else()
set(QGIS_APP_NAME "qgis")
endif()
set(QGIS_APP_NAME "qgis" CACHE STRING "The main app name and bundle name")
# Note the version no is Mmmpp for Major/minor/patch, 0-padded, thus '10100' for 1.1.0
math(EXPR QGIS_VERSION_INT "${CPACK_PACKAGE_VERSION_MAJOR}*10000+${CPACK_PACKAGE_VERSION_MINOR}*100+${CPACK_PACKAGE_VERSION_PATCH}")
@ -899,7 +895,7 @@ if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" ST
include("cmake/modules/linker.cmake")
endif()
set(MIN_PYTHON_VERSION "3.9")
set(MIN_PYTHON_VERSION "3.11")
set(Python_FIND_FRAMEWORK "LAST")
if (WITH_BINDINGS)
@ -983,7 +979,31 @@ if (WITH_CORE)
else()
# UNIX
set (DEFAULT_BIN_SUBDIR bin)
set (DEFAULT_CGIBIN_SUBDIR bin)
# From https://www.cyberciti.biz/faq/how-do-i-find-the-url-for-my-cgi-bin/
execute_process(COMMAND lsb_release -a OUTPUT_VARIABLE LSB_RELEASE_A)
if(EXISTS "/etc/fedora-release")
# in /var/www/cgi-bin
set (DEFAULT_CGIBIN_SUBDIR www/cgi-bin)
elseif (${CMAKE_HOST_SYSTEM_NAME} MATCHES "FreeBSD")
# in /usr/local/www/cgi-bin/
set (DEFAULT_CGIBIN_SUBDIR www/cgi-bin)
elseif (${CMAKE_HOST_SYSTEM_NAME} MATCHES "BSD")
# in /usr/local/libexec/cgi-bin/
set (DEFAULT_CGIBIN_SUBDIR libexec/cgi-bin)
elseif ("${LSB_RELEASE_A}" MATCHES "Ubuntu" OR "${LSB_RELEASE_A}" MATCHES "Debian" OR "${LSB_RELEASE_A}" MATCHES "Mint")
# in /usr/lib/cgi-bin/
set (DEFAULT_CGIBIN_SUBDIR lib/cgi-bin)
else()
# others: Red Hat/CentOS/Rocky/Alma Linux
# in /var/www/cgi-bin/
set (DEFAULT_CGIBIN_SUBDIR www/cgi-bin)
endif()
set (DEFAULT_LIB_SUBDIR lib${LIB_SUFFIX})
set (DEFAULT_DATA_SUBDIR share/qgis)
set (DEFAULT_LIBEXEC_SUBDIR lib${LIB_SUFFIX}/qgis)

View File

@ -102,7 +102,7 @@ Required build tools:
* CMake >= 3.12.0
* Flex >= 2.5.6
* Bison >= 2.4
* Python >= 3.7
* Python >= 3.11
Required build dependencies:

View File

@ -4,7 +4,7 @@ set(CPACK_OUTPUT_CONFIG_FILE "${CMAKE_BINARY_DIR}/BundleConfig.cmake")
add_custom_target(bundle
COMMAND ${CMAKE_CPACK_COMMAND} "--config" "${CMAKE_BINARY_DIR}/BundleConfig.cmake" "--verbose"
COMMENT "Running CPACK. Please wait..."
DEPENDS "${QGIS_APP_NAME}")
DEPENDS qgis)
if(WIN32 AND NOT UNIX)
set (CREATE_NSIS FALSE CACHE BOOL "Create an installer using NSIS")

View File

@ -52,7 +52,7 @@ add_custom_target (translations ALL DEPENDS ${QM_FILES} ${MD_FILES})
# first compile sources, then compile translations
if (WITH_DESKTOP)
add_dependencies (translations ${QGIS_APP_NAME})
add_dependencies (translations qgis)
endif()
install (FILES ${QM_FILES}

View File

@ -336,14 +336,11 @@
<string>zh_CN</string>
<string>zh_TW</string>
</array>
<key>LSEnvironment</key>
<dict>
<key>QT_AUTO_SCREEN_SCALE_FACTOR</key>
<string>1</string>
</dict>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>
<string>True</string>
<key>NSLocalNetworkUsageDescription</key>
<string>QGIS needs local network access to communicate with devices on your network.</string>
</dict>
</plist>

View File

@ -62,7 +62,7 @@ Returns intensity of the light
Sets intensity of the light
%End
bool operator==( const QgsDirectionalLightSettings &other );
bool operator==( const QgsDirectionalLightSettings &other ) const;
};

View File

@ -95,7 +95,7 @@ Returns quadratic attenuation (A_2)
Sets quadratic attenuation (A_2)
%End
bool operator==( const QgsPointLightSettings &other );
bool operator==( const QgsPointLightSettings &other ) const;
};

View File

@ -153,7 +153,7 @@ pointing towards north. The angle should range from 0 to 360.
%Docstring
Writes camera configuration to the given DOM element
%End
void readXml( const QDomElement &elem );
void readXml( const QDomElement &elem, QgsVector3D savedOrigin );
%Docstring
Reads camera configuration from the given DOM element
%End

View File

@ -62,7 +62,7 @@ Returns intensity of the light
Sets intensity of the light
%End
bool operator==( const QgsDirectionalLightSettings &other );
bool operator==( const QgsDirectionalLightSettings &other ) const;
};

View File

@ -95,7 +95,7 @@ Returns quadratic attenuation (A_2)
Sets quadratic attenuation (A_2)
%End
bool operator==( const QgsPointLightSettings &other );
bool operator==( const QgsPointLightSettings &other ) const;
};

View File

@ -153,7 +153,7 @@ pointing towards north. The angle should range from 0 to 360.
%Docstring
Writes camera configuration to the given DOM element
%End
void readXml( const QDomElement &elem );
void readXml( const QDomElement &elem, QgsVector3D savedOrigin );
%Docstring
Reads camera configuration from the given DOM element
%End

View File

@ -10135,6 +10135,9 @@ QgsLayoutRenderContext.FlagAlwaysUseGlobalMasks = Qgis.LayoutRenderFlag.AlwaysUs
QgsLayoutRenderContext.Flag.FlagAlwaysUseGlobalMasks = Qgis.LayoutRenderFlag.AlwaysUseGlobalMasks
QgsLayoutRenderContext.FlagAlwaysUseGlobalMasks.is_monkey_patched = True
QgsLayoutRenderContext.FlagAlwaysUseGlobalMasks.__doc__ = "When applying clipping paths for selective masking, always use global (\"entire map\") paths, instead of calculating local clipping paths per rendered feature. This results in considerably more complex layout exports in all current Qt versions. This flag only applies to vector layout exports. \n.. versionadded:: 3.38"
QgsLayoutRenderContext.LimitCoverageLayerRenderToCurrentFeature = Qgis.LayoutRenderFlag.LimitCoverageLayerRenderToCurrentFeature
QgsLayoutRenderContext.LimitCoverageLayerRenderToCurrentFeature.is_monkey_patched = True
QgsLayoutRenderContext.LimitCoverageLayerRenderToCurrentFeature.__doc__ = "Limit coverage layer rendering to the current atlas feature. \n.. versionadded:: 4.0"
Qgis.LayoutRenderFlag.__doc__ = """Flags for controlling how a layout is rendered.
.. note::
@ -10200,6 +10203,10 @@ Qgis.LayoutRenderFlag.__doc__ = """Flags for controlling how a layout is rendere
Available as ``QgsLayoutRenderContext.FlagAlwaysUseGlobalMasks`` in older QGIS releases.
* ``LimitCoverageLayerRenderToCurrentFeature``: Limit coverage layer rendering to the current atlas feature.
.. versionadded:: 4.0
"""
# --
@ -11498,6 +11505,10 @@ Qgis.MouseHandlesAction.ResizeLeftUp.__doc__ = "Resize left up (Top left handle)
Qgis.MouseHandlesAction.ResizeRightUp.__doc__ = "Resize right up (Top right handle)"
Qgis.MouseHandlesAction.ResizeLeftDown.__doc__ = "Resize left down (Bottom left handle)"
Qgis.MouseHandlesAction.ResizeRightDown.__doc__ = "Resize right down (Bottom right handle)"
Qgis.MouseHandlesAction.RotateTopLeft.__doc__ = "Rotate from top left handle. \n.. versionadded:: 4.0"
Qgis.MouseHandlesAction.RotateTopRight.__doc__ = "Rotate from top right handle. \n.. versionadded:: 4.0"
Qgis.MouseHandlesAction.RotateBottomLeft.__doc__ = "Rotate from bottom left handle. \n.. versionadded:: 4.0"
Qgis.MouseHandlesAction.RotateBottomRight.__doc__ = "Rotate right bottom right handle. \n.. versionadded:: 4.0"
Qgis.MouseHandlesAction.SelectItem.__doc__ = "Select item"
Qgis.MouseHandlesAction.NoAction.__doc__ = "No action"
Qgis.MouseHandlesAction.__doc__ = """Action to be performed by the mouse handles
@ -11513,6 +11524,22 @@ Qgis.MouseHandlesAction.__doc__ = """Action to be performed by the mouse handles
* ``ResizeRightUp``: Resize right up (Top right handle)
* ``ResizeLeftDown``: Resize left down (Bottom left handle)
* ``ResizeRightDown``: Resize right down (Bottom right handle)
* ``RotateTopLeft``: Rotate from top left handle.
.. versionadded:: 4.0
* ``RotateTopRight``: Rotate from top right handle.
.. versionadded:: 4.0
* ``RotateBottomLeft``: Rotate from bottom left handle.
.. versionadded:: 4.0
* ``RotateBottomRight``: Rotate right bottom right handle.
.. versionadded:: 4.0
* ``SelectItem``: Select item
* ``NoAction``: No action

View File

@ -0,0 +1,5 @@
# The following has been generated automatically from src/core/qgsfeatureexpressionfilterprovider.h
try:
QgsFeatureExpressionFilterProvider.__overridden_methods__ = ['filterFeatures', 'layerAttributes', 'clone']
except (NameError, AttributeError):
pass

View File

@ -1,5 +1,6 @@
# The following has been generated automatically from src/core/qgsfeaturefilterprovider.h
try:
QgsFeatureFilterProvider.__abstract_methods__ = ['filterFeatures', 'layerAttributes', 'clone']
QgsFeatureFilterProvider.__virtual_methods__ = ['isFilterThreadSafe', 'filterFeatures']
QgsFeatureFilterProvider.__abstract_methods__ = ['layerAttributes', 'clone']
except (NameError, AttributeError):
pass

View File

@ -0,0 +1,5 @@
# The following has been generated automatically from src/core/qgsgroupedfeaturefilterprovider.h
try:
QgsGroupedFeatureFilterProvider.__overridden_methods__ = ['isFilterThreadSafe', 'filterFeatures', 'layerAttributes', 'clone']
except (NameError, AttributeError):
pass

View File

@ -73,6 +73,26 @@ Sets whether the coverage layer should be hidden in map items in the
layouts.
.. seealso:: :py:func:`hideCoverage`
%End
bool limitCoverageLayerRenderToCurrentFeature() const;
%Docstring
Returns ``True`` if the atlas is set to limit rendering on the coverage
layer to the current feature.
.. seealso:: :py:func:`setHideCoverage`
.. versionadded:: 4.0
%End
void setLimitCoverageLayerRenderToCurrentFeature( bool limit );
%Docstring
Sets whether the rendering of the coverage layer should be limited to
the current feature.
.. seealso:: :py:func:`hideCoverage`
.. versionadded:: 4.0
%End
QString filenameExpression() const;

View File

@ -2912,6 +2912,7 @@ The development version
LosslessImageRendering,
SynchronousLegendGraphics,
AlwaysUseGlobalMasks,
LimitCoverageLayerRenderToCurrentFeature,
};
typedef QFlags<Qgis::LayoutRenderFlag> LayoutRenderFlags;
@ -3346,6 +3347,10 @@ The development version
ResizeRightUp,
ResizeLeftDown,
ResizeRightDown,
RotateTopLeft,
RotateTopRight,
RotateBottomLeft,
RotateBottomRight,
SelectItem,
NoAction
};

View File

@ -0,0 +1,57 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeatureexpressionfilterprovider.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
class QgsFeatureExpressionFilterProvider : QgsFeatureFilterProvider
{
%Docstring(signature="appended")
A feature filter provider allowing to set filter expressions on a
per-layer basis.
.. versionadded:: 4.0
%End
%TypeHeaderCode
#include "qgsfeatureexpressionfilterprovider.h"
%End
public:
QgsFeatureExpressionFilterProvider();
%Docstring
Constructor
%End
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const /Deprecated/;
virtual void filterFeatures( const QString &layerId, QgsFeatureRequest &filterFeatures ) const;
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
virtual QgsFeatureExpressionFilterProvider *clone() const /Factory/;
void setFilter( const QString &layerId, const QgsExpression &expression );
%Docstring
Set a filter for the given layer.
:param layerId: the layer to filter
:param expression: the filter expression
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeatureexpressionfilterprovider.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/

View File

@ -0,0 +1,93 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeaturefilter.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
class QgsFeatureFilter : QgsFeatureFilterProvider
{
%Docstring(signature="appended")
A feature filter provider allowing to set filter expressions on a
per-layer basis.
%End
%TypeHeaderCode
#include "qgsfeaturefilter.h"
%End
public:
QgsFeatureFilter();
%Docstring
Constructor
%End
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const /Deprecated="Since 4.0. Use the layer ID variant."/;
%Docstring
Filter the features of the layer
:param layer: the layer to control
:param filterFeatures: the request to fill
.. deprecated:: 4.0
Use the layer ID variant.
%End
virtual void filterFeatures( const QString &layerId, QgsFeatureRequest &filterFeatures ) const;
%Docstring
Filter the features of the layer
:param layerId: the layer ID to control
:param filterFeatures: the request to fill
%End
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
virtual QgsFeatureFilterProvider *clone() const /Factory/;
%Docstring
Returns a clone of the object
:return: A clone
%End
void setFilter( const QgsVectorLayer *layer, const QgsExpression &expression ) /Deprecated="Since 4.0. Use the layer ID variant."/;
%Docstring
Set a filter for the given layer.
:param layer: the layer to filter
:param expression: the filter expression
.. deprecated:: 4.0
Use the layer ID variant.
%End
void setFilter( const QString &layerId, const QgsExpression &expression );
%Docstring
Set a filter for the given layer.
:param layerId: the layer to filter
:param expression: the filter expression
.. versionadded:: 4.0
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeaturefilter.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/

View File

@ -30,7 +30,17 @@ also available.
public:
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &featureRequest ) const = 0;
virtual bool isFilterThreadSafe() const /Deprecated="Since 4.0. "/;
%Docstring
Returns ``True`` if the filterFeature function is thread safe, which
will lead to reliance on layer ID instead of the raw layer pointer.
.. versionadded:: 4.0
.. deprecated:: 4.0
%End
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &featureRequest ) const /Deprecated="Since 4.0. Use the layer ID variant."/;
%Docstring
Add additional filters to the feature request to further restrict the
features returned by the request. Derived classes must implement this
@ -38,6 +48,22 @@ method.
:param layer: the layer to filter
:param featureRequest: the feature request to update
.. deprecated:: 4.0
Use the layer ID variant.
%End
virtual void filterFeatures( const QString &layerId, QgsFeatureRequest &featureRequest ) const;
%Docstring
Add additional filters to the feature request to further restrict the
features returned by the request. Derived classes must implement this
method.
:param layerId: the layer ID to filter
:param featureRequest: the feature request to update
.. versionadded:: 4.0
%End
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const = 0;

View File

@ -0,0 +1,81 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeaturefilterprovidergroup.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
class QgsFeatureFilterProviderGroup : QgsFeatureFilterProvider
{
%Docstring(signature="appended")
A filter filter provider grouping several filter providers.
%End
%TypeHeaderCode
#include "qgsfeaturefilterprovidergroup.h"
%End
public:
QgsFeatureFilterProviderGroup();
%Docstring
Constructor
%End
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const /Deprecated="Since 4.0. Use the layer ID variant."/;
%Docstring
Filter the features of the layer.
:param layer: the layer to control
:param filterFeatures: the request to fill
.. deprecated:: 4.0
Use the layer ID variant.
%End
virtual void filterFeatures( const QString &layerId, QgsFeatureRequest &filterFeatures ) const;
%Docstring
Filter the features of the layer.
:param layerId: the layer ID to control
:param filterFeatures: the request to fill
.. versionadded:: 4.0
%End
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
virtual QgsFeatureFilterProvider *clone() const /Factory/;
%Docstring
Returns a clone of the object
:return: A clone
%End
QgsFeatureFilterProviderGroup &addProvider( const QgsFeatureFilterProvider *provider );
%Docstring
Add another filter provider to the group
:param provider: The provider to add
:return: itself
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeaturefilterprovidergroup.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/

View File

@ -0,0 +1,60 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsgroupedfeaturefilterprovider.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
class QgsGroupedFeatureFilterProvider : QgsFeatureFilterProvider
{
%Docstring(signature="appended")
A filter filter provider grouping several filter providers.
.. versionadded:: 4.0
%End
%TypeHeaderCode
#include "qgsgroupedfeaturefilterprovider.h"
%End
public:
QgsGroupedFeatureFilterProvider();
%Docstring
Constructor
%End
virtual bool isFilterThreadSafe() const /Deprecated/;
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const /Deprecated/;
virtual void filterFeatures( const QString &layerId, QgsFeatureRequest &filterFeatures ) const;
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
virtual QgsGroupedFeatureFilterProvider *clone() const /Factory/;
QgsGroupedFeatureFilterProvider &addProvider( const QgsFeatureFilterProvider *provider );
%Docstring
Add another filter provider to the group
:param provider: The provider to add
:return: itself
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsgroupedfeaturefilterprovider.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/

View File

@ -1,14 +1,14 @@
Qgis.defaultProjectScales: src/core/qgis.h#L6067
Qgis.defaultProjectScales: src/core/qgis.h#L6072
Qgis.devVersion: src/core/qgis.h#L89
Qgis.geoNone: src/core/qgis.h#L6112
Qgis.geoProj4: src/core/qgis.h#L6142
Qgis.geoWkt: src/core/qgis.h#L6133
Qgis.geographicCrsAuthId: src/core/qgis.h#L6122
Qgis.geosVersion: src/core/qgis.h#L6102
Qgis.geosVersionInt: src/core/qgis.h#L6074
Qgis.geosVersionMajor: src/core/qgis.h#L6081
Qgis.geosVersionMinor: src/core/qgis.h#L6088
Qgis.geosVersionPatch: src/core/qgis.h#L6095
Qgis.geoNone: src/core/qgis.h#L6117
Qgis.geoProj4: src/core/qgis.h#L6147
Qgis.geoWkt: src/core/qgis.h#L6138
Qgis.geographicCrsAuthId: src/core/qgis.h#L6127
Qgis.geosVersion: src/core/qgis.h#L6107
Qgis.geosVersionInt: src/core/qgis.h#L6079
Qgis.geosVersionMajor: src/core/qgis.h#L6086
Qgis.geosVersionMinor: src/core/qgis.h#L6093
Qgis.geosVersionPatch: src/core/qgis.h#L6100
Qgis.releaseName: src/core/qgis.h#L79
Qgis.version: src/core/qgis.h#L65
Qgis.versionInt: src/core/qgis.h#L72
@ -4268,6 +4268,12 @@ QgsFeature.setGeometry: src/core/qgsfeature.h#L873
QgsFeature.setId: src/core/qgsfeature.h#L530
QgsFeature.setValid: src/core/qgsfeature.h#L813
QgsFeature: src/core/qgsfeature.h#L57
QgsFeatureExpressionFilterProvider.clone: src/core/qgsfeatureexpressionfilterprovider.h#L43
QgsFeatureExpressionFilterProvider.filterFeatures: src/core/qgsfeatureexpressionfilterprovider.h#L40
QgsFeatureExpressionFilterProvider.filterFeatures: src/core/qgsfeatureexpressionfilterprovider.h#L41
QgsFeatureExpressionFilterProvider.layerAttributes: src/core/qgsfeatureexpressionfilterprovider.h#L42
QgsFeatureExpressionFilterProvider.setFilter: src/core/qgsfeatureexpressionfilterprovider.h#L50
QgsFeatureExpressionFilterProvider: src/core/qgsfeatureexpressionfilterprovider.h#L34
QgsFeatureFilterModel.QgsFeatureFilterModel: src/core/qgsfeaturefiltermodel.h#L48
QgsFeatureFilterModel.extraIdentifierValues: src/core/qgsfeaturefiltermodel.h#L85
QgsFeatureFilterModel.extraIdentifierValuesChanged: src/core/qgsfeaturefiltermodel.h#L107
@ -4279,9 +4285,11 @@ QgsFeatureFilterModel.setExtraIdentifierValueToNull: src/core/qgsfeaturefiltermo
QgsFeatureFilterModel.setExtraIdentifierValues: src/core/qgsfeaturefiltermodel.h#L92
QgsFeatureFilterModel.setIdentifierFields: src/core/qgsfeaturefiltermodel.h#L71
QgsFeatureFilterModel: src/core/qgsfeaturefiltermodel.h#L27
QgsFeatureFilterProvider.clone: src/core/qgsfeaturefilterprovider.h#L71
QgsFeatureFilterProvider.filterFeatures: src/core/qgsfeaturefilterprovider.h#L59
QgsFeatureFilterProvider.layerAttributes: src/core/qgsfeaturefilterprovider.h#L65
QgsFeatureFilterProvider.clone: src/core/qgsfeaturefilterprovider.h#L97
QgsFeatureFilterProvider.filterFeatures: src/core/qgsfeaturefilterprovider.h#L72
QgsFeatureFilterProvider.filterFeatures: src/core/qgsfeaturefilterprovider.h#L85
QgsFeatureFilterProvider.isFilterThreadSafe: src/core/qgsfeaturefilterprovider.h#L59
QgsFeatureFilterProvider.layerAttributes: src/core/qgsfeaturefilterprovider.h#L91
QgsFeatureFilterProvider: src/core/qgsfeaturefilterprovider.h#L41
QgsFeatureIterator.__iter__: src/core/qgsfeatureiterator.h#L294
QgsFeatureIterator.__next__: src/core/qgsfeatureiterator.h#L299
@ -5762,6 +5770,12 @@ QgsGroupLayer.setTransformContext: src/core/qgsgrouplayer.h#L87
QgsGroupLayer.writeSymbology: src/core/qgsgrouplayer.h#L90
QgsGroupLayer.writeXml: src/core/qgsgrouplayer.h#L89
QgsGroupLayer: src/core/qgsgrouplayer.h#L41
QgsGroupedFeatureFilterProvider.clone: src/core/qgsgroupedfeaturefilterprovider.h#L43
QgsGroupedFeatureFilterProvider.filterFeatures: src/core/qgsgroupedfeaturefilterprovider.h#L40
QgsGroupedFeatureFilterProvider.filterFeatures: src/core/qgsgroupedfeaturefilterprovider.h#L41
QgsGroupedFeatureFilterProvider.isFilterThreadSafe: src/core/qgsgroupedfeaturefilterprovider.h#L38
QgsGroupedFeatureFilterProvider.layerAttributes: src/core/qgsgroupedfeaturefilterprovider.h#L42
QgsGroupedFeatureFilterProvider: src/core/qgsgroupedfeaturefilterprovider.h#L32
QgsHashedLineSymbolLayer.clone: src/core/symbology/qgslinesymbollayer.h#L1040
QgsHashedLineSymbolLayer.color: src/core/symbology/qgslinesymbollayer.h#L1042
QgsHashedLineSymbolLayer.create: src/core/symbology/qgslinesymbollayer.h#L1034
@ -6780,53 +6794,55 @@ QgsLayoutAligner.alignItems: src/core/layout/qgslayoutaligner.h#L79
QgsLayoutAligner.distributeItems: src/core/layout/qgslayoutaligner.h#L86
QgsLayoutAligner.resizeItems: src/core/layout/qgslayoutaligner.h#L93
QgsLayoutAligner: src/core/layout/qgslayoutaligner.h#L35
QgsLayoutAtlas.beginRender: src/core/layout/qgslayoutatlas.h#L245
QgsLayoutAtlas.changed: src/core/layout/qgslayoutatlas.h#L314
QgsLayoutAtlas.count: src/core/layout/qgslayoutatlas.h#L247
QgsLayoutAtlas.coverageLayer: src/core/layout/qgslayoutatlas.h#L115
QgsLayoutAtlas.coverageLayerChanged: src/core/layout/qgslayoutatlas.h#L320
QgsLayoutAtlas.createExpressionContext: src/core/layout/qgslayoutatlas.h#L255
QgsLayoutAtlas.currentFeatureNumber: src/core/layout/qgslayoutatlas.h#L253
QgsLayoutAtlas.currentFilename: src/core/layout/qgslayoutatlas.h#L109
QgsLayoutAtlas.beginRender: src/core/layout/qgslayoutatlas.h#L261
QgsLayoutAtlas.changed: src/core/layout/qgslayoutatlas.h#L330
QgsLayoutAtlas.count: src/core/layout/qgslayoutatlas.h#L263
QgsLayoutAtlas.coverageLayer: src/core/layout/qgslayoutatlas.h#L131
QgsLayoutAtlas.coverageLayerChanged: src/core/layout/qgslayoutatlas.h#L336
QgsLayoutAtlas.createExpressionContext: src/core/layout/qgslayoutatlas.h#L271
QgsLayoutAtlas.currentFeatureNumber: src/core/layout/qgslayoutatlas.h#L269
QgsLayoutAtlas.currentFilename: src/core/layout/qgslayoutatlas.h#L125
QgsLayoutAtlas.enabled: src/core/layout/qgslayoutatlas.h#L66
QgsLayoutAtlas.endRender: src/core/layout/qgslayoutatlas.h#L246
QgsLayoutAtlas.featureChanged: src/core/layout/qgslayoutatlas.h#L331
QgsLayoutAtlas.filePath: src/core/layout/qgslayoutatlas.h#L248
QgsLayoutAtlas.filenameExpression: src/core/layout/qgslayoutatlas.h#L92
QgsLayoutAtlas.filterExpression: src/core/layout/qgslayoutatlas.h#L224
QgsLayoutAtlas.filterFeatures: src/core/layout/qgslayoutatlas.h#L207
QgsLayoutAtlas.first: src/core/layout/qgslayoutatlas.h#L286
QgsLayoutAtlas.endRender: src/core/layout/qgslayoutatlas.h#L262
QgsLayoutAtlas.featureChanged: src/core/layout/qgslayoutatlas.h#L347
QgsLayoutAtlas.filePath: src/core/layout/qgslayoutatlas.h#L264
QgsLayoutAtlas.filenameExpression: src/core/layout/qgslayoutatlas.h#L108
QgsLayoutAtlas.filterExpression: src/core/layout/qgslayoutatlas.h#L240
QgsLayoutAtlas.filterFeatures: src/core/layout/qgslayoutatlas.h#L223
QgsLayoutAtlas.first: src/core/layout/qgslayoutatlas.h#L302
QgsLayoutAtlas.hideCoverage: src/core/layout/qgslayoutatlas.h#L78
QgsLayoutAtlas.last: src/core/layout/qgslayoutatlas.h#L277
QgsLayoutAtlas.last: src/core/layout/qgslayoutatlas.h#L293
QgsLayoutAtlas.layout: src/core/layout/qgslayoutatlas.h#L51
QgsLayoutAtlas.messagePushed: src/core/layout/qgslayoutatlas.h#L323
QgsLayoutAtlas.nameForPage: src/core/layout/qgslayoutatlas.h#L140
QgsLayoutAtlas.next: src/core/layout/qgslayoutatlas.h#L259
QgsLayoutAtlas.numberFeaturesChanged: src/core/layout/qgslayoutatlas.h#L328
QgsLayoutAtlas.pageNameExpression: src/core/layout/qgslayoutatlas.h#L128
QgsLayoutAtlas.previous: src/core/layout/qgslayoutatlas.h#L268
QgsLayoutAtlas.limitCoverageLayerRenderToCurrentFeature: src/core/layout/qgslayoutatlas.h#L92
QgsLayoutAtlas.messagePushed: src/core/layout/qgslayoutatlas.h#L339
QgsLayoutAtlas.nameForPage: src/core/layout/qgslayoutatlas.h#L156
QgsLayoutAtlas.next: src/core/layout/qgslayoutatlas.h#L275
QgsLayoutAtlas.numberFeaturesChanged: src/core/layout/qgslayoutatlas.h#L344
QgsLayoutAtlas.pageNameExpression: src/core/layout/qgslayoutatlas.h#L144
QgsLayoutAtlas.previous: src/core/layout/qgslayoutatlas.h#L284
QgsLayoutAtlas.readXml: src/core/layout/qgslayoutatlas.h#L60
QgsLayoutAtlas.refreshCurrentFeature: src/core/layout/qgslayoutatlas.h#L309
QgsLayoutAtlas.renderBegun: src/core/layout/qgslayoutatlas.h#L334
QgsLayoutAtlas.renderEnded: src/core/layout/qgslayoutatlas.h#L337
QgsLayoutAtlas.seekTo: src/core/layout/qgslayoutatlas.h#L295
QgsLayoutAtlas.seekTo: src/core/layout/qgslayoutatlas.h#L304
QgsLayoutAtlas.setCoverageLayer: src/core/layout/qgslayoutatlas.h#L121
QgsLayoutAtlas.refreshCurrentFeature: src/core/layout/qgslayoutatlas.h#L325
QgsLayoutAtlas.renderBegun: src/core/layout/qgslayoutatlas.h#L350
QgsLayoutAtlas.renderEnded: src/core/layout/qgslayoutatlas.h#L353
QgsLayoutAtlas.seekTo: src/core/layout/qgslayoutatlas.h#L311
QgsLayoutAtlas.seekTo: src/core/layout/qgslayoutatlas.h#L320
QgsLayoutAtlas.setCoverageLayer: src/core/layout/qgslayoutatlas.h#L137
QgsLayoutAtlas.setEnabled: src/core/layout/qgslayoutatlas.h#L72
QgsLayoutAtlas.setFilenameExpression: src/core/layout/qgslayoutatlas.h#L102
QgsLayoutAtlas.setFilterExpression: src/core/layout/qgslayoutatlas.h#L237
QgsLayoutAtlas.setFilterFeatures: src/core/layout/qgslayoutatlas.h#L214
QgsLayoutAtlas.setFilenameExpression: src/core/layout/qgslayoutatlas.h#L118
QgsLayoutAtlas.setFilterExpression: src/core/layout/qgslayoutatlas.h#L253
QgsLayoutAtlas.setFilterFeatures: src/core/layout/qgslayoutatlas.h#L230
QgsLayoutAtlas.setHideCoverage: src/core/layout/qgslayoutatlas.h#L84
QgsLayoutAtlas.setPageNameExpression: src/core/layout/qgslayoutatlas.h#L134
QgsLayoutAtlas.setSortAscending: src/core/layout/qgslayoutatlas.h#L178
QgsLayoutAtlas.setSortExpression: src/core/layout/qgslayoutatlas.h#L200
QgsLayoutAtlas.setSortFeatures: src/core/layout/qgslayoutatlas.h#L156
QgsLayoutAtlas.sortAscending: src/core/layout/qgslayoutatlas.h#L167
QgsLayoutAtlas.sortExpression: src/core/layout/qgslayoutatlas.h#L189
QgsLayoutAtlas.sortFeatures: src/core/layout/qgslayoutatlas.h#L148
QgsLayoutAtlas.setLimitCoverageLayerRenderToCurrentFeature: src/core/layout/qgslayoutatlas.h#L100
QgsLayoutAtlas.setPageNameExpression: src/core/layout/qgslayoutatlas.h#L150
QgsLayoutAtlas.setSortAscending: src/core/layout/qgslayoutatlas.h#L194
QgsLayoutAtlas.setSortExpression: src/core/layout/qgslayoutatlas.h#L216
QgsLayoutAtlas.setSortFeatures: src/core/layout/qgslayoutatlas.h#L172
QgsLayoutAtlas.sortAscending: src/core/layout/qgslayoutatlas.h#L183
QgsLayoutAtlas.sortExpression: src/core/layout/qgslayoutatlas.h#L205
QgsLayoutAtlas.sortFeatures: src/core/layout/qgslayoutatlas.h#L164
QgsLayoutAtlas.stringType: src/core/layout/qgslayoutatlas.h#L50
QgsLayoutAtlas.toggled: src/core/layout/qgslayoutatlas.h#L317
QgsLayoutAtlas.updateFeatures: src/core/layout/qgslayoutatlas.h#L243
QgsLayoutAtlas.toggled: src/core/layout/qgslayoutatlas.h#L333
QgsLayoutAtlas.updateFeatures: src/core/layout/qgslayoutatlas.h#L259
QgsLayoutAtlas.writeXml: src/core/layout/qgslayoutatlas.h#L59
QgsLayoutAtlas: src/core/layout/qgslayoutatlas.h#L40
QgsLayoutChecker.setSize: src/core/qgsmultirenderchecker.h#L209
@ -7310,119 +7326,119 @@ QgsLayoutItemManualTable.type: src/core/layout/qgslayoutitemmanualtable.h#L46
QgsLayoutItemManualTable.verticalAlignmentForCell: src/core/layout/qgslayoutitemmanualtable.h#L145
QgsLayoutItemManualTable.writePropertiesToElement: src/core/layout/qgslayoutitemmanualtable.h#L139
QgsLayoutItemManualTable: src/core/layout/qgslayoutitemmanualtable.h#L31
QgsLayoutItemMap.QgsLayoutItemMap: src/core/layout/qgslayoutitemmap.h#L361
QgsLayoutItemMap.accept: src/core/layout/qgslayoutitemmap.h#L828
QgsLayoutItemMap.addLabelBlockingItem: src/core/layout/qgslayoutitemmap.h#L785
QgsLayoutItemMap.addRenderedFeatureHandler: src/core/layout/qgslayoutitemmap.h#L842
QgsLayoutItemMap.assignFreeId: src/core/layout/qgslayoutitemmap.h#L385
QgsLayoutItemMap.atlasClippingSettings: src/core/layout/qgslayoutitemmap.h#L862
QgsLayoutItemMap.atlasDriven: src/core/layout/qgslayoutitemmap.h#L643
QgsLayoutItemMap.atlasMargin: src/core/layout/qgslayoutitemmap.h#L685
QgsLayoutItemMap.atlasScalingMode: src/core/layout/qgslayoutitemmap.h#L662
QgsLayoutItemMap.boundingRect: src/core/layout/qgslayoutitemmap.h#L928
QgsLayoutItemMap.containsAdvancedEffects: src/core/layout/qgslayoutitemmap.h#L604
QgsLayoutItemMap.containsWmsLayer: src/core/layout/qgslayoutitemmap.h#L601
QgsLayoutItemMap.create: src/core/layout/qgslayoutitemmap.h#L395
QgsLayoutItemMap.createExpressionContext: src/core/layout/qgslayoutitemmap.h#L748
QgsLayoutItemMap.crs: src/core/layout/qgslayoutitemmap.h#L471
QgsLayoutItemMap.crsChanged: src/core/layout/qgslayoutitemmap.h#L981
QgsLayoutItemMap.displayName: src/core/layout/qgslayoutitemmap.h#L388
QgsLayoutItemMap.draw: src/core/layout/qgslayoutitemmap.h#L919
QgsLayoutItemMap.drawAnnotations: src/core/layout/qgslayoutitemmap.h#L634
QgsLayoutItemMap.estimatedFrameBleed: src/core/layout/qgslayoutitemmap.h#L915
QgsLayoutItemMap.exportLayerBehavior: src/core/layout/qgslayoutitemmap.h#L408
QgsLayoutItemMap.exportLayerDetails: src/core/layout/qgslayoutitemmap.h#L409
QgsLayoutItemMap.extent: src/core/layout/qgslayoutitemmap.h#L451
QgsLayoutItemMap.extentChanged: src/core/layout/qgslayoutitemmap.h#L948
QgsLayoutItemMap.finalizeRestoreFromXml: src/core/layout/qgslayoutitemmap.h#L766
QgsLayoutItemMap.followVisibilityPreset: src/core/layout/qgslayoutitemmap.h#L570
QgsLayoutItemMap.followVisibilityPresetName: src/core/layout/qgslayoutitemmap.h#L584
QgsLayoutItemMap.framePath: src/core/layout/qgslayoutitemmap.h#L922
QgsLayoutItemMap.grid: src/core/layout/qgslayoutitemmap.h#L707
QgsLayoutItemMap.grids: src/core/layout/qgslayoutitemmap.h#L701
QgsLayoutItemMap.icon: src/core/layout/qgslayoutitemmap.h#L365
QgsLayoutItemMap.invalidateCache: src/core/layout/qgslayoutitemmap.h#L994
QgsLayoutItemMap.isDrawing: src/core/layout/qgslayoutitemmap.h#L925
QgsLayoutItemMap.isLabelBlockingItem: src/core/layout/qgslayoutitemmap.h#L811
QgsLayoutItemMap.itemClippingSettings: src/core/layout/qgslayoutitemmap.h#L869
QgsLayoutItemMap.itemFlags: src/core/layout/qgslayoutitemmap.h#L366
QgsLayoutItemMap.keepLayerSet: src/core/layout/qgslayoutitemmap.h#L500
QgsLayoutItemMap.keepLayerStyles: src/core/layout/qgslayoutitemmap.h#L535
QgsLayoutItemMap.labelMargin: src/core/layout/qgslayoutitemmap.h#L734
QgsLayoutItemMap.layerStyleOverridesChanged: src/core/layout/qgslayoutitemmap.h#L964
QgsLayoutItemMap.layoutToMapCoordsTransform: src/core/layout/qgslayoutitemmap.h#L855
QgsLayoutItemMap.mapFlags: src/core/layout/qgslayoutitemmap.h#L373
QgsLayoutItemMap.mapRotation: src/core/layout/qgslayoutitemmap.h#L622
QgsLayoutItemMap.mapRotationChanged: src/core/layout/qgslayoutitemmap.h#L955
QgsLayoutItemMap.mapSettings: src/core/layout/qgslayoutitemmap.h#L764
QgsLayoutItemMap.mapToItemCoords: src/core/layout/qgslayoutitemmap.h#L934
QgsLayoutItemMap.mapUnitsToLayoutUnits: src/core/layout/qgslayoutitemmap.h#L755
QgsLayoutItemMap.moveContent: src/core/layout/qgslayoutitemmap.h#L594
QgsLayoutItemMap.nextExportPart: src/core/layout/qgslayoutitemmap.h#L407
QgsLayoutItemMap.numberExportLayers: src/core/layout/qgslayoutitemmap.h#L403
QgsLayoutItemMap.overview: src/core/layout/qgslayoutitemmap.h#L722
QgsLayoutItemMap.overviews: src/core/layout/qgslayoutitemmap.h#L715
QgsLayoutItemMap.paint: src/core/layout/qgslayoutitemmap.h#L398
QgsLayoutItemMap.preparedForAtlas: src/core/layout/qgslayoutitemmap.h#L958
QgsLayoutItemMap.presetCrs: src/core/layout/qgslayoutitemmap.h#L481
QgsLayoutItemMap.previewLabelingResults: src/core/layout/qgslayoutitemmap.h#L826
QgsLayoutItemMap.previewRefreshed: src/core/layout/qgslayoutitemmap.h#L988
QgsLayoutItemMap.readPropertiesFromElement: src/core/layout/qgslayoutitemmap.h#L921
QgsLayoutItemMap.refresh: src/core/layout/qgslayoutitemmap.h#L992
QgsLayoutItemMap.refreshDataDefinedProperty: src/core/layout/qgslayoutitemmap.h#L999
QgsLayoutItemMap.removeLabelBlockingItem: src/core/layout/qgslayoutitemmap.h#L798
QgsLayoutItemMap.removeRenderedFeatureHandler: src/core/layout/qgslayoutitemmap.h#L850
QgsLayoutItemMap.renderingErrors: src/core/layout/qgslayoutitemmap.h#L817
QgsLayoutItemMap.requestedExtent: src/core/layout/qgslayoutitemmap.h#L939
QgsLayoutItemMap.requiresRasterization: src/core/layout/qgslayoutitemmap.h#L603
QgsLayoutItemMap.scale: src/core/layout/qgslayoutitemmap.h#L417
QgsLayoutItemMap.setAtlasDriven: src/core/layout/qgslayoutitemmap.h#L651
QgsLayoutItemMap.setAtlasMargin: src/core/layout/qgslayoutitemmap.h#L694
QgsLayoutItemMap.setAtlasScalingMode: src/core/layout/qgslayoutitemmap.h#L673
QgsLayoutItemMap.setCrs: src/core/layout/qgslayoutitemmap.h#L490
QgsLayoutItemMap.setDrawAnnotations: src/core/layout/qgslayoutitemmap.h#L628
QgsLayoutItemMap.setExtent: src/core/layout/qgslayoutitemmap.h#L435
QgsLayoutItemMap.setFollowVisibilityPreset: src/core/layout/qgslayoutitemmap.h#L575
QgsLayoutItemMap.setFollowVisibilityPresetName: src/core/layout/qgslayoutitemmap.h#L592
QgsLayoutItemMap.setFrameStrokeWidth: src/core/layout/qgslayoutitemmap.h#L410
QgsLayoutItemMap.setKeepLayerSet: src/core/layout/qgslayoutitemmap.h#L510
QgsLayoutItemMap.setKeepLayerStyles: src/core/layout/qgslayoutitemmap.h#L541
QgsLayoutItemMap.setLabelMargin: src/core/layout/qgslayoutitemmap.h#L746
QgsLayoutItemMap.setLayerStyleOverrides: src/core/layout/qgslayoutitemmap.h#L553
QgsLayoutItemMap.setLayers: src/core/layout/qgslayoutitemmap.h#L529
QgsLayoutItemMap.setMapFlags: src/core/layout/qgslayoutitemmap.h#L380
QgsLayoutItemMap.setMapRotation: src/core/layout/qgslayoutitemmap.h#L612
QgsLayoutItemMap.setMoveContentPreviewOffset: src/core/layout/qgslayoutitemmap.h#L595
QgsLayoutItemMap.setScale: src/core/layout/qgslayoutitemmap.h#L426
QgsLayoutItemMap.setZRange: src/core/layout/qgslayoutitemmap.h#L912
QgsLayoutItemMap.setZRangeEnabled: src/core/layout/qgslayoutitemmap.h#L878
QgsLayoutItemMap.startLayeredExport: src/core/layout/qgslayoutitemmap.h#L405
QgsLayoutItemMap.stopLayeredExport: src/core/layout/qgslayoutitemmap.h#L406
QgsLayoutItemMap.storeCurrentLayerStyles: src/core/layout/qgslayoutitemmap.h#L558
QgsLayoutItemMap.themeChanged: src/core/layout/qgslayoutitemmap.h#L974
QgsLayoutItemMap.transformedMapPolygon: src/core/layout/qgslayoutitemmap.h#L931
QgsLayoutItemMap.type: src/core/layout/qgslayoutitemmap.h#L364
QgsLayoutItemMap.updateBoundingRect: src/core/layout/qgslayoutitemmap.h#L997
QgsLayoutItemMap.visibleExtentPolygon: src/core/layout/qgslayoutitemmap.h#L461
QgsLayoutItemMap.writePropertiesToElement: src/core/layout/qgslayoutitemmap.h#L920
QgsLayoutItemMap.zRange: src/core/layout/qgslayoutitemmap.h#L900
QgsLayoutItemMap.zRangeEnabled: src/core/layout/qgslayoutitemmap.h#L888
QgsLayoutItemMap.zoomContent: src/core/layout/qgslayoutitemmap.h#L597
QgsLayoutItemMap.zoomToExtent: src/core/layout/qgslayoutitemmap.h#L444
QgsLayoutItemMap: src/core/layout/qgslayoutitemmap.h#L317
QgsLayoutItemMapAtlasClippingSettings.changed: src/core/layout/qgslayoutitemmap.h#L148
QgsLayoutItemMapAtlasClippingSettings.enabled: src/core/layout/qgslayoutitemmap.h#L56
QgsLayoutItemMapAtlasClippingSettings.featureClippingType: src/core/layout/qgslayoutitemmap.h#L70
QgsLayoutItemMapAtlasClippingSettings.forceLabelsInsideFeature: src/core/layout/qgslayoutitemmap.h#L84
QgsLayoutItemMapAtlasClippingSettings.readXml: src/core/layout/qgslayoutitemmap.h#L141
QgsLayoutItemMapAtlasClippingSettings.restrictToLayers: src/core/layout/qgslayoutitemmap.h#L99
QgsLayoutItemMapAtlasClippingSettings.setEnabled: src/core/layout/qgslayoutitemmap.h#L63
QgsLayoutItemMapAtlasClippingSettings.setFeatureClippingType: src/core/layout/qgslayoutitemmap.h#L77
QgsLayoutItemMapAtlasClippingSettings.setForceLabelsInsideFeature: src/core/layout/qgslayoutitemmap.h#L91
QgsLayoutItemMapAtlasClippingSettings.setLayersToClip: src/core/layout/qgslayoutitemmap.h#L127
QgsLayoutItemMapAtlasClippingSettings.setRestrictToLayers: src/core/layout/qgslayoutitemmap.h#L107
QgsLayoutItemMapAtlasClippingSettings.writeXml: src/core/layout/qgslayoutitemmap.h#L134
QgsLayoutItemMapAtlasClippingSettings: src/core/layout/qgslayoutitemmap.h#L40
QgsLayoutItemMap.QgsLayoutItemMap: src/core/layout/qgslayoutitemmap.h#L362
QgsLayoutItemMap.accept: src/core/layout/qgslayoutitemmap.h#L829
QgsLayoutItemMap.addLabelBlockingItem: src/core/layout/qgslayoutitemmap.h#L786
QgsLayoutItemMap.addRenderedFeatureHandler: src/core/layout/qgslayoutitemmap.h#L843
QgsLayoutItemMap.assignFreeId: src/core/layout/qgslayoutitemmap.h#L386
QgsLayoutItemMap.atlasClippingSettings: src/core/layout/qgslayoutitemmap.h#L863
QgsLayoutItemMap.atlasDriven: src/core/layout/qgslayoutitemmap.h#L644
QgsLayoutItemMap.atlasMargin: src/core/layout/qgslayoutitemmap.h#L686
QgsLayoutItemMap.atlasScalingMode: src/core/layout/qgslayoutitemmap.h#L663
QgsLayoutItemMap.boundingRect: src/core/layout/qgslayoutitemmap.h#L929
QgsLayoutItemMap.containsAdvancedEffects: src/core/layout/qgslayoutitemmap.h#L605
QgsLayoutItemMap.containsWmsLayer: src/core/layout/qgslayoutitemmap.h#L602
QgsLayoutItemMap.create: src/core/layout/qgslayoutitemmap.h#L396
QgsLayoutItemMap.createExpressionContext: src/core/layout/qgslayoutitemmap.h#L749
QgsLayoutItemMap.crs: src/core/layout/qgslayoutitemmap.h#L472
QgsLayoutItemMap.crsChanged: src/core/layout/qgslayoutitemmap.h#L982
QgsLayoutItemMap.displayName: src/core/layout/qgslayoutitemmap.h#L389
QgsLayoutItemMap.draw: src/core/layout/qgslayoutitemmap.h#L920
QgsLayoutItemMap.drawAnnotations: src/core/layout/qgslayoutitemmap.h#L635
QgsLayoutItemMap.estimatedFrameBleed: src/core/layout/qgslayoutitemmap.h#L916
QgsLayoutItemMap.exportLayerBehavior: src/core/layout/qgslayoutitemmap.h#L409
QgsLayoutItemMap.exportLayerDetails: src/core/layout/qgslayoutitemmap.h#L410
QgsLayoutItemMap.extent: src/core/layout/qgslayoutitemmap.h#L452
QgsLayoutItemMap.extentChanged: src/core/layout/qgslayoutitemmap.h#L949
QgsLayoutItemMap.finalizeRestoreFromXml: src/core/layout/qgslayoutitemmap.h#L767
QgsLayoutItemMap.followVisibilityPreset: src/core/layout/qgslayoutitemmap.h#L571
QgsLayoutItemMap.followVisibilityPresetName: src/core/layout/qgslayoutitemmap.h#L585
QgsLayoutItemMap.framePath: src/core/layout/qgslayoutitemmap.h#L923
QgsLayoutItemMap.grid: src/core/layout/qgslayoutitemmap.h#L708
QgsLayoutItemMap.grids: src/core/layout/qgslayoutitemmap.h#L702
QgsLayoutItemMap.icon: src/core/layout/qgslayoutitemmap.h#L366
QgsLayoutItemMap.invalidateCache: src/core/layout/qgslayoutitemmap.h#L995
QgsLayoutItemMap.isDrawing: src/core/layout/qgslayoutitemmap.h#L926
QgsLayoutItemMap.isLabelBlockingItem: src/core/layout/qgslayoutitemmap.h#L812
QgsLayoutItemMap.itemClippingSettings: src/core/layout/qgslayoutitemmap.h#L870
QgsLayoutItemMap.itemFlags: src/core/layout/qgslayoutitemmap.h#L367
QgsLayoutItemMap.keepLayerSet: src/core/layout/qgslayoutitemmap.h#L501
QgsLayoutItemMap.keepLayerStyles: src/core/layout/qgslayoutitemmap.h#L536
QgsLayoutItemMap.labelMargin: src/core/layout/qgslayoutitemmap.h#L735
QgsLayoutItemMap.layerStyleOverridesChanged: src/core/layout/qgslayoutitemmap.h#L965
QgsLayoutItemMap.layoutToMapCoordsTransform: src/core/layout/qgslayoutitemmap.h#L856
QgsLayoutItemMap.mapFlags: src/core/layout/qgslayoutitemmap.h#L374
QgsLayoutItemMap.mapRotation: src/core/layout/qgslayoutitemmap.h#L623
QgsLayoutItemMap.mapRotationChanged: src/core/layout/qgslayoutitemmap.h#L956
QgsLayoutItemMap.mapSettings: src/core/layout/qgslayoutitemmap.h#L765
QgsLayoutItemMap.mapToItemCoords: src/core/layout/qgslayoutitemmap.h#L935
QgsLayoutItemMap.mapUnitsToLayoutUnits: src/core/layout/qgslayoutitemmap.h#L756
QgsLayoutItemMap.moveContent: src/core/layout/qgslayoutitemmap.h#L595
QgsLayoutItemMap.nextExportPart: src/core/layout/qgslayoutitemmap.h#L408
QgsLayoutItemMap.numberExportLayers: src/core/layout/qgslayoutitemmap.h#L404
QgsLayoutItemMap.overview: src/core/layout/qgslayoutitemmap.h#L723
QgsLayoutItemMap.overviews: src/core/layout/qgslayoutitemmap.h#L716
QgsLayoutItemMap.paint: src/core/layout/qgslayoutitemmap.h#L399
QgsLayoutItemMap.preparedForAtlas: src/core/layout/qgslayoutitemmap.h#L959
QgsLayoutItemMap.presetCrs: src/core/layout/qgslayoutitemmap.h#L482
QgsLayoutItemMap.previewLabelingResults: src/core/layout/qgslayoutitemmap.h#L827
QgsLayoutItemMap.previewRefreshed: src/core/layout/qgslayoutitemmap.h#L989
QgsLayoutItemMap.readPropertiesFromElement: src/core/layout/qgslayoutitemmap.h#L922
QgsLayoutItemMap.refresh: src/core/layout/qgslayoutitemmap.h#L993
QgsLayoutItemMap.refreshDataDefinedProperty: src/core/layout/qgslayoutitemmap.h#L1000
QgsLayoutItemMap.removeLabelBlockingItem: src/core/layout/qgslayoutitemmap.h#L799
QgsLayoutItemMap.removeRenderedFeatureHandler: src/core/layout/qgslayoutitemmap.h#L851
QgsLayoutItemMap.renderingErrors: src/core/layout/qgslayoutitemmap.h#L818
QgsLayoutItemMap.requestedExtent: src/core/layout/qgslayoutitemmap.h#L940
QgsLayoutItemMap.requiresRasterization: src/core/layout/qgslayoutitemmap.h#L604
QgsLayoutItemMap.scale: src/core/layout/qgslayoutitemmap.h#L418
QgsLayoutItemMap.setAtlasDriven: src/core/layout/qgslayoutitemmap.h#L652
QgsLayoutItemMap.setAtlasMargin: src/core/layout/qgslayoutitemmap.h#L695
QgsLayoutItemMap.setAtlasScalingMode: src/core/layout/qgslayoutitemmap.h#L674
QgsLayoutItemMap.setCrs: src/core/layout/qgslayoutitemmap.h#L491
QgsLayoutItemMap.setDrawAnnotations: src/core/layout/qgslayoutitemmap.h#L629
QgsLayoutItemMap.setExtent: src/core/layout/qgslayoutitemmap.h#L436
QgsLayoutItemMap.setFollowVisibilityPreset: src/core/layout/qgslayoutitemmap.h#L576
QgsLayoutItemMap.setFollowVisibilityPresetName: src/core/layout/qgslayoutitemmap.h#L593
QgsLayoutItemMap.setFrameStrokeWidth: src/core/layout/qgslayoutitemmap.h#L411
QgsLayoutItemMap.setKeepLayerSet: src/core/layout/qgslayoutitemmap.h#L511
QgsLayoutItemMap.setKeepLayerStyles: src/core/layout/qgslayoutitemmap.h#L542
QgsLayoutItemMap.setLabelMargin: src/core/layout/qgslayoutitemmap.h#L747
QgsLayoutItemMap.setLayerStyleOverrides: src/core/layout/qgslayoutitemmap.h#L554
QgsLayoutItemMap.setLayers: src/core/layout/qgslayoutitemmap.h#L530
QgsLayoutItemMap.setMapFlags: src/core/layout/qgslayoutitemmap.h#L381
QgsLayoutItemMap.setMapRotation: src/core/layout/qgslayoutitemmap.h#L613
QgsLayoutItemMap.setMoveContentPreviewOffset: src/core/layout/qgslayoutitemmap.h#L596
QgsLayoutItemMap.setScale: src/core/layout/qgslayoutitemmap.h#L427
QgsLayoutItemMap.setZRange: src/core/layout/qgslayoutitemmap.h#L913
QgsLayoutItemMap.setZRangeEnabled: src/core/layout/qgslayoutitemmap.h#L879
QgsLayoutItemMap.startLayeredExport: src/core/layout/qgslayoutitemmap.h#L406
QgsLayoutItemMap.stopLayeredExport: src/core/layout/qgslayoutitemmap.h#L407
QgsLayoutItemMap.storeCurrentLayerStyles: src/core/layout/qgslayoutitemmap.h#L559
QgsLayoutItemMap.themeChanged: src/core/layout/qgslayoutitemmap.h#L975
QgsLayoutItemMap.transformedMapPolygon: src/core/layout/qgslayoutitemmap.h#L932
QgsLayoutItemMap.type: src/core/layout/qgslayoutitemmap.h#L365
QgsLayoutItemMap.updateBoundingRect: src/core/layout/qgslayoutitemmap.h#L998
QgsLayoutItemMap.visibleExtentPolygon: src/core/layout/qgslayoutitemmap.h#L462
QgsLayoutItemMap.writePropertiesToElement: src/core/layout/qgslayoutitemmap.h#L921
QgsLayoutItemMap.zRange: src/core/layout/qgslayoutitemmap.h#L901
QgsLayoutItemMap.zRangeEnabled: src/core/layout/qgslayoutitemmap.h#L889
QgsLayoutItemMap.zoomContent: src/core/layout/qgslayoutitemmap.h#L598
QgsLayoutItemMap.zoomToExtent: src/core/layout/qgslayoutitemmap.h#L445
QgsLayoutItemMap: src/core/layout/qgslayoutitemmap.h#L318
QgsLayoutItemMapAtlasClippingSettings.changed: src/core/layout/qgslayoutitemmap.h#L149
QgsLayoutItemMapAtlasClippingSettings.enabled: src/core/layout/qgslayoutitemmap.h#L57
QgsLayoutItemMapAtlasClippingSettings.featureClippingType: src/core/layout/qgslayoutitemmap.h#L71
QgsLayoutItemMapAtlasClippingSettings.forceLabelsInsideFeature: src/core/layout/qgslayoutitemmap.h#L85
QgsLayoutItemMapAtlasClippingSettings.readXml: src/core/layout/qgslayoutitemmap.h#L142
QgsLayoutItemMapAtlasClippingSettings.restrictToLayers: src/core/layout/qgslayoutitemmap.h#L100
QgsLayoutItemMapAtlasClippingSettings.setEnabled: src/core/layout/qgslayoutitemmap.h#L64
QgsLayoutItemMapAtlasClippingSettings.setFeatureClippingType: src/core/layout/qgslayoutitemmap.h#L78
QgsLayoutItemMapAtlasClippingSettings.setForceLabelsInsideFeature: src/core/layout/qgslayoutitemmap.h#L92
QgsLayoutItemMapAtlasClippingSettings.setLayersToClip: src/core/layout/qgslayoutitemmap.h#L128
QgsLayoutItemMapAtlasClippingSettings.setRestrictToLayers: src/core/layout/qgslayoutitemmap.h#L108
QgsLayoutItemMapAtlasClippingSettings.writeXml: src/core/layout/qgslayoutitemmap.h#L135
QgsLayoutItemMapAtlasClippingSettings: src/core/layout/qgslayoutitemmap.h#L41
QgsLayoutItemMapGrid.accept: src/core/layout/qgslayoutitemmapgrid.h#L1005
QgsLayoutItemMapGrid.annotationDirection: src/core/layout/qgslayoutitemmapgrid.h#L701
QgsLayoutItemMapGrid.annotationDisplay: src/core/layout/qgslayoutitemmapgrid.h#L656
@ -7553,23 +7569,23 @@ QgsLayoutItemMapItem.stackingPosition: src/core/layout/qgslayoutitemmapitem.h#L1
QgsLayoutItemMapItem.usesAdvancedEffects: src/core/layout/qgslayoutitemmapitem.h#L128
QgsLayoutItemMapItem.writeXml: src/core/layout/qgslayoutitemmapitem.h#L65
QgsLayoutItemMapItem: src/core/layout/qgslayoutitemmapitem.h#L32
QgsLayoutItemMapItemClipPathSettings.changed: src/core/layout/qgslayoutitemmap.h#L297
QgsLayoutItemMapItemClipPathSettings.clipPathInMapItemCoordinates: src/core/layout/qgslayoutitemmap.h#L219
QgsLayoutItemMapItemClipPathSettings.clippedMapExtent: src/core/layout/qgslayoutitemmap.h#L208
QgsLayoutItemMapItemClipPathSettings.enabled: src/core/layout/qgslayoutitemmap.h#L194
QgsLayoutItemMapItemClipPathSettings.featureClippingType: src/core/layout/qgslayoutitemmap.h#L248
QgsLayoutItemMapItemClipPathSettings.finalizeRestoreFromXml: src/core/layout/qgslayoutitemmap.h#L290
QgsLayoutItemMapItemClipPathSettings.forceLabelsInsideClipPath: src/core/layout/qgslayoutitemmap.h#L262
QgsLayoutItemMapItemClipPathSettings.isActive: src/core/layout/qgslayoutitemmap.h#L187
QgsLayoutItemMapItemClipPathSettings.readXml: src/core/layout/qgslayoutitemmap.h#L284
QgsLayoutItemMapItemClipPathSettings.setEnabled: src/core/layout/qgslayoutitemmap.h#L201
QgsLayoutItemMapItemClipPathSettings.setFeatureClippingType: src/core/layout/qgslayoutitemmap.h#L255
QgsLayoutItemMapItemClipPathSettings.setForceLabelsInsideClipPath: src/core/layout/qgslayoutitemmap.h#L269
QgsLayoutItemMapItemClipPathSettings.setSourceItem: src/core/layout/qgslayoutitemmap.h#L233
QgsLayoutItemMapItemClipPathSettings.sourceItem: src/core/layout/qgslayoutitemmap.h#L241
QgsLayoutItemMapItemClipPathSettings.toMapClippingRegion: src/core/layout/qgslayoutitemmap.h#L224
QgsLayoutItemMapItemClipPathSettings.writeXml: src/core/layout/qgslayoutitemmap.h#L276
QgsLayoutItemMapItemClipPathSettings: src/core/layout/qgslayoutitemmap.h#L170
QgsLayoutItemMapItemClipPathSettings.changed: src/core/layout/qgslayoutitemmap.h#L298
QgsLayoutItemMapItemClipPathSettings.clipPathInMapItemCoordinates: src/core/layout/qgslayoutitemmap.h#L220
QgsLayoutItemMapItemClipPathSettings.clippedMapExtent: src/core/layout/qgslayoutitemmap.h#L209
QgsLayoutItemMapItemClipPathSettings.enabled: src/core/layout/qgslayoutitemmap.h#L195
QgsLayoutItemMapItemClipPathSettings.featureClippingType: src/core/layout/qgslayoutitemmap.h#L249
QgsLayoutItemMapItemClipPathSettings.finalizeRestoreFromXml: src/core/layout/qgslayoutitemmap.h#L291
QgsLayoutItemMapItemClipPathSettings.forceLabelsInsideClipPath: src/core/layout/qgslayoutitemmap.h#L263
QgsLayoutItemMapItemClipPathSettings.isActive: src/core/layout/qgslayoutitemmap.h#L188
QgsLayoutItemMapItemClipPathSettings.readXml: src/core/layout/qgslayoutitemmap.h#L285
QgsLayoutItemMapItemClipPathSettings.setEnabled: src/core/layout/qgslayoutitemmap.h#L202
QgsLayoutItemMapItemClipPathSettings.setFeatureClippingType: src/core/layout/qgslayoutitemmap.h#L256
QgsLayoutItemMapItemClipPathSettings.setForceLabelsInsideClipPath: src/core/layout/qgslayoutitemmap.h#L270
QgsLayoutItemMapItemClipPathSettings.setSourceItem: src/core/layout/qgslayoutitemmap.h#L234
QgsLayoutItemMapItemClipPathSettings.sourceItem: src/core/layout/qgslayoutitemmap.h#L242
QgsLayoutItemMapItemClipPathSettings.toMapClippingRegion: src/core/layout/qgslayoutitemmap.h#L225
QgsLayoutItemMapItemClipPathSettings.writeXml: src/core/layout/qgslayoutitemmap.h#L277
QgsLayoutItemMapItemClipPathSettings: src/core/layout/qgslayoutitemmap.h#L171
QgsLayoutItemMapItemStack.addItem: src/core/layout/qgslayoutitemmapitem.h#L306
QgsLayoutItemMapItemStack.containsAdvancedEffects: src/core/layout/qgslayoutitemmapitem.h#L282
QgsLayoutItemMapItemStack.drawItems: src/core/layout/qgslayoutitemmapitem.h#L276

View File

@ -51,6 +51,7 @@
%Include auto_generated/qgsexpressioncontextscopegenerator.sip
%Include auto_generated/qgsexpressionfieldbuffer.sip
%Include auto_generated/qgsfeature.sip
%Include auto_generated/qgsfeatureexpressionfilterprovider.sip
%Include auto_generated/qgsfeaturepickermodel.sip
%Include auto_generated/qgsfeaturepickermodelbase.sip
%Include auto_generated/qgsfeaturefiltermodel.sip
@ -77,6 +78,7 @@
%Include auto_generated/qgsgeometryvalidator.sip
%Include auto_generated/qgsgml.sip
%Include auto_generated/qgsgmlschema.sip
%Include auto_generated/qgsgroupedfeaturefilterprovider.sip
%Include auto_generated/qgsgrouplayer.sip
%Include auto_generated/qgshistogram.sip
%Include auto_generated/qgshstoreutils.sip

View File

@ -1,5 +1,5 @@
# The following has been generated automatically from src/server/qgsaccesscontrol.h
try:
QgsAccessControl.__overridden_methods__ = ['filterFeatures', 'clone', 'layerAttributes']
QgsAccessControl.__overridden_methods__ = ['isFilterThreadSafe', 'filterFeatures', 'layerAttributes', 'clone']
except (NameError, AttributeError):
pass

View File

@ -1,5 +1,5 @@
# The following has been generated automatically from src/server/qgsfeaturefilter.h
try:
QgsFeatureFilter.__overridden_methods__ = ['filterFeatures', 'layerAttributes', 'clone']
QgsFeatureFilter.__overridden_methods__ = ['isFilterThreadSafe', 'filterFeatures', 'layerAttributes', 'clone']
except (NameError, AttributeError):
pass

View File

@ -1,5 +1,5 @@
# The following has been generated automatically from src/server/qgsfeaturefilterprovidergroup.h
try:
QgsFeatureFilterProviderGroup.__overridden_methods__ = ['filterFeatures', 'layerAttributes', 'clone']
QgsFeatureFilterProviderGroup.__overridden_methods__ = ['isFilterThreadSafe', 'filterFeatures', 'layerAttributes', 'clone']
except (NameError, AttributeError):
pass

View File

@ -35,6 +35,15 @@ Constructor
~QgsAccessControl();
virtual bool isFilterThreadSafe() const;
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const;
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
virtual QgsAccessControl *clone() const /Factory/;
void resolveFilterFeatures( const QList<QgsMapLayer *> &layers );
%Docstring
Resolve features' filter of layers The method fetch filter's expressions
@ -49,23 +58,6 @@ for efficiency; between each requests, the cache must be cleared using
void unresolveFilterFeatures();
%Docstring
Clear expression's cache computed from `resolveFilterFeatures`
%End
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const;
%Docstring
Filter the features of the layer
:param layer: the layer to control
:param filterFeatures: the request to fill
%End
virtual QgsFeatureFilterProvider *clone() const /Factory/;
%Docstring
Returns a clone of the object
:return: A clone
%End
QString extraSubsetString( const QgsVectorLayer *layer ) const;
@ -111,17 +103,6 @@ Returns the layer delete right
:param layer: the layer to control
:return: ``True`` if we can do a delete
%End
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
%Docstring
Returns the authorized layer attributes
:param layer: the layer to control
:param attributes: the list of attribute
:return: the list of visible attributes
%End
bool allowToEdit( const QgsVectorLayer *layer, const QgsFeature &feature ) const;

View File

@ -16,6 +16,10 @@ class QgsFeatureFilter : QgsFeatureFilterProvider
%Docstring(signature="appended")
A feature filter provider allowing to set filter expressions on a
per-layer basis.
.. deprecated:: 3.4
Use :py:class:`QgsFeatureExpressionFilterProvider`
%End
%TypeHeaderCode
@ -27,25 +31,14 @@ per-layer basis.
Constructor
%End
virtual bool isFilterThreadSafe() const;
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const;
%Docstring
Filter the features of the layer
:param layer: the layer to control
:param filterFeatures: the request to fill
%End
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
virtual QgsFeatureFilterProvider *clone() const /Factory/;
%Docstring
Returns a clone of the object
:return: A clone
%End
void setFilter( const QgsVectorLayer *layer, const QgsExpression &expression );
%Docstring

View File

@ -14,6 +14,10 @@ class QgsFeatureFilterProviderGroup : QgsFeatureFilterProvider
{
%Docstring(signature="appended")
A filter filter provider grouping several filter providers.
.. deprecated:: 3.4
Use :py:class:`QgsGroupedFeatureFilterProvider`
%End
%TypeHeaderCode
@ -25,25 +29,14 @@ A filter filter provider grouping several filter providers.
Constructor
%End
virtual bool isFilterThreadSafe() const;
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const;
%Docstring
Filter the features of the layer.
:param layer: the layer to control
:param filterFeatures: the request to fill
%End
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
virtual QgsFeatureFilterProviderGroup *clone() const /Factory/;
virtual QgsFeatureFilterProvider *clone() const /Factory/;
%Docstring
Returns a clone of the object
:return: A clone
%End
QgsFeatureFilterProviderGroup &addProvider( const QgsFeatureFilterProvider *provider );
%Docstring

View File

@ -1,16 +1,17 @@
QgsAccessControl.allowToEdit: src/server/qgsaccesscontrol.h#L152
QgsAccessControl.clone: src/server/qgsaccesscontrol.h#L101
QgsAccessControl.extraSubsetString: src/server/qgsaccesscontrol.h#L108
QgsAccessControl.fillCacheKey: src/server/qgsaccesscontrol.h#L158
QgsAccessControl.filterFeatures: src/server/qgsaccesscontrol.h#L95
QgsAccessControl.layerAttributes: src/server/qgsaccesscontrol.h#L144
QgsAccessControl.layerDeletePermission: src/server/qgsaccesscontrol.h#L136
QgsAccessControl.layerInsertPermission: src/server/qgsaccesscontrol.h#L122
QgsAccessControl.layerReadPermission: src/server/qgsaccesscontrol.h#L115
QgsAccessControl.layerUpdatePermission: src/server/qgsaccesscontrol.h#L129
QgsAccessControl.registerAccessControl: src/server/qgsaccesscontrol.h#L165
QgsAccessControl.resolveFilterFeatures: src/server/qgsaccesscontrol.h#L83
QgsAccessControl.unresolveFilterFeatures: src/server/qgsaccesscontrol.h#L88
QgsAccessControl.allowToEdit: src/server/qgsaccesscontrol.h#L137
QgsAccessControl.clone: src/server/qgsaccesscontrol.h#L78
QgsAccessControl.extraSubsetString: src/server/qgsaccesscontrol.h#L101
QgsAccessControl.fillCacheKey: src/server/qgsaccesscontrol.h#L143
QgsAccessControl.filterFeatures: src/server/qgsaccesscontrol.h#L76
QgsAccessControl.isFilterThreadSafe: src/server/qgsaccesscontrol.h#L74
QgsAccessControl.layerAttributes: src/server/qgsaccesscontrol.h#L77
QgsAccessControl.layerDeletePermission: src/server/qgsaccesscontrol.h#L129
QgsAccessControl.layerInsertPermission: src/server/qgsaccesscontrol.h#L115
QgsAccessControl.layerReadPermission: src/server/qgsaccesscontrol.h#L108
QgsAccessControl.layerUpdatePermission: src/server/qgsaccesscontrol.h#L122
QgsAccessControl.registerAccessControl: src/server/qgsaccesscontrol.h#L150
QgsAccessControl.resolveFilterFeatures: src/server/qgsaccesscontrol.h#L89
QgsAccessControl.unresolveFilterFeatures: src/server/qgsaccesscontrol.h#L94
QgsAccessControl: src/server/qgsaccesscontrol.h#L35
QgsAccessControlFilter.allowToEdit: src/server/qgsaccesscontrolfilter.h#L109
QgsAccessControlFilter.authorizedLayerAttributes: src/server/qgsaccesscontrolfilter.h#L101
@ -54,15 +55,17 @@ QgsFcgiServerRequest.data: src/server/qgsfcgiserverrequest.h#L36
QgsFcgiServerRequest.hasError: src/server/qgsfcgiserverrequest.h#L41
QgsFcgiServerRequest.header: src/server/qgsfcgiserverrequest.h#L49
QgsFcgiServerRequest: src/server/qgsfcgiserverrequest.h#L31
QgsFeatureFilter.clone: src/server/qgsfeaturefilter.h#L52
QgsFeatureFilter.filterFeatures: src/server/qgsfeaturefilter.h#L44
QgsFeatureFilter.layerAttributes: src/server/qgsfeaturefilter.h#L46
QgsFeatureFilter.setFilter: src/server/qgsfeaturefilter.h#L59
QgsFeatureFilter: src/server/qgsfeaturefilter.h#L33
QgsFeatureFilterProviderGroup.clone: src/server/qgsfeaturefilterprovidergroup.h#L50
QgsFeatureFilterProviderGroup.filterFeatures: src/server/qgsfeaturefilterprovidergroup.h#L42
QgsFeatureFilterProviderGroup.layerAttributes: src/server/qgsfeaturefilterprovidergroup.h#L44
QgsFeatureFilterProviderGroup: src/server/qgsfeaturefilterprovidergroup.h#L31
QgsFeatureFilter.clone: src/server/qgsfeaturefilter.h#L44
QgsFeatureFilter.filterFeatures: src/server/qgsfeaturefilter.h#L42
QgsFeatureFilter.isFilterThreadSafe: src/server/qgsfeaturefilter.h#L40
QgsFeatureFilter.layerAttributes: src/server/qgsfeaturefilter.h#L43
QgsFeatureFilter.setFilter: src/server/qgsfeaturefilter.h#L51
QgsFeatureFilter: src/server/qgsfeaturefilter.h#L34
QgsFeatureFilterProviderGroup.clone: src/server/qgsfeaturefilterprovidergroup.h#L42
QgsFeatureFilterProviderGroup.filterFeatures: src/server/qgsfeaturefilterprovidergroup.h#L40
QgsFeatureFilterProviderGroup.isFilterThreadSafe: src/server/qgsfeaturefilterprovidergroup.h#L38
QgsFeatureFilterProviderGroup.layerAttributes: src/server/qgsfeaturefilterprovidergroup.h#L41
QgsFeatureFilterProviderGroup: src/server/qgsfeaturefilterprovidergroup.h#L32
QgsOgcServiceException.code: src/server/qgsserverexception.h#L94
QgsOgcServiceException.formatResponse: src/server/qgsserverexception.h#L102
QgsOgcServiceException.locator: src/server/qgsserverexception.h#L97

View File

@ -10055,6 +10055,9 @@ QgsLayoutRenderContext.FlagAlwaysUseGlobalMasks = Qgis.LayoutRenderFlag.AlwaysUs
QgsLayoutRenderContext.Flag.FlagAlwaysUseGlobalMasks = Qgis.LayoutRenderFlag.AlwaysUseGlobalMasks
QgsLayoutRenderContext.FlagAlwaysUseGlobalMasks.is_monkey_patched = True
QgsLayoutRenderContext.FlagAlwaysUseGlobalMasks.__doc__ = "When applying clipping paths for selective masking, always use global (\"entire map\") paths, instead of calculating local clipping paths per rendered feature. This results in considerably more complex layout exports in all current Qt versions. This flag only applies to vector layout exports. \n.. versionadded:: 3.38"
QgsLayoutRenderContext.LimitCoverageLayerRenderToCurrentFeature = Qgis.LayoutRenderFlag.LimitCoverageLayerRenderToCurrentFeature
QgsLayoutRenderContext.LimitCoverageLayerRenderToCurrentFeature.is_monkey_patched = True
QgsLayoutRenderContext.LimitCoverageLayerRenderToCurrentFeature.__doc__ = "Limit coverage layer rendering to the current atlas feature. \n.. versionadded:: 4.0"
Qgis.LayoutRenderFlag.__doc__ = """Flags for controlling how a layout is rendered.
.. note::
@ -10120,6 +10123,10 @@ Qgis.LayoutRenderFlag.__doc__ = """Flags for controlling how a layout is rendere
Available as ``QgsLayoutRenderContext.FlagAlwaysUseGlobalMasks`` in older QGIS releases.
* ``LimitCoverageLayerRenderToCurrentFeature``: Limit coverage layer rendering to the current atlas feature.
.. versionadded:: 4.0
"""
# --
@ -11404,6 +11411,10 @@ Qgis.MouseHandlesAction.ResizeLeftUp.__doc__ = "Resize left up (Top left handle)
Qgis.MouseHandlesAction.ResizeRightUp.__doc__ = "Resize right up (Top right handle)"
Qgis.MouseHandlesAction.ResizeLeftDown.__doc__ = "Resize left down (Bottom left handle)"
Qgis.MouseHandlesAction.ResizeRightDown.__doc__ = "Resize right down (Bottom right handle)"
Qgis.MouseHandlesAction.RotateTopLeft.__doc__ = "Rotate from top left handle. \n.. versionadded:: 4.0"
Qgis.MouseHandlesAction.RotateTopRight.__doc__ = "Rotate from top right handle. \n.. versionadded:: 4.0"
Qgis.MouseHandlesAction.RotateBottomLeft.__doc__ = "Rotate from bottom left handle. \n.. versionadded:: 4.0"
Qgis.MouseHandlesAction.RotateBottomRight.__doc__ = "Rotate right bottom right handle. \n.. versionadded:: 4.0"
Qgis.MouseHandlesAction.SelectItem.__doc__ = "Select item"
Qgis.MouseHandlesAction.NoAction.__doc__ = "No action"
Qgis.MouseHandlesAction.__doc__ = """Action to be performed by the mouse handles
@ -11419,6 +11430,22 @@ Qgis.MouseHandlesAction.__doc__ = """Action to be performed by the mouse handles
* ``ResizeRightUp``: Resize right up (Top right handle)
* ``ResizeLeftDown``: Resize left down (Bottom left handle)
* ``ResizeRightDown``: Resize right down (Bottom right handle)
* ``RotateTopLeft``: Rotate from top left handle.
.. versionadded:: 4.0
* ``RotateTopRight``: Rotate from top right handle.
.. versionadded:: 4.0
* ``RotateBottomLeft``: Rotate from bottom left handle.
.. versionadded:: 4.0
* ``RotateBottomRight``: Rotate right bottom right handle.
.. versionadded:: 4.0
* ``SelectItem``: Select item
* ``NoAction``: No action

View File

@ -0,0 +1,5 @@
# The following has been generated automatically from src/core/qgsfeatureexpressionfilterprovider.h
try:
QgsFeatureExpressionFilterProvider.__overridden_methods__ = ['filterFeatures', 'layerAttributes', 'clone']
except (NameError, AttributeError):
pass

View File

@ -1,5 +1,6 @@
# The following has been generated automatically from src/core/qgsfeaturefilterprovider.h
try:
QgsFeatureFilterProvider.__abstract_methods__ = ['filterFeatures', 'layerAttributes', 'clone']
QgsFeatureFilterProvider.__virtual_methods__ = ['isFilterThreadSafe', 'filterFeatures']
QgsFeatureFilterProvider.__abstract_methods__ = ['layerAttributes', 'clone']
except (NameError, AttributeError):
pass

View File

@ -0,0 +1,5 @@
# The following has been generated automatically from src/core/qgsgroupedfeaturefilterprovider.h
try:
QgsGroupedFeatureFilterProvider.__overridden_methods__ = ['isFilterThreadSafe', 'filterFeatures', 'layerAttributes', 'clone']
except (NameError, AttributeError):
pass

View File

@ -73,6 +73,26 @@ Sets whether the coverage layer should be hidden in map items in the
layouts.
.. seealso:: :py:func:`hideCoverage`
%End
bool limitCoverageLayerRenderToCurrentFeature() const;
%Docstring
Returns ``True`` if the atlas is set to limit rendering on the coverage
layer to the current feature.
.. seealso:: :py:func:`setHideCoverage`
.. versionadded:: 4.0
%End
void setLimitCoverageLayerRenderToCurrentFeature( bool limit );
%Docstring
Sets whether the rendering of the coverage layer should be limited to
the current feature.
.. seealso:: :py:func:`hideCoverage`
.. versionadded:: 4.0
%End
QString filenameExpression() const;

View File

@ -2912,6 +2912,7 @@ The development version
LosslessImageRendering,
SynchronousLegendGraphics,
AlwaysUseGlobalMasks,
LimitCoverageLayerRenderToCurrentFeature,
};
typedef QFlags<Qgis::LayoutRenderFlag> LayoutRenderFlags;
@ -3346,6 +3347,10 @@ The development version
ResizeRightUp,
ResizeLeftDown,
ResizeRightDown,
RotateTopLeft,
RotateTopRight,
RotateBottomLeft,
RotateBottomRight,
SelectItem,
NoAction
};

View File

@ -0,0 +1,57 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeatureexpressionfilterprovider.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
class QgsFeatureExpressionFilterProvider : QgsFeatureFilterProvider
{
%Docstring(signature="appended")
A feature filter provider allowing to set filter expressions on a
per-layer basis.
.. versionadded:: 4.0
%End
%TypeHeaderCode
#include "qgsfeatureexpressionfilterprovider.h"
%End
public:
QgsFeatureExpressionFilterProvider();
%Docstring
Constructor
%End
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const /Deprecated/;
virtual void filterFeatures( const QString &layerId, QgsFeatureRequest &filterFeatures ) const;
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
virtual QgsFeatureExpressionFilterProvider *clone() const /Factory/;
void setFilter( const QString &layerId, const QgsExpression &expression );
%Docstring
Set a filter for the given layer.
:param layerId: the layer to filter
:param expression: the filter expression
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeatureexpressionfilterprovider.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/

View File

@ -0,0 +1,93 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeaturefilter.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
class QgsFeatureFilter : QgsFeatureFilterProvider
{
%Docstring(signature="appended")
A feature filter provider allowing to set filter expressions on a
per-layer basis.
%End
%TypeHeaderCode
#include "qgsfeaturefilter.h"
%End
public:
QgsFeatureFilter();
%Docstring
Constructor
%End
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const /Deprecated="Since 4.0. Use the layer ID variant."/;
%Docstring
Filter the features of the layer
:param layer: the layer to control
:param filterFeatures: the request to fill
.. deprecated:: 4.0
Use the layer ID variant.
%End
virtual void filterFeatures( const QString &layerId, QgsFeatureRequest &filterFeatures ) const;
%Docstring
Filter the features of the layer
:param layerId: the layer ID to control
:param filterFeatures: the request to fill
%End
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
virtual QgsFeatureFilterProvider *clone() const /Factory/;
%Docstring
Returns a clone of the object
:return: A clone
%End
void setFilter( const QgsVectorLayer *layer, const QgsExpression &expression ) /Deprecated="Since 4.0. Use the layer ID variant."/;
%Docstring
Set a filter for the given layer.
:param layer: the layer to filter
:param expression: the filter expression
.. deprecated:: 4.0
Use the layer ID variant.
%End
void setFilter( const QString &layerId, const QgsExpression &expression );
%Docstring
Set a filter for the given layer.
:param layerId: the layer to filter
:param expression: the filter expression
.. versionadded:: 4.0
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeaturefilter.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/

View File

@ -30,7 +30,17 @@ also available.
public:
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &featureRequest ) const = 0;
virtual bool isFilterThreadSafe() const /Deprecated="Since 4.0. "/;
%Docstring
Returns ``True`` if the filterFeature function is thread safe, which
will lead to reliance on layer ID instead of the raw layer pointer.
.. versionadded:: 4.0
.. deprecated:: 4.0
%End
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &featureRequest ) const /Deprecated="Since 4.0. Use the layer ID variant."/;
%Docstring
Add additional filters to the feature request to further restrict the
features returned by the request. Derived classes must implement this
@ -38,6 +48,22 @@ method.
:param layer: the layer to filter
:param featureRequest: the feature request to update
.. deprecated:: 4.0
Use the layer ID variant.
%End
virtual void filterFeatures( const QString &layerId, QgsFeatureRequest &featureRequest ) const;
%Docstring
Add additional filters to the feature request to further restrict the
features returned by the request. Derived classes must implement this
method.
:param layerId: the layer ID to filter
:param featureRequest: the feature request to update
.. versionadded:: 4.0
%End
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const = 0;

View File

@ -0,0 +1,81 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeaturefilterprovidergroup.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
class QgsFeatureFilterProviderGroup : QgsFeatureFilterProvider
{
%Docstring(signature="appended")
A filter filter provider grouping several filter providers.
%End
%TypeHeaderCode
#include "qgsfeaturefilterprovidergroup.h"
%End
public:
QgsFeatureFilterProviderGroup();
%Docstring
Constructor
%End
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const /Deprecated="Since 4.0. Use the layer ID variant."/;
%Docstring
Filter the features of the layer.
:param layer: the layer to control
:param filterFeatures: the request to fill
.. deprecated:: 4.0
Use the layer ID variant.
%End
virtual void filterFeatures( const QString &layerId, QgsFeatureRequest &filterFeatures ) const;
%Docstring
Filter the features of the layer.
:param layerId: the layer ID to control
:param filterFeatures: the request to fill
.. versionadded:: 4.0
%End
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
virtual QgsFeatureFilterProvider *clone() const /Factory/;
%Docstring
Returns a clone of the object
:return: A clone
%End
QgsFeatureFilterProviderGroup &addProvider( const QgsFeatureFilterProvider *provider );
%Docstring
Add another filter provider to the group
:param provider: The provider to add
:return: itself
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeaturefilterprovidergroup.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/

View File

@ -0,0 +1,60 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsgroupedfeaturefilterprovider.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
class QgsGroupedFeatureFilterProvider : QgsFeatureFilterProvider
{
%Docstring(signature="appended")
A filter filter provider grouping several filter providers.
.. versionadded:: 4.0
%End
%TypeHeaderCode
#include "qgsgroupedfeaturefilterprovider.h"
%End
public:
QgsGroupedFeatureFilterProvider();
%Docstring
Constructor
%End
virtual bool isFilterThreadSafe() const /Deprecated/;
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const /Deprecated/;
virtual void filterFeatures( const QString &layerId, QgsFeatureRequest &filterFeatures ) const;
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
virtual QgsGroupedFeatureFilterProvider *clone() const /Factory/;
QgsGroupedFeatureFilterProvider &addProvider( const QgsFeatureFilterProvider *provider );
%Docstring
Add another filter provider to the group
:param provider: The provider to add
:return: itself
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsgroupedfeaturefilterprovider.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/

View File

@ -1,14 +1,14 @@
Qgis.defaultProjectScales: src/core/qgis.h#L6067
Qgis.defaultProjectScales: src/core/qgis.h#L6072
Qgis.devVersion: src/core/qgis.h#L89
Qgis.geoNone: src/core/qgis.h#L6112
Qgis.geoProj4: src/core/qgis.h#L6142
Qgis.geoWkt: src/core/qgis.h#L6133
Qgis.geographicCrsAuthId: src/core/qgis.h#L6122
Qgis.geosVersion: src/core/qgis.h#L6102
Qgis.geosVersionInt: src/core/qgis.h#L6074
Qgis.geosVersionMajor: src/core/qgis.h#L6081
Qgis.geosVersionMinor: src/core/qgis.h#L6088
Qgis.geosVersionPatch: src/core/qgis.h#L6095
Qgis.geoNone: src/core/qgis.h#L6117
Qgis.geoProj4: src/core/qgis.h#L6147
Qgis.geoWkt: src/core/qgis.h#L6138
Qgis.geographicCrsAuthId: src/core/qgis.h#L6127
Qgis.geosVersion: src/core/qgis.h#L6107
Qgis.geosVersionInt: src/core/qgis.h#L6079
Qgis.geosVersionMajor: src/core/qgis.h#L6086
Qgis.geosVersionMinor: src/core/qgis.h#L6093
Qgis.geosVersionPatch: src/core/qgis.h#L6100
Qgis.releaseName: src/core/qgis.h#L79
Qgis.version: src/core/qgis.h#L65
Qgis.versionInt: src/core/qgis.h#L72
@ -4268,6 +4268,12 @@ QgsFeature.setGeometry: src/core/qgsfeature.h#L873
QgsFeature.setId: src/core/qgsfeature.h#L530
QgsFeature.setValid: src/core/qgsfeature.h#L813
QgsFeature: src/core/qgsfeature.h#L57
QgsFeatureExpressionFilterProvider.clone: src/core/qgsfeatureexpressionfilterprovider.h#L43
QgsFeatureExpressionFilterProvider.filterFeatures: src/core/qgsfeatureexpressionfilterprovider.h#L40
QgsFeatureExpressionFilterProvider.filterFeatures: src/core/qgsfeatureexpressionfilterprovider.h#L41
QgsFeatureExpressionFilterProvider.layerAttributes: src/core/qgsfeatureexpressionfilterprovider.h#L42
QgsFeatureExpressionFilterProvider.setFilter: src/core/qgsfeatureexpressionfilterprovider.h#L50
QgsFeatureExpressionFilterProvider: src/core/qgsfeatureexpressionfilterprovider.h#L34
QgsFeatureFilterModel.QgsFeatureFilterModel: src/core/qgsfeaturefiltermodel.h#L48
QgsFeatureFilterModel.extraIdentifierValues: src/core/qgsfeaturefiltermodel.h#L85
QgsFeatureFilterModel.extraIdentifierValuesChanged: src/core/qgsfeaturefiltermodel.h#L107
@ -4279,9 +4285,11 @@ QgsFeatureFilterModel.setExtraIdentifierValueToNull: src/core/qgsfeaturefiltermo
QgsFeatureFilterModel.setExtraIdentifierValues: src/core/qgsfeaturefiltermodel.h#L92
QgsFeatureFilterModel.setIdentifierFields: src/core/qgsfeaturefiltermodel.h#L71
QgsFeatureFilterModel: src/core/qgsfeaturefiltermodel.h#L27
QgsFeatureFilterProvider.clone: src/core/qgsfeaturefilterprovider.h#L71
QgsFeatureFilterProvider.filterFeatures: src/core/qgsfeaturefilterprovider.h#L59
QgsFeatureFilterProvider.layerAttributes: src/core/qgsfeaturefilterprovider.h#L65
QgsFeatureFilterProvider.clone: src/core/qgsfeaturefilterprovider.h#L97
QgsFeatureFilterProvider.filterFeatures: src/core/qgsfeaturefilterprovider.h#L72
QgsFeatureFilterProvider.filterFeatures: src/core/qgsfeaturefilterprovider.h#L85
QgsFeatureFilterProvider.isFilterThreadSafe: src/core/qgsfeaturefilterprovider.h#L59
QgsFeatureFilterProvider.layerAttributes: src/core/qgsfeaturefilterprovider.h#L91
QgsFeatureFilterProvider: src/core/qgsfeaturefilterprovider.h#L41
QgsFeatureIterator.__iter__: src/core/qgsfeatureiterator.h#L294
QgsFeatureIterator.__next__: src/core/qgsfeatureiterator.h#L299
@ -5762,6 +5770,12 @@ QgsGroupLayer.setTransformContext: src/core/qgsgrouplayer.h#L87
QgsGroupLayer.writeSymbology: src/core/qgsgrouplayer.h#L90
QgsGroupLayer.writeXml: src/core/qgsgrouplayer.h#L89
QgsGroupLayer: src/core/qgsgrouplayer.h#L41
QgsGroupedFeatureFilterProvider.clone: src/core/qgsgroupedfeaturefilterprovider.h#L43
QgsGroupedFeatureFilterProvider.filterFeatures: src/core/qgsgroupedfeaturefilterprovider.h#L40
QgsGroupedFeatureFilterProvider.filterFeatures: src/core/qgsgroupedfeaturefilterprovider.h#L41
QgsGroupedFeatureFilterProvider.isFilterThreadSafe: src/core/qgsgroupedfeaturefilterprovider.h#L38
QgsGroupedFeatureFilterProvider.layerAttributes: src/core/qgsgroupedfeaturefilterprovider.h#L42
QgsGroupedFeatureFilterProvider: src/core/qgsgroupedfeaturefilterprovider.h#L32
QgsHashedLineSymbolLayer.clone: src/core/symbology/qgslinesymbollayer.h#L1040
QgsHashedLineSymbolLayer.color: src/core/symbology/qgslinesymbollayer.h#L1042
QgsHashedLineSymbolLayer.create: src/core/symbology/qgslinesymbollayer.h#L1034
@ -6780,53 +6794,55 @@ QgsLayoutAligner.alignItems: src/core/layout/qgslayoutaligner.h#L79
QgsLayoutAligner.distributeItems: src/core/layout/qgslayoutaligner.h#L86
QgsLayoutAligner.resizeItems: src/core/layout/qgslayoutaligner.h#L93
QgsLayoutAligner: src/core/layout/qgslayoutaligner.h#L35
QgsLayoutAtlas.beginRender: src/core/layout/qgslayoutatlas.h#L245
QgsLayoutAtlas.changed: src/core/layout/qgslayoutatlas.h#L314
QgsLayoutAtlas.count: src/core/layout/qgslayoutatlas.h#L247
QgsLayoutAtlas.coverageLayer: src/core/layout/qgslayoutatlas.h#L115
QgsLayoutAtlas.coverageLayerChanged: src/core/layout/qgslayoutatlas.h#L320
QgsLayoutAtlas.createExpressionContext: src/core/layout/qgslayoutatlas.h#L255
QgsLayoutAtlas.currentFeatureNumber: src/core/layout/qgslayoutatlas.h#L253
QgsLayoutAtlas.currentFilename: src/core/layout/qgslayoutatlas.h#L109
QgsLayoutAtlas.beginRender: src/core/layout/qgslayoutatlas.h#L261
QgsLayoutAtlas.changed: src/core/layout/qgslayoutatlas.h#L330
QgsLayoutAtlas.count: src/core/layout/qgslayoutatlas.h#L263
QgsLayoutAtlas.coverageLayer: src/core/layout/qgslayoutatlas.h#L131
QgsLayoutAtlas.coverageLayerChanged: src/core/layout/qgslayoutatlas.h#L336
QgsLayoutAtlas.createExpressionContext: src/core/layout/qgslayoutatlas.h#L271
QgsLayoutAtlas.currentFeatureNumber: src/core/layout/qgslayoutatlas.h#L269
QgsLayoutAtlas.currentFilename: src/core/layout/qgslayoutatlas.h#L125
QgsLayoutAtlas.enabled: src/core/layout/qgslayoutatlas.h#L66
QgsLayoutAtlas.endRender: src/core/layout/qgslayoutatlas.h#L246
QgsLayoutAtlas.featureChanged: src/core/layout/qgslayoutatlas.h#L331
QgsLayoutAtlas.filePath: src/core/layout/qgslayoutatlas.h#L248
QgsLayoutAtlas.filenameExpression: src/core/layout/qgslayoutatlas.h#L92
QgsLayoutAtlas.filterExpression: src/core/layout/qgslayoutatlas.h#L224
QgsLayoutAtlas.filterFeatures: src/core/layout/qgslayoutatlas.h#L207
QgsLayoutAtlas.first: src/core/layout/qgslayoutatlas.h#L286
QgsLayoutAtlas.endRender: src/core/layout/qgslayoutatlas.h#L262
QgsLayoutAtlas.featureChanged: src/core/layout/qgslayoutatlas.h#L347
QgsLayoutAtlas.filePath: src/core/layout/qgslayoutatlas.h#L264
QgsLayoutAtlas.filenameExpression: src/core/layout/qgslayoutatlas.h#L108
QgsLayoutAtlas.filterExpression: src/core/layout/qgslayoutatlas.h#L240
QgsLayoutAtlas.filterFeatures: src/core/layout/qgslayoutatlas.h#L223
QgsLayoutAtlas.first: src/core/layout/qgslayoutatlas.h#L302
QgsLayoutAtlas.hideCoverage: src/core/layout/qgslayoutatlas.h#L78
QgsLayoutAtlas.last: src/core/layout/qgslayoutatlas.h#L277
QgsLayoutAtlas.last: src/core/layout/qgslayoutatlas.h#L293
QgsLayoutAtlas.layout: src/core/layout/qgslayoutatlas.h#L51
QgsLayoutAtlas.messagePushed: src/core/layout/qgslayoutatlas.h#L323
QgsLayoutAtlas.nameForPage: src/core/layout/qgslayoutatlas.h#L140
QgsLayoutAtlas.next: src/core/layout/qgslayoutatlas.h#L259
QgsLayoutAtlas.numberFeaturesChanged: src/core/layout/qgslayoutatlas.h#L328
QgsLayoutAtlas.pageNameExpression: src/core/layout/qgslayoutatlas.h#L128
QgsLayoutAtlas.previous: src/core/layout/qgslayoutatlas.h#L268
QgsLayoutAtlas.limitCoverageLayerRenderToCurrentFeature: src/core/layout/qgslayoutatlas.h#L92
QgsLayoutAtlas.messagePushed: src/core/layout/qgslayoutatlas.h#L339
QgsLayoutAtlas.nameForPage: src/core/layout/qgslayoutatlas.h#L156
QgsLayoutAtlas.next: src/core/layout/qgslayoutatlas.h#L275
QgsLayoutAtlas.numberFeaturesChanged: src/core/layout/qgslayoutatlas.h#L344
QgsLayoutAtlas.pageNameExpression: src/core/layout/qgslayoutatlas.h#L144
QgsLayoutAtlas.previous: src/core/layout/qgslayoutatlas.h#L284
QgsLayoutAtlas.readXml: src/core/layout/qgslayoutatlas.h#L60
QgsLayoutAtlas.refreshCurrentFeature: src/core/layout/qgslayoutatlas.h#L309
QgsLayoutAtlas.renderBegun: src/core/layout/qgslayoutatlas.h#L334
QgsLayoutAtlas.renderEnded: src/core/layout/qgslayoutatlas.h#L337
QgsLayoutAtlas.seekTo: src/core/layout/qgslayoutatlas.h#L295
QgsLayoutAtlas.seekTo: src/core/layout/qgslayoutatlas.h#L304
QgsLayoutAtlas.setCoverageLayer: src/core/layout/qgslayoutatlas.h#L121
QgsLayoutAtlas.refreshCurrentFeature: src/core/layout/qgslayoutatlas.h#L325
QgsLayoutAtlas.renderBegun: src/core/layout/qgslayoutatlas.h#L350
QgsLayoutAtlas.renderEnded: src/core/layout/qgslayoutatlas.h#L353
QgsLayoutAtlas.seekTo: src/core/layout/qgslayoutatlas.h#L311
QgsLayoutAtlas.seekTo: src/core/layout/qgslayoutatlas.h#L320
QgsLayoutAtlas.setCoverageLayer: src/core/layout/qgslayoutatlas.h#L137
QgsLayoutAtlas.setEnabled: src/core/layout/qgslayoutatlas.h#L72
QgsLayoutAtlas.setFilenameExpression: src/core/layout/qgslayoutatlas.h#L102
QgsLayoutAtlas.setFilterExpression: src/core/layout/qgslayoutatlas.h#L237
QgsLayoutAtlas.setFilterFeatures: src/core/layout/qgslayoutatlas.h#L214
QgsLayoutAtlas.setFilenameExpression: src/core/layout/qgslayoutatlas.h#L118
QgsLayoutAtlas.setFilterExpression: src/core/layout/qgslayoutatlas.h#L253
QgsLayoutAtlas.setFilterFeatures: src/core/layout/qgslayoutatlas.h#L230
QgsLayoutAtlas.setHideCoverage: src/core/layout/qgslayoutatlas.h#L84
QgsLayoutAtlas.setPageNameExpression: src/core/layout/qgslayoutatlas.h#L134
QgsLayoutAtlas.setSortAscending: src/core/layout/qgslayoutatlas.h#L178
QgsLayoutAtlas.setSortExpression: src/core/layout/qgslayoutatlas.h#L200
QgsLayoutAtlas.setSortFeatures: src/core/layout/qgslayoutatlas.h#L156
QgsLayoutAtlas.sortAscending: src/core/layout/qgslayoutatlas.h#L167
QgsLayoutAtlas.sortExpression: src/core/layout/qgslayoutatlas.h#L189
QgsLayoutAtlas.sortFeatures: src/core/layout/qgslayoutatlas.h#L148
QgsLayoutAtlas.setLimitCoverageLayerRenderToCurrentFeature: src/core/layout/qgslayoutatlas.h#L100
QgsLayoutAtlas.setPageNameExpression: src/core/layout/qgslayoutatlas.h#L150
QgsLayoutAtlas.setSortAscending: src/core/layout/qgslayoutatlas.h#L194
QgsLayoutAtlas.setSortExpression: src/core/layout/qgslayoutatlas.h#L216
QgsLayoutAtlas.setSortFeatures: src/core/layout/qgslayoutatlas.h#L172
QgsLayoutAtlas.sortAscending: src/core/layout/qgslayoutatlas.h#L183
QgsLayoutAtlas.sortExpression: src/core/layout/qgslayoutatlas.h#L205
QgsLayoutAtlas.sortFeatures: src/core/layout/qgslayoutatlas.h#L164
QgsLayoutAtlas.stringType: src/core/layout/qgslayoutatlas.h#L50
QgsLayoutAtlas.toggled: src/core/layout/qgslayoutatlas.h#L317
QgsLayoutAtlas.updateFeatures: src/core/layout/qgslayoutatlas.h#L243
QgsLayoutAtlas.toggled: src/core/layout/qgslayoutatlas.h#L333
QgsLayoutAtlas.updateFeatures: src/core/layout/qgslayoutatlas.h#L259
QgsLayoutAtlas.writeXml: src/core/layout/qgslayoutatlas.h#L59
QgsLayoutAtlas: src/core/layout/qgslayoutatlas.h#L40
QgsLayoutChecker.setSize: src/core/qgsmultirenderchecker.h#L209
@ -7310,119 +7326,119 @@ QgsLayoutItemManualTable.type: src/core/layout/qgslayoutitemmanualtable.h#L46
QgsLayoutItemManualTable.verticalAlignmentForCell: src/core/layout/qgslayoutitemmanualtable.h#L145
QgsLayoutItemManualTable.writePropertiesToElement: src/core/layout/qgslayoutitemmanualtable.h#L139
QgsLayoutItemManualTable: src/core/layout/qgslayoutitemmanualtable.h#L31
QgsLayoutItemMap.QgsLayoutItemMap: src/core/layout/qgslayoutitemmap.h#L361
QgsLayoutItemMap.accept: src/core/layout/qgslayoutitemmap.h#L828
QgsLayoutItemMap.addLabelBlockingItem: src/core/layout/qgslayoutitemmap.h#L785
QgsLayoutItemMap.addRenderedFeatureHandler: src/core/layout/qgslayoutitemmap.h#L842
QgsLayoutItemMap.assignFreeId: src/core/layout/qgslayoutitemmap.h#L385
QgsLayoutItemMap.atlasClippingSettings: src/core/layout/qgslayoutitemmap.h#L862
QgsLayoutItemMap.atlasDriven: src/core/layout/qgslayoutitemmap.h#L643
QgsLayoutItemMap.atlasMargin: src/core/layout/qgslayoutitemmap.h#L685
QgsLayoutItemMap.atlasScalingMode: src/core/layout/qgslayoutitemmap.h#L662
QgsLayoutItemMap.boundingRect: src/core/layout/qgslayoutitemmap.h#L928
QgsLayoutItemMap.containsAdvancedEffects: src/core/layout/qgslayoutitemmap.h#L604
QgsLayoutItemMap.containsWmsLayer: src/core/layout/qgslayoutitemmap.h#L601
QgsLayoutItemMap.create: src/core/layout/qgslayoutitemmap.h#L395
QgsLayoutItemMap.createExpressionContext: src/core/layout/qgslayoutitemmap.h#L748
QgsLayoutItemMap.crs: src/core/layout/qgslayoutitemmap.h#L471
QgsLayoutItemMap.crsChanged: src/core/layout/qgslayoutitemmap.h#L981
QgsLayoutItemMap.displayName: src/core/layout/qgslayoutitemmap.h#L388
QgsLayoutItemMap.draw: src/core/layout/qgslayoutitemmap.h#L919
QgsLayoutItemMap.drawAnnotations: src/core/layout/qgslayoutitemmap.h#L634
QgsLayoutItemMap.estimatedFrameBleed: src/core/layout/qgslayoutitemmap.h#L915
QgsLayoutItemMap.exportLayerBehavior: src/core/layout/qgslayoutitemmap.h#L408
QgsLayoutItemMap.exportLayerDetails: src/core/layout/qgslayoutitemmap.h#L409
QgsLayoutItemMap.extent: src/core/layout/qgslayoutitemmap.h#L451
QgsLayoutItemMap.extentChanged: src/core/layout/qgslayoutitemmap.h#L948
QgsLayoutItemMap.finalizeRestoreFromXml: src/core/layout/qgslayoutitemmap.h#L766
QgsLayoutItemMap.followVisibilityPreset: src/core/layout/qgslayoutitemmap.h#L570
QgsLayoutItemMap.followVisibilityPresetName: src/core/layout/qgslayoutitemmap.h#L584
QgsLayoutItemMap.framePath: src/core/layout/qgslayoutitemmap.h#L922
QgsLayoutItemMap.grid: src/core/layout/qgslayoutitemmap.h#L707
QgsLayoutItemMap.grids: src/core/layout/qgslayoutitemmap.h#L701
QgsLayoutItemMap.icon: src/core/layout/qgslayoutitemmap.h#L365
QgsLayoutItemMap.invalidateCache: src/core/layout/qgslayoutitemmap.h#L994
QgsLayoutItemMap.isDrawing: src/core/layout/qgslayoutitemmap.h#L925
QgsLayoutItemMap.isLabelBlockingItem: src/core/layout/qgslayoutitemmap.h#L811
QgsLayoutItemMap.itemClippingSettings: src/core/layout/qgslayoutitemmap.h#L869
QgsLayoutItemMap.itemFlags: src/core/layout/qgslayoutitemmap.h#L366
QgsLayoutItemMap.keepLayerSet: src/core/layout/qgslayoutitemmap.h#L500
QgsLayoutItemMap.keepLayerStyles: src/core/layout/qgslayoutitemmap.h#L535
QgsLayoutItemMap.labelMargin: src/core/layout/qgslayoutitemmap.h#L734
QgsLayoutItemMap.layerStyleOverridesChanged: src/core/layout/qgslayoutitemmap.h#L964
QgsLayoutItemMap.layoutToMapCoordsTransform: src/core/layout/qgslayoutitemmap.h#L855
QgsLayoutItemMap.mapFlags: src/core/layout/qgslayoutitemmap.h#L373
QgsLayoutItemMap.mapRotation: src/core/layout/qgslayoutitemmap.h#L622
QgsLayoutItemMap.mapRotationChanged: src/core/layout/qgslayoutitemmap.h#L955
QgsLayoutItemMap.mapSettings: src/core/layout/qgslayoutitemmap.h#L764
QgsLayoutItemMap.mapToItemCoords: src/core/layout/qgslayoutitemmap.h#L934
QgsLayoutItemMap.mapUnitsToLayoutUnits: src/core/layout/qgslayoutitemmap.h#L755
QgsLayoutItemMap.moveContent: src/core/layout/qgslayoutitemmap.h#L594
QgsLayoutItemMap.nextExportPart: src/core/layout/qgslayoutitemmap.h#L407
QgsLayoutItemMap.numberExportLayers: src/core/layout/qgslayoutitemmap.h#L403
QgsLayoutItemMap.overview: src/core/layout/qgslayoutitemmap.h#L722
QgsLayoutItemMap.overviews: src/core/layout/qgslayoutitemmap.h#L715
QgsLayoutItemMap.paint: src/core/layout/qgslayoutitemmap.h#L398
QgsLayoutItemMap.preparedForAtlas: src/core/layout/qgslayoutitemmap.h#L958
QgsLayoutItemMap.presetCrs: src/core/layout/qgslayoutitemmap.h#L481
QgsLayoutItemMap.previewLabelingResults: src/core/layout/qgslayoutitemmap.h#L826
QgsLayoutItemMap.previewRefreshed: src/core/layout/qgslayoutitemmap.h#L988
QgsLayoutItemMap.readPropertiesFromElement: src/core/layout/qgslayoutitemmap.h#L921
QgsLayoutItemMap.refresh: src/core/layout/qgslayoutitemmap.h#L992
QgsLayoutItemMap.refreshDataDefinedProperty: src/core/layout/qgslayoutitemmap.h#L999
QgsLayoutItemMap.removeLabelBlockingItem: src/core/layout/qgslayoutitemmap.h#L798
QgsLayoutItemMap.removeRenderedFeatureHandler: src/core/layout/qgslayoutitemmap.h#L850
QgsLayoutItemMap.renderingErrors: src/core/layout/qgslayoutitemmap.h#L817
QgsLayoutItemMap.requestedExtent: src/core/layout/qgslayoutitemmap.h#L939
QgsLayoutItemMap.requiresRasterization: src/core/layout/qgslayoutitemmap.h#L603
QgsLayoutItemMap.scale: src/core/layout/qgslayoutitemmap.h#L417
QgsLayoutItemMap.setAtlasDriven: src/core/layout/qgslayoutitemmap.h#L651
QgsLayoutItemMap.setAtlasMargin: src/core/layout/qgslayoutitemmap.h#L694
QgsLayoutItemMap.setAtlasScalingMode: src/core/layout/qgslayoutitemmap.h#L673
QgsLayoutItemMap.setCrs: src/core/layout/qgslayoutitemmap.h#L490
QgsLayoutItemMap.setDrawAnnotations: src/core/layout/qgslayoutitemmap.h#L628
QgsLayoutItemMap.setExtent: src/core/layout/qgslayoutitemmap.h#L435
QgsLayoutItemMap.setFollowVisibilityPreset: src/core/layout/qgslayoutitemmap.h#L575
QgsLayoutItemMap.setFollowVisibilityPresetName: src/core/layout/qgslayoutitemmap.h#L592
QgsLayoutItemMap.setFrameStrokeWidth: src/core/layout/qgslayoutitemmap.h#L410
QgsLayoutItemMap.setKeepLayerSet: src/core/layout/qgslayoutitemmap.h#L510
QgsLayoutItemMap.setKeepLayerStyles: src/core/layout/qgslayoutitemmap.h#L541
QgsLayoutItemMap.setLabelMargin: src/core/layout/qgslayoutitemmap.h#L746
QgsLayoutItemMap.setLayerStyleOverrides: src/core/layout/qgslayoutitemmap.h#L553
QgsLayoutItemMap.setLayers: src/core/layout/qgslayoutitemmap.h#L529
QgsLayoutItemMap.setMapFlags: src/core/layout/qgslayoutitemmap.h#L380
QgsLayoutItemMap.setMapRotation: src/core/layout/qgslayoutitemmap.h#L612
QgsLayoutItemMap.setMoveContentPreviewOffset: src/core/layout/qgslayoutitemmap.h#L595
QgsLayoutItemMap.setScale: src/core/layout/qgslayoutitemmap.h#L426
QgsLayoutItemMap.setZRange: src/core/layout/qgslayoutitemmap.h#L912
QgsLayoutItemMap.setZRangeEnabled: src/core/layout/qgslayoutitemmap.h#L878
QgsLayoutItemMap.startLayeredExport: src/core/layout/qgslayoutitemmap.h#L405
QgsLayoutItemMap.stopLayeredExport: src/core/layout/qgslayoutitemmap.h#L406
QgsLayoutItemMap.storeCurrentLayerStyles: src/core/layout/qgslayoutitemmap.h#L558
QgsLayoutItemMap.themeChanged: src/core/layout/qgslayoutitemmap.h#L974
QgsLayoutItemMap.transformedMapPolygon: src/core/layout/qgslayoutitemmap.h#L931
QgsLayoutItemMap.type: src/core/layout/qgslayoutitemmap.h#L364
QgsLayoutItemMap.updateBoundingRect: src/core/layout/qgslayoutitemmap.h#L997
QgsLayoutItemMap.visibleExtentPolygon: src/core/layout/qgslayoutitemmap.h#L461
QgsLayoutItemMap.writePropertiesToElement: src/core/layout/qgslayoutitemmap.h#L920
QgsLayoutItemMap.zRange: src/core/layout/qgslayoutitemmap.h#L900
QgsLayoutItemMap.zRangeEnabled: src/core/layout/qgslayoutitemmap.h#L888
QgsLayoutItemMap.zoomContent: src/core/layout/qgslayoutitemmap.h#L597
QgsLayoutItemMap.zoomToExtent: src/core/layout/qgslayoutitemmap.h#L444
QgsLayoutItemMap: src/core/layout/qgslayoutitemmap.h#L317
QgsLayoutItemMapAtlasClippingSettings.changed: src/core/layout/qgslayoutitemmap.h#L148
QgsLayoutItemMapAtlasClippingSettings.enabled: src/core/layout/qgslayoutitemmap.h#L56
QgsLayoutItemMapAtlasClippingSettings.featureClippingType: src/core/layout/qgslayoutitemmap.h#L70
QgsLayoutItemMapAtlasClippingSettings.forceLabelsInsideFeature: src/core/layout/qgslayoutitemmap.h#L84
QgsLayoutItemMapAtlasClippingSettings.readXml: src/core/layout/qgslayoutitemmap.h#L141
QgsLayoutItemMapAtlasClippingSettings.restrictToLayers: src/core/layout/qgslayoutitemmap.h#L99
QgsLayoutItemMapAtlasClippingSettings.setEnabled: src/core/layout/qgslayoutitemmap.h#L63
QgsLayoutItemMapAtlasClippingSettings.setFeatureClippingType: src/core/layout/qgslayoutitemmap.h#L77
QgsLayoutItemMapAtlasClippingSettings.setForceLabelsInsideFeature: src/core/layout/qgslayoutitemmap.h#L91
QgsLayoutItemMapAtlasClippingSettings.setLayersToClip: src/core/layout/qgslayoutitemmap.h#L127
QgsLayoutItemMapAtlasClippingSettings.setRestrictToLayers: src/core/layout/qgslayoutitemmap.h#L107
QgsLayoutItemMapAtlasClippingSettings.writeXml: src/core/layout/qgslayoutitemmap.h#L134
QgsLayoutItemMapAtlasClippingSettings: src/core/layout/qgslayoutitemmap.h#L40
QgsLayoutItemMap.QgsLayoutItemMap: src/core/layout/qgslayoutitemmap.h#L362
QgsLayoutItemMap.accept: src/core/layout/qgslayoutitemmap.h#L829
QgsLayoutItemMap.addLabelBlockingItem: src/core/layout/qgslayoutitemmap.h#L786
QgsLayoutItemMap.addRenderedFeatureHandler: src/core/layout/qgslayoutitemmap.h#L843
QgsLayoutItemMap.assignFreeId: src/core/layout/qgslayoutitemmap.h#L386
QgsLayoutItemMap.atlasClippingSettings: src/core/layout/qgslayoutitemmap.h#L863
QgsLayoutItemMap.atlasDriven: src/core/layout/qgslayoutitemmap.h#L644
QgsLayoutItemMap.atlasMargin: src/core/layout/qgslayoutitemmap.h#L686
QgsLayoutItemMap.atlasScalingMode: src/core/layout/qgslayoutitemmap.h#L663
QgsLayoutItemMap.boundingRect: src/core/layout/qgslayoutitemmap.h#L929
QgsLayoutItemMap.containsAdvancedEffects: src/core/layout/qgslayoutitemmap.h#L605
QgsLayoutItemMap.containsWmsLayer: src/core/layout/qgslayoutitemmap.h#L602
QgsLayoutItemMap.create: src/core/layout/qgslayoutitemmap.h#L396
QgsLayoutItemMap.createExpressionContext: src/core/layout/qgslayoutitemmap.h#L749
QgsLayoutItemMap.crs: src/core/layout/qgslayoutitemmap.h#L472
QgsLayoutItemMap.crsChanged: src/core/layout/qgslayoutitemmap.h#L982
QgsLayoutItemMap.displayName: src/core/layout/qgslayoutitemmap.h#L389
QgsLayoutItemMap.draw: src/core/layout/qgslayoutitemmap.h#L920
QgsLayoutItemMap.drawAnnotations: src/core/layout/qgslayoutitemmap.h#L635
QgsLayoutItemMap.estimatedFrameBleed: src/core/layout/qgslayoutitemmap.h#L916
QgsLayoutItemMap.exportLayerBehavior: src/core/layout/qgslayoutitemmap.h#L409
QgsLayoutItemMap.exportLayerDetails: src/core/layout/qgslayoutitemmap.h#L410
QgsLayoutItemMap.extent: src/core/layout/qgslayoutitemmap.h#L452
QgsLayoutItemMap.extentChanged: src/core/layout/qgslayoutitemmap.h#L949
QgsLayoutItemMap.finalizeRestoreFromXml: src/core/layout/qgslayoutitemmap.h#L767
QgsLayoutItemMap.followVisibilityPreset: src/core/layout/qgslayoutitemmap.h#L571
QgsLayoutItemMap.followVisibilityPresetName: src/core/layout/qgslayoutitemmap.h#L585
QgsLayoutItemMap.framePath: src/core/layout/qgslayoutitemmap.h#L923
QgsLayoutItemMap.grid: src/core/layout/qgslayoutitemmap.h#L708
QgsLayoutItemMap.grids: src/core/layout/qgslayoutitemmap.h#L702
QgsLayoutItemMap.icon: src/core/layout/qgslayoutitemmap.h#L366
QgsLayoutItemMap.invalidateCache: src/core/layout/qgslayoutitemmap.h#L995
QgsLayoutItemMap.isDrawing: src/core/layout/qgslayoutitemmap.h#L926
QgsLayoutItemMap.isLabelBlockingItem: src/core/layout/qgslayoutitemmap.h#L812
QgsLayoutItemMap.itemClippingSettings: src/core/layout/qgslayoutitemmap.h#L870
QgsLayoutItemMap.itemFlags: src/core/layout/qgslayoutitemmap.h#L367
QgsLayoutItemMap.keepLayerSet: src/core/layout/qgslayoutitemmap.h#L501
QgsLayoutItemMap.keepLayerStyles: src/core/layout/qgslayoutitemmap.h#L536
QgsLayoutItemMap.labelMargin: src/core/layout/qgslayoutitemmap.h#L735
QgsLayoutItemMap.layerStyleOverridesChanged: src/core/layout/qgslayoutitemmap.h#L965
QgsLayoutItemMap.layoutToMapCoordsTransform: src/core/layout/qgslayoutitemmap.h#L856
QgsLayoutItemMap.mapFlags: src/core/layout/qgslayoutitemmap.h#L374
QgsLayoutItemMap.mapRotation: src/core/layout/qgslayoutitemmap.h#L623
QgsLayoutItemMap.mapRotationChanged: src/core/layout/qgslayoutitemmap.h#L956
QgsLayoutItemMap.mapSettings: src/core/layout/qgslayoutitemmap.h#L765
QgsLayoutItemMap.mapToItemCoords: src/core/layout/qgslayoutitemmap.h#L935
QgsLayoutItemMap.mapUnitsToLayoutUnits: src/core/layout/qgslayoutitemmap.h#L756
QgsLayoutItemMap.moveContent: src/core/layout/qgslayoutitemmap.h#L595
QgsLayoutItemMap.nextExportPart: src/core/layout/qgslayoutitemmap.h#L408
QgsLayoutItemMap.numberExportLayers: src/core/layout/qgslayoutitemmap.h#L404
QgsLayoutItemMap.overview: src/core/layout/qgslayoutitemmap.h#L723
QgsLayoutItemMap.overviews: src/core/layout/qgslayoutitemmap.h#L716
QgsLayoutItemMap.paint: src/core/layout/qgslayoutitemmap.h#L399
QgsLayoutItemMap.preparedForAtlas: src/core/layout/qgslayoutitemmap.h#L959
QgsLayoutItemMap.presetCrs: src/core/layout/qgslayoutitemmap.h#L482
QgsLayoutItemMap.previewLabelingResults: src/core/layout/qgslayoutitemmap.h#L827
QgsLayoutItemMap.previewRefreshed: src/core/layout/qgslayoutitemmap.h#L989
QgsLayoutItemMap.readPropertiesFromElement: src/core/layout/qgslayoutitemmap.h#L922
QgsLayoutItemMap.refresh: src/core/layout/qgslayoutitemmap.h#L993
QgsLayoutItemMap.refreshDataDefinedProperty: src/core/layout/qgslayoutitemmap.h#L1000
QgsLayoutItemMap.removeLabelBlockingItem: src/core/layout/qgslayoutitemmap.h#L799
QgsLayoutItemMap.removeRenderedFeatureHandler: src/core/layout/qgslayoutitemmap.h#L851
QgsLayoutItemMap.renderingErrors: src/core/layout/qgslayoutitemmap.h#L818
QgsLayoutItemMap.requestedExtent: src/core/layout/qgslayoutitemmap.h#L940
QgsLayoutItemMap.requiresRasterization: src/core/layout/qgslayoutitemmap.h#L604
QgsLayoutItemMap.scale: src/core/layout/qgslayoutitemmap.h#L418
QgsLayoutItemMap.setAtlasDriven: src/core/layout/qgslayoutitemmap.h#L652
QgsLayoutItemMap.setAtlasMargin: src/core/layout/qgslayoutitemmap.h#L695
QgsLayoutItemMap.setAtlasScalingMode: src/core/layout/qgslayoutitemmap.h#L674
QgsLayoutItemMap.setCrs: src/core/layout/qgslayoutitemmap.h#L491
QgsLayoutItemMap.setDrawAnnotations: src/core/layout/qgslayoutitemmap.h#L629
QgsLayoutItemMap.setExtent: src/core/layout/qgslayoutitemmap.h#L436
QgsLayoutItemMap.setFollowVisibilityPreset: src/core/layout/qgslayoutitemmap.h#L576
QgsLayoutItemMap.setFollowVisibilityPresetName: src/core/layout/qgslayoutitemmap.h#L593
QgsLayoutItemMap.setFrameStrokeWidth: src/core/layout/qgslayoutitemmap.h#L411
QgsLayoutItemMap.setKeepLayerSet: src/core/layout/qgslayoutitemmap.h#L511
QgsLayoutItemMap.setKeepLayerStyles: src/core/layout/qgslayoutitemmap.h#L542
QgsLayoutItemMap.setLabelMargin: src/core/layout/qgslayoutitemmap.h#L747
QgsLayoutItemMap.setLayerStyleOverrides: src/core/layout/qgslayoutitemmap.h#L554
QgsLayoutItemMap.setLayers: src/core/layout/qgslayoutitemmap.h#L530
QgsLayoutItemMap.setMapFlags: src/core/layout/qgslayoutitemmap.h#L381
QgsLayoutItemMap.setMapRotation: src/core/layout/qgslayoutitemmap.h#L613
QgsLayoutItemMap.setMoveContentPreviewOffset: src/core/layout/qgslayoutitemmap.h#L596
QgsLayoutItemMap.setScale: src/core/layout/qgslayoutitemmap.h#L427
QgsLayoutItemMap.setZRange: src/core/layout/qgslayoutitemmap.h#L913
QgsLayoutItemMap.setZRangeEnabled: src/core/layout/qgslayoutitemmap.h#L879
QgsLayoutItemMap.startLayeredExport: src/core/layout/qgslayoutitemmap.h#L406
QgsLayoutItemMap.stopLayeredExport: src/core/layout/qgslayoutitemmap.h#L407
QgsLayoutItemMap.storeCurrentLayerStyles: src/core/layout/qgslayoutitemmap.h#L559
QgsLayoutItemMap.themeChanged: src/core/layout/qgslayoutitemmap.h#L975
QgsLayoutItemMap.transformedMapPolygon: src/core/layout/qgslayoutitemmap.h#L932
QgsLayoutItemMap.type: src/core/layout/qgslayoutitemmap.h#L365
QgsLayoutItemMap.updateBoundingRect: src/core/layout/qgslayoutitemmap.h#L998
QgsLayoutItemMap.visibleExtentPolygon: src/core/layout/qgslayoutitemmap.h#L462
QgsLayoutItemMap.writePropertiesToElement: src/core/layout/qgslayoutitemmap.h#L921
QgsLayoutItemMap.zRange: src/core/layout/qgslayoutitemmap.h#L901
QgsLayoutItemMap.zRangeEnabled: src/core/layout/qgslayoutitemmap.h#L889
QgsLayoutItemMap.zoomContent: src/core/layout/qgslayoutitemmap.h#L598
QgsLayoutItemMap.zoomToExtent: src/core/layout/qgslayoutitemmap.h#L445
QgsLayoutItemMap: src/core/layout/qgslayoutitemmap.h#L318
QgsLayoutItemMapAtlasClippingSettings.changed: src/core/layout/qgslayoutitemmap.h#L149
QgsLayoutItemMapAtlasClippingSettings.enabled: src/core/layout/qgslayoutitemmap.h#L57
QgsLayoutItemMapAtlasClippingSettings.featureClippingType: src/core/layout/qgslayoutitemmap.h#L71
QgsLayoutItemMapAtlasClippingSettings.forceLabelsInsideFeature: src/core/layout/qgslayoutitemmap.h#L85
QgsLayoutItemMapAtlasClippingSettings.readXml: src/core/layout/qgslayoutitemmap.h#L142
QgsLayoutItemMapAtlasClippingSettings.restrictToLayers: src/core/layout/qgslayoutitemmap.h#L100
QgsLayoutItemMapAtlasClippingSettings.setEnabled: src/core/layout/qgslayoutitemmap.h#L64
QgsLayoutItemMapAtlasClippingSettings.setFeatureClippingType: src/core/layout/qgslayoutitemmap.h#L78
QgsLayoutItemMapAtlasClippingSettings.setForceLabelsInsideFeature: src/core/layout/qgslayoutitemmap.h#L92
QgsLayoutItemMapAtlasClippingSettings.setLayersToClip: src/core/layout/qgslayoutitemmap.h#L128
QgsLayoutItemMapAtlasClippingSettings.setRestrictToLayers: src/core/layout/qgslayoutitemmap.h#L108
QgsLayoutItemMapAtlasClippingSettings.writeXml: src/core/layout/qgslayoutitemmap.h#L135
QgsLayoutItemMapAtlasClippingSettings: src/core/layout/qgslayoutitemmap.h#L41
QgsLayoutItemMapGrid.accept: src/core/layout/qgslayoutitemmapgrid.h#L1005
QgsLayoutItemMapGrid.annotationDirection: src/core/layout/qgslayoutitemmapgrid.h#L701
QgsLayoutItemMapGrid.annotationDisplay: src/core/layout/qgslayoutitemmapgrid.h#L656
@ -7553,23 +7569,23 @@ QgsLayoutItemMapItem.stackingPosition: src/core/layout/qgslayoutitemmapitem.h#L1
QgsLayoutItemMapItem.usesAdvancedEffects: src/core/layout/qgslayoutitemmapitem.h#L128
QgsLayoutItemMapItem.writeXml: src/core/layout/qgslayoutitemmapitem.h#L65
QgsLayoutItemMapItem: src/core/layout/qgslayoutitemmapitem.h#L32
QgsLayoutItemMapItemClipPathSettings.changed: src/core/layout/qgslayoutitemmap.h#L297
QgsLayoutItemMapItemClipPathSettings.clipPathInMapItemCoordinates: src/core/layout/qgslayoutitemmap.h#L219
QgsLayoutItemMapItemClipPathSettings.clippedMapExtent: src/core/layout/qgslayoutitemmap.h#L208
QgsLayoutItemMapItemClipPathSettings.enabled: src/core/layout/qgslayoutitemmap.h#L194
QgsLayoutItemMapItemClipPathSettings.featureClippingType: src/core/layout/qgslayoutitemmap.h#L248
QgsLayoutItemMapItemClipPathSettings.finalizeRestoreFromXml: src/core/layout/qgslayoutitemmap.h#L290
QgsLayoutItemMapItemClipPathSettings.forceLabelsInsideClipPath: src/core/layout/qgslayoutitemmap.h#L262
QgsLayoutItemMapItemClipPathSettings.isActive: src/core/layout/qgslayoutitemmap.h#L187
QgsLayoutItemMapItemClipPathSettings.readXml: src/core/layout/qgslayoutitemmap.h#L284
QgsLayoutItemMapItemClipPathSettings.setEnabled: src/core/layout/qgslayoutitemmap.h#L201
QgsLayoutItemMapItemClipPathSettings.setFeatureClippingType: src/core/layout/qgslayoutitemmap.h#L255
QgsLayoutItemMapItemClipPathSettings.setForceLabelsInsideClipPath: src/core/layout/qgslayoutitemmap.h#L269
QgsLayoutItemMapItemClipPathSettings.setSourceItem: src/core/layout/qgslayoutitemmap.h#L233
QgsLayoutItemMapItemClipPathSettings.sourceItem: src/core/layout/qgslayoutitemmap.h#L241
QgsLayoutItemMapItemClipPathSettings.toMapClippingRegion: src/core/layout/qgslayoutitemmap.h#L224
QgsLayoutItemMapItemClipPathSettings.writeXml: src/core/layout/qgslayoutitemmap.h#L276
QgsLayoutItemMapItemClipPathSettings: src/core/layout/qgslayoutitemmap.h#L170
QgsLayoutItemMapItemClipPathSettings.changed: src/core/layout/qgslayoutitemmap.h#L298
QgsLayoutItemMapItemClipPathSettings.clipPathInMapItemCoordinates: src/core/layout/qgslayoutitemmap.h#L220
QgsLayoutItemMapItemClipPathSettings.clippedMapExtent: src/core/layout/qgslayoutitemmap.h#L209
QgsLayoutItemMapItemClipPathSettings.enabled: src/core/layout/qgslayoutitemmap.h#L195
QgsLayoutItemMapItemClipPathSettings.featureClippingType: src/core/layout/qgslayoutitemmap.h#L249
QgsLayoutItemMapItemClipPathSettings.finalizeRestoreFromXml: src/core/layout/qgslayoutitemmap.h#L291
QgsLayoutItemMapItemClipPathSettings.forceLabelsInsideClipPath: src/core/layout/qgslayoutitemmap.h#L263
QgsLayoutItemMapItemClipPathSettings.isActive: src/core/layout/qgslayoutitemmap.h#L188
QgsLayoutItemMapItemClipPathSettings.readXml: src/core/layout/qgslayoutitemmap.h#L285
QgsLayoutItemMapItemClipPathSettings.setEnabled: src/core/layout/qgslayoutitemmap.h#L202
QgsLayoutItemMapItemClipPathSettings.setFeatureClippingType: src/core/layout/qgslayoutitemmap.h#L256
QgsLayoutItemMapItemClipPathSettings.setForceLabelsInsideClipPath: src/core/layout/qgslayoutitemmap.h#L270
QgsLayoutItemMapItemClipPathSettings.setSourceItem: src/core/layout/qgslayoutitemmap.h#L234
QgsLayoutItemMapItemClipPathSettings.sourceItem: src/core/layout/qgslayoutitemmap.h#L242
QgsLayoutItemMapItemClipPathSettings.toMapClippingRegion: src/core/layout/qgslayoutitemmap.h#L225
QgsLayoutItemMapItemClipPathSettings.writeXml: src/core/layout/qgslayoutitemmap.h#L277
QgsLayoutItemMapItemClipPathSettings: src/core/layout/qgslayoutitemmap.h#L171
QgsLayoutItemMapItemStack.addItem: src/core/layout/qgslayoutitemmapitem.h#L306
QgsLayoutItemMapItemStack.containsAdvancedEffects: src/core/layout/qgslayoutitemmapitem.h#L282
QgsLayoutItemMapItemStack.drawItems: src/core/layout/qgslayoutitemmapitem.h#L276

View File

@ -51,6 +51,7 @@
%Include auto_generated/qgsexpressioncontextscopegenerator.sip
%Include auto_generated/qgsexpressionfieldbuffer.sip
%Include auto_generated/qgsfeature.sip
%Include auto_generated/qgsfeatureexpressionfilterprovider.sip
%Include auto_generated/qgsfeaturepickermodel.sip
%Include auto_generated/qgsfeaturepickermodelbase.sip
%Include auto_generated/qgsfeaturefiltermodel.sip
@ -77,6 +78,7 @@
%Include auto_generated/qgsgeometryvalidator.sip
%Include auto_generated/qgsgml.sip
%Include auto_generated/qgsgmlschema.sip
%Include auto_generated/qgsgroupedfeaturefilterprovider.sip
%Include auto_generated/qgsgrouplayer.sip
%Include auto_generated/qgshistogram.sip
%Include auto_generated/qgshstoreutils.sip

View File

@ -327,6 +327,7 @@ tests:
- 61d6cea43ff284ea8909f071b3f13344e146430b7754ad25321a05af
- 702e4fbf8f35d9c4759f1a1e437c2680b45a84d5175d862d92db1f06
- 8082737b192683878f415dd28bd8988e64e74198668c4c5b477ad1b8
- 2f1b12a7f0c2da87c8ffde15a45207b1660f5bd15ce41b397900ec8a
type: rasterhash
- algorithm: grass7:r.info

View File

@ -79,13 +79,21 @@ class ExampleProcessingAlgorithm(QgsProcessingAlgorithm):
"""
return "examplescripts"
def shortDescription(self) -> str:
"""
Returns an optional translated short description of the algorithm, displayed
on hover in Processing Toolbox. This should be at most a single sentence, e.g.,
Converts 2D features to 3D by sampling a DEM raster.
"""
return "Example algorithm short description on hover"
def shortHelpString(self) -> str:
"""
Returns a localised short helper string for the algorithm. This string
should provide a basic description about what the algorithm does and the
Returns a localised helper string for the algorithm displayed in the dialog.
This string should provide a basic description about what the algorithm does and the
parameters and outputs associated with it.
"""
return "Example algorithm short description"
return "Example algorithm description"
def initAlgorithm(self, config: Optional[dict[str, Any]] = None):
"""
@ -95,13 +103,16 @@ class ExampleProcessingAlgorithm(QgsProcessingAlgorithm):
# We add the input vector features source. It can have any kind of
# geometry.
self.addParameter(
QgsProcessingParameterFeatureSource(
self.INPUT,
"Input layer",
[QgsProcessing.SourceType.TypeVectorAnyGeometry],
)
input_layer = QgsProcessingParameterFeatureSource(
self.INPUT,
"Input layer",
[QgsProcessing.SourceType.TypeVectorAnyGeometry],
)
input_layer.setHelp(
"A descriptive, translated string explaining the parameters behavior and use in depth."
)
self.addParameter(input_layer)
# We add a feature sink in which to store our processed features (this
# usually takes the form of a newly created vector layer when the

View File

@ -2395,6 +2395,7 @@ tests:
- 8f59f545b5df01f213b7a2233eb364d05b5801676d1f4285ad1225a1
- 360a66711d38a77e79c69aa1a42d620090024011582c4518cfd24178
- dada50c7bf8aa705bac0bbfc9a295f3c0e2f83cb1877545105279d75
- 188f828595fc929281590faf0e8fdfcaf263b7c7ed37d6eed41623b6
type: rasterhash
- algorithm: qgis:relief

View File

@ -658,8 +658,14 @@ class Repositories(QObject):
.text()
.strip()
)
supports_qt6 = pluginNodes.item(i).firstChildElement(
"supports_qt6"
).text().strip().upper() in ["TRUE", "YES"]
if not qgisMaximumVersion:
qgisMaximumVersion = qgisMinimumVersion[0] + ".99"
if qgisMinimumVersion[0] == "3" and supports_qt6:
qgisMaximumVersion = "4.99"
else:
qgisMaximumVersion = qgisMinimumVersion[0] + ".99"
# if compatible, add the plugin to the list
if not pluginNodes.item(i).firstChildElement(
"disabled"
@ -845,7 +851,10 @@ class Plugins(QObject):
qgisMinimumVersion = "0"
qgisMaximumVersion = pluginMetadata("qgisMaximumVersion").strip()
if not qgisMaximumVersion:
qgisMaximumVersion = qgisMinimumVersion[0] + ".99"
if qgisMinimumVersion[0] == "3" and supports_qt6:
qgisMaximumVersion = "4.99"
else:
qgisMaximumVersion = qgisMinimumVersion[0] + ".99"
# if compatible, add the plugin to the list
if not isCompatible(
pyQgisVersion(), qgisMinimumVersion, qgisMaximumVersion

View File

@ -1,5 +1,5 @@
# The following has been generated automatically from src/server/qgsaccesscontrol.h
try:
QgsAccessControl.__overridden_methods__ = ['filterFeatures', 'clone', 'layerAttributes']
QgsAccessControl.__overridden_methods__ = ['isFilterThreadSafe', 'filterFeatures', 'layerAttributes', 'clone']
except (NameError, AttributeError):
pass

View File

@ -1,5 +1,5 @@
# The following has been generated automatically from src/server/qgsfeaturefilter.h
try:
QgsFeatureFilter.__overridden_methods__ = ['filterFeatures', 'layerAttributes', 'clone']
QgsFeatureFilter.__overridden_methods__ = ['isFilterThreadSafe', 'filterFeatures', 'layerAttributes', 'clone']
except (NameError, AttributeError):
pass

View File

@ -1,5 +1,5 @@
# The following has been generated automatically from src/server/qgsfeaturefilterprovidergroup.h
try:
QgsFeatureFilterProviderGroup.__overridden_methods__ = ['filterFeatures', 'layerAttributes', 'clone']
QgsFeatureFilterProviderGroup.__overridden_methods__ = ['isFilterThreadSafe', 'filterFeatures', 'layerAttributes', 'clone']
except (NameError, AttributeError):
pass

View File

@ -35,6 +35,15 @@ Constructor
~QgsAccessControl();
virtual bool isFilterThreadSafe() const;
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const;
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
virtual QgsAccessControl *clone() const /Factory/;
void resolveFilterFeatures( const QList<QgsMapLayer *> &layers );
%Docstring
Resolve features' filter of layers The method fetch filter's expressions
@ -49,23 +58,6 @@ for efficiency; between each requests, the cache must be cleared using
void unresolveFilterFeatures();
%Docstring
Clear expression's cache computed from `resolveFilterFeatures`
%End
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const;
%Docstring
Filter the features of the layer
:param layer: the layer to control
:param filterFeatures: the request to fill
%End
virtual QgsFeatureFilterProvider *clone() const /Factory/;
%Docstring
Returns a clone of the object
:return: A clone
%End
QString extraSubsetString( const QgsVectorLayer *layer ) const;
@ -111,17 +103,6 @@ Returns the layer delete right
:param layer: the layer to control
:return: ``True`` if we can do a delete
%End
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
%Docstring
Returns the authorized layer attributes
:param layer: the layer to control
:param attributes: the list of attribute
:return: the list of visible attributes
%End
bool allowToEdit( const QgsVectorLayer *layer, const QgsFeature &feature ) const;

View File

@ -16,6 +16,10 @@ class QgsFeatureFilter : QgsFeatureFilterProvider
%Docstring(signature="appended")
A feature filter provider allowing to set filter expressions on a
per-layer basis.
.. deprecated:: 3.4
Use :py:class:`QgsFeatureExpressionFilterProvider`
%End
%TypeHeaderCode
@ -27,25 +31,14 @@ per-layer basis.
Constructor
%End
virtual bool isFilterThreadSafe() const;
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const;
%Docstring
Filter the features of the layer
:param layer: the layer to control
:param filterFeatures: the request to fill
%End
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
virtual QgsFeatureFilterProvider *clone() const /Factory/;
%Docstring
Returns a clone of the object
:return: A clone
%End
void setFilter( const QgsVectorLayer *layer, const QgsExpression &expression );
%Docstring

View File

@ -14,6 +14,10 @@ class QgsFeatureFilterProviderGroup : QgsFeatureFilterProvider
{
%Docstring(signature="appended")
A filter filter provider grouping several filter providers.
.. deprecated:: 3.4
Use :py:class:`QgsGroupedFeatureFilterProvider`
%End
%TypeHeaderCode
@ -25,25 +29,14 @@ A filter filter provider grouping several filter providers.
Constructor
%End
virtual bool isFilterThreadSafe() const;
virtual void filterFeatures( const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures ) const;
%Docstring
Filter the features of the layer.
:param layer: the layer to control
:param filterFeatures: the request to fill
%End
virtual QStringList layerAttributes( const QgsVectorLayer *layer, const QStringList &attributes ) const;
virtual QgsFeatureFilterProviderGroup *clone() const /Factory/;
virtual QgsFeatureFilterProvider *clone() const /Factory/;
%Docstring
Returns a clone of the object
:return: A clone
%End
QgsFeatureFilterProviderGroup &addProvider( const QgsFeatureFilterProvider *provider );
%Docstring

View File

@ -1,16 +1,17 @@
QgsAccessControl.allowToEdit: src/server/qgsaccesscontrol.h#L152
QgsAccessControl.clone: src/server/qgsaccesscontrol.h#L101
QgsAccessControl.extraSubsetString: src/server/qgsaccesscontrol.h#L108
QgsAccessControl.fillCacheKey: src/server/qgsaccesscontrol.h#L158
QgsAccessControl.filterFeatures: src/server/qgsaccesscontrol.h#L95
QgsAccessControl.layerAttributes: src/server/qgsaccesscontrol.h#L144
QgsAccessControl.layerDeletePermission: src/server/qgsaccesscontrol.h#L136
QgsAccessControl.layerInsertPermission: src/server/qgsaccesscontrol.h#L122
QgsAccessControl.layerReadPermission: src/server/qgsaccesscontrol.h#L115
QgsAccessControl.layerUpdatePermission: src/server/qgsaccesscontrol.h#L129
QgsAccessControl.registerAccessControl: src/server/qgsaccesscontrol.h#L165
QgsAccessControl.resolveFilterFeatures: src/server/qgsaccesscontrol.h#L83
QgsAccessControl.unresolveFilterFeatures: src/server/qgsaccesscontrol.h#L88
QgsAccessControl.allowToEdit: src/server/qgsaccesscontrol.h#L137
QgsAccessControl.clone: src/server/qgsaccesscontrol.h#L78
QgsAccessControl.extraSubsetString: src/server/qgsaccesscontrol.h#L101
QgsAccessControl.fillCacheKey: src/server/qgsaccesscontrol.h#L143
QgsAccessControl.filterFeatures: src/server/qgsaccesscontrol.h#L76
QgsAccessControl.isFilterThreadSafe: src/server/qgsaccesscontrol.h#L74
QgsAccessControl.layerAttributes: src/server/qgsaccesscontrol.h#L77
QgsAccessControl.layerDeletePermission: src/server/qgsaccesscontrol.h#L129
QgsAccessControl.layerInsertPermission: src/server/qgsaccesscontrol.h#L115
QgsAccessControl.layerReadPermission: src/server/qgsaccesscontrol.h#L108
QgsAccessControl.layerUpdatePermission: src/server/qgsaccesscontrol.h#L122
QgsAccessControl.registerAccessControl: src/server/qgsaccesscontrol.h#L150
QgsAccessControl.resolveFilterFeatures: src/server/qgsaccesscontrol.h#L89
QgsAccessControl.unresolveFilterFeatures: src/server/qgsaccesscontrol.h#L94
QgsAccessControl: src/server/qgsaccesscontrol.h#L35
QgsAccessControlFilter.allowToEdit: src/server/qgsaccesscontrolfilter.h#L109
QgsAccessControlFilter.authorizedLayerAttributes: src/server/qgsaccesscontrolfilter.h#L101
@ -54,15 +55,17 @@ QgsFcgiServerRequest.data: src/server/qgsfcgiserverrequest.h#L36
QgsFcgiServerRequest.hasError: src/server/qgsfcgiserverrequest.h#L41
QgsFcgiServerRequest.header: src/server/qgsfcgiserverrequest.h#L49
QgsFcgiServerRequest: src/server/qgsfcgiserverrequest.h#L31
QgsFeatureFilter.clone: src/server/qgsfeaturefilter.h#L52
QgsFeatureFilter.filterFeatures: src/server/qgsfeaturefilter.h#L44
QgsFeatureFilter.layerAttributes: src/server/qgsfeaturefilter.h#L46
QgsFeatureFilter.setFilter: src/server/qgsfeaturefilter.h#L59
QgsFeatureFilter: src/server/qgsfeaturefilter.h#L33
QgsFeatureFilterProviderGroup.clone: src/server/qgsfeaturefilterprovidergroup.h#L50
QgsFeatureFilterProviderGroup.filterFeatures: src/server/qgsfeaturefilterprovidergroup.h#L42
QgsFeatureFilterProviderGroup.layerAttributes: src/server/qgsfeaturefilterprovidergroup.h#L44
QgsFeatureFilterProviderGroup: src/server/qgsfeaturefilterprovidergroup.h#L31
QgsFeatureFilter.clone: src/server/qgsfeaturefilter.h#L44
QgsFeatureFilter.filterFeatures: src/server/qgsfeaturefilter.h#L42
QgsFeatureFilter.isFilterThreadSafe: src/server/qgsfeaturefilter.h#L40
QgsFeatureFilter.layerAttributes: src/server/qgsfeaturefilter.h#L43
QgsFeatureFilter.setFilter: src/server/qgsfeaturefilter.h#L51
QgsFeatureFilter: src/server/qgsfeaturefilter.h#L34
QgsFeatureFilterProviderGroup.clone: src/server/qgsfeaturefilterprovidergroup.h#L42
QgsFeatureFilterProviderGroup.filterFeatures: src/server/qgsfeaturefilterprovidergroup.h#L40
QgsFeatureFilterProviderGroup.isFilterThreadSafe: src/server/qgsfeaturefilterprovidergroup.h#L38
QgsFeatureFilterProviderGroup.layerAttributes: src/server/qgsfeaturefilterprovidergroup.h#L41
QgsFeatureFilterProviderGroup: src/server/qgsfeaturefilterprovidergroup.h#L32
QgsOgcServiceException.code: src/server/qgsserverexception.h#L94
QgsOgcServiceException.formatResponse: src/server/qgsserverexception.h#L102
QgsOgcServiceException.locator: src/server/qgsserverexception.h#L97

View File

@ -64,7 +64,7 @@ void QgsDirectionalLightSettings::readXml( const QDomElement &elem, const QgsRea
mIntensity = elem.attribute( QStringLiteral( "intensity" ) ).toFloat();
}
bool QgsDirectionalLightSettings::operator==( const QgsDirectionalLightSettings &other )
bool QgsDirectionalLightSettings::operator==( const QgsDirectionalLightSettings &other ) const
{
return mDirection == other.mDirection && mColor == other.mColor && mIntensity == other.mIntensity;
}

View File

@ -58,7 +58,7 @@ class _3D_EXPORT QgsDirectionalLightSettings : public QgsLightSource
void setIntensity( float intensity ) { mIntensity = intensity; }
// TODO c++20 - replace with = default
bool operator==( const QgsDirectionalLightSettings &other );
bool operator==( const QgsDirectionalLightSettings &other ) const;
private:
QgsVector3D mDirection { -0.32, 0.27, -0.91 };

View File

@ -107,7 +107,7 @@ void QgsPointLightSettings::readXml( const QDomElement &elem, const QgsReadWrite
mQuadraticAttenuation = elem.attribute( QStringLiteral( "attenuation-2" ) ).toDouble();
}
bool QgsPointLightSettings::operator==( const QgsPointLightSettings &other )
bool QgsPointLightSettings::operator==( const QgsPointLightSettings &other ) const
{
return mPosition == other.mPosition && mColor == other.mColor && mIntensity == other.mIntensity && mConstantAttenuation == other.mConstantAttenuation && mLinearAttenuation == other.mLinearAttenuation && mQuadraticAttenuation == other.mQuadraticAttenuation;
}

View File

@ -79,7 +79,7 @@ class _3D_EXPORT QgsPointLightSettings : public QgsLightSource
void setQuadraticAttenuation( float value ) { mQuadraticAttenuation = value; }
// TODO c++20 - replace with = default
bool operator==( const QgsPointLightSettings &other );
bool operator==( const QgsPointLightSettings &other ) const;
private:
QgsVector3D mPosition { 0, 0, 1000 };

View File

@ -66,7 +66,7 @@ Qgs3DMapCanvas::Qgs3DMapCanvas()
const QgsSettings setting;
mEngine = new QgsWindow3DEngine( this );
connect( mEngine, &QgsAbstract3DEngine::imageCaptured, this, [=]( const QImage &image ) {
connect( mEngine, &QgsAbstract3DEngine::imageCaptured, this, [this]( const QImage &image ) {
if ( image.save( mCaptureFileName, mCaptureFileFormat.toLocal8Bit().data() ) )
{
emit savedAsImage( mCaptureFileName );
@ -169,7 +169,7 @@ void Qgs3DMapCanvas::setMapSettings( Qgs3DMapSettings *mapSettings )
resetView();
connect( cameraController(), &QgsCameraController::setCursorPosition, this, [=]( QPoint point ) {
connect( cameraController(), &QgsCameraController::setCursorPosition, this, [this]( QPoint point ) {
QCursor::setPos( mapToGlobal( point ) );
} );
connect( cameraController(), &QgsCameraController::cameraMovementSpeedChanged, mMapSettings, &Qgs3DMapSettings::setCameraMovementSpeed );
@ -216,7 +216,7 @@ void Qgs3DMapCanvas::saveAsImage( const QString &fileName, const QString &fileFo
Qt3DLogic::QFrameAction *screenCaptureFrameAction = new Qt3DLogic::QFrameAction;
mScene->addComponent( screenCaptureFrameAction );
// Wait to have the render capture enabled in the next frame
connect( screenCaptureFrameAction, &Qt3DLogic::QFrameAction::triggered, this, [=]( float ) {
connect( screenCaptureFrameAction, &Qt3DLogic::QFrameAction::triggered, this, [this, screenCaptureFrameAction]( float ) {
mEngine->requestCaptureImage();
mScene->removeComponent( screenCaptureFrameAction );
screenCaptureFrameAction->deleteLater();
@ -232,7 +232,7 @@ void Qgs3DMapCanvas::captureDepthBuffer()
Qt3DLogic::QFrameAction *screenCaptureFrameAction = new Qt3DLogic::QFrameAction;
mScene->addComponent( screenCaptureFrameAction );
// Wait to have the render capture enabled in the next frame
connect( screenCaptureFrameAction, &Qt3DLogic::QFrameAction::triggered, this, [=]( float ) {
connect( screenCaptureFrameAction, &Qt3DLogic::QFrameAction::triggered, this, [this, screenCaptureFrameAction]( float ) {
mEngine->requestDepthBufferCapture();
mScene->removeComponent( screenCaptureFrameAction );
screenCaptureFrameAction->deleteLater();

View File

@ -159,7 +159,7 @@ Qgs3DMapScene::Qgs3DMapScene( Qgs3DMapSettings &map, QgsAbstract3DEngine *engine
connect( &map, &Qgs3DMapSettings::originChanged, this, &Qgs3DMapScene::onOriginChanged );
connect( QgsApplication::sourceCache(), &QgsSourceCache::remoteSourceFetched, this, [=]( const QString &url ) {
connect( QgsApplication::sourceCache(), &QgsSourceCache::remoteSourceFetched, this, [this]( const QString &url ) {
const QList<QgsMapLayer *> modelVectorLayers = mModelVectorLayers;
for ( QgsMapLayer *layer : modelVectorLayers )
{

View File

@ -33,7 +33,7 @@ void QgsAbstract3DEngine::requestCaptureImage()
mFrameGraph->setRenderCaptureEnabled( true );
captureReply = mFrameGraph->renderCapture()->requestCapture();
connect( captureReply, &Qt3DRender::QRenderCaptureReply::completed, this, [=] {
connect( captureReply, &Qt3DRender::QRenderCaptureReply::completed, this, [this, captureReply] {
emit imageCaptured( captureReply->image() );
captureReply->deleteLater();
mFrameGraph->setRenderCaptureEnabled( false );
@ -45,7 +45,7 @@ void QgsAbstract3DEngine::requestDepthBufferCapture()
Qt3DRender::QRenderCaptureReply *captureReply;
captureReply = mFrameGraph->depthRenderCapture()->requestCapture();
connect( captureReply, &Qt3DRender::QRenderCaptureReply::completed, this, [=] {
connect( captureReply, &Qt3DRender::QRenderCaptureReply::completed, this, [this, captureReply] {
emit depthBufferCaptured( captureReply->image() );
captureReply->deleteLater();
} );

View File

@ -264,38 +264,41 @@ void QgsCameraController::setCameraPose( const QgsCameraPose &camPose, bool forc
QDomElement QgsCameraController::writeXml( QDomDocument &doc ) const
{
QDomElement elemCamera = doc.createElement( QStringLiteral( "camera" ) );
QgsVector3D centerPoint;
switch ( mScene->mapSettings()->sceneMode() )
{
case Qgis::SceneMode::Local:
centerPoint = mCameraPose.centerPoint();
break;
case Qgis::SceneMode::Globe:
// Save center point in map coordinates, since our world origin won't be
// the same on loading
centerPoint = mCameraPose.centerPoint() + mOrigin;
break;
}
elemCamera.setAttribute( QStringLiteral( "x" ), centerPoint.x() );
elemCamera.setAttribute( QStringLiteral( "y" ), centerPoint.z() );
elemCamera.setAttribute( QStringLiteral( "elev" ), centerPoint.y() );
// Save center point in map coordinates, since our world origin won't be
// the same on loading
QgsVector3D centerPoint = mCameraPose.centerPoint() + mOrigin;
elemCamera.setAttribute( QStringLiteral( "xMap" ), centerPoint.x() );
elemCamera.setAttribute( QStringLiteral( "yMap" ), centerPoint.y() );
elemCamera.setAttribute( QStringLiteral( "zMap" ), centerPoint.z() );
elemCamera.setAttribute( QStringLiteral( "dist" ), mCameraPose.distanceFromCenterPoint() );
elemCamera.setAttribute( QStringLiteral( "pitch" ), mCameraPose.pitchAngle() );
elemCamera.setAttribute( QStringLiteral( "yaw" ), mCameraPose.headingAngle() );
return elemCamera;
}
void QgsCameraController::readXml( const QDomElement &elem )
void QgsCameraController::readXml( const QDomElement &elem, QgsVector3D savedOrigin )
{
const float x = elem.attribute( QStringLiteral( "x" ) ).toFloat();
const float y = elem.attribute( QStringLiteral( "y" ) ).toFloat();
const float elev = elem.attribute( QStringLiteral( "elev" ) ).toFloat();
const float dist = elem.attribute( QStringLiteral( "dist" ) ).toFloat();
const float pitch = elem.attribute( QStringLiteral( "pitch" ) ).toFloat();
const float yaw = elem.attribute( QStringLiteral( "yaw" ) ).toFloat();
QgsVector3D centerPoint( x, elev, y );
if ( mScene->mapSettings()->sceneMode() == Qgis::SceneMode::Globe )
centerPoint = centerPoint - mOrigin;
QgsVector3D centerPoint;
if ( elem.hasAttribute( "xMap" ) )
{
// Prefer newer point saved in map coordinates ...
const double x = elem.attribute( QStringLiteral( "xMap" ) ).toDouble();
const double y = elem.attribute( QStringLiteral( "yMap" ) ).toDouble();
const double z = elem.attribute( QStringLiteral( "zMap" ) ).toDouble();
centerPoint = QgsVector3D( x, y, z ) - mOrigin;
}
else
{
// ... but allow use of older origin-relative coordinates.
const double x = elem.attribute( QStringLiteral( "x" ) ).toDouble();
const double y = elem.attribute( QStringLiteral( "y" ) ).toDouble();
const double elev = elem.attribute( QStringLiteral( "elev" ) ).toDouble();
centerPoint = QgsVector3D( x, elev, y ) - savedOrigin + mOrigin;
}
setLookingAtPoint( centerPoint, dist, pitch, yaw );
}
@ -519,8 +522,8 @@ void QgsCameraController::onPositionChangedTerrainNavigation( Qt3DInput::QMouseE
const int dx = mouse->x() - mMousePos.x();
const int dy = mouse->y() - mMousePos.y();
const bool hasShift = ( mouse->modifiers() & Qt::ShiftModifier );
const bool hasCtrl = ( mouse->modifiers() & Qt::ControlModifier );
const bool hasShift = ( mouse->modifiers() & Qt3DInput::QMouseEvent::Modifiers::ShiftModifier );
const bool hasCtrl = ( mouse->modifiers() & Qt3DInput::QMouseEvent::Modifiers::ControlModifier );
const bool hasLeftButton = ( mouse->buttons() & Qt::LeftButton );
const bool hasMiddleButton = ( mouse->buttons() & Qt::MiddleButton );
const bool hasRightButton = ( mouse->buttons() & Qt::RightButton );
@ -673,8 +676,8 @@ void QgsCameraController::onPositionChangedTerrainNavigation( Qt3DInput::QMouseE
void QgsCameraController::onPositionChangedGlobeTerrainNavigation( Qt3DInput::QMouseEvent *mouse )
{
const bool hasShift = ( mouse->modifiers() & Qt::ShiftModifier );
const bool hasCtrl = ( mouse->modifiers() & Qt::ControlModifier );
const bool hasShift = ( mouse->modifiers() & Qt3DInput::QMouseEvent::Modifiers::ShiftModifier );
const bool hasCtrl = ( mouse->modifiers() & Qt3DInput::QMouseEvent::Modifiers::ControlModifier );
const bool hasLeftButton = ( mouse->buttons() & Qt::LeftButton );
const bool hasMiddleButton = ( mouse->buttons() & Qt::MiddleButton );
@ -812,7 +815,7 @@ void QgsCameraController::onWheel( Qt3DInput::QWheelEvent *wheel )
{
case Qgis::NavigationMode::Walk:
{
const float scaling = ( ( wheel->modifiers() & Qt::ControlModifier ) != 0 ? 0.1f : 1.0f ) / 1000.f;
const float scaling = ( ( wheel->modifiers() & Qt3DInput::QWheelEvent::Modifiers::ControlModifier ) != 0 ? 0.1f : 1.0f ) / 1000.f;
setCameraMovementSpeed( mCameraMovementSpeed + mCameraMovementSpeed * scaling * wheel->angleDelta().y() );
break;
}
@ -821,7 +824,7 @@ void QgsCameraController::onWheel( Qt3DInput::QWheelEvent *wheel )
{
// Scale our variable to roughly "number of normal steps", with Ctrl
// increasing granularity 10x
const double scaling = ( 1.0 / 120.0 ) * ( ( wheel->modifiers() & Qt::ControlModifier ) != 0 ? 0.1 : 1.0 );
const double scaling = ( 1.0 / 120.0 ) * ( ( wheel->modifiers() & Qt3DInput::QWheelEvent::Modifiers::ControlModifier ) != 0 ? 0.1 : 1.0 );
// Apparently angleDelta needs to be accumulated
// see: https://doc.qt.io/qt-5/qwheelevent.html#angleDelta
@ -858,7 +861,7 @@ void QgsCameraController::onMousePressed( Qt3DInput::QMouseEvent *mouse )
mKeyboardHandler->setFocus( true );
if ( mouse->button() == Qt3DInput::QMouseEvent::MiddleButton || ( ( mouse->modifiers() & Qt::ShiftModifier ) != 0 && mouse->button() == Qt3DInput::QMouseEvent::LeftButton ) || ( ( mouse->modifiers() & Qt::ControlModifier ) != 0 && mouse->button() == Qt3DInput::QMouseEvent::LeftButton ) )
if ( mouse->button() == Qt3DInput::QMouseEvent::MiddleButton || ( ( mouse->modifiers() & Qt3DInput::QMouseEvent::Modifiers::ShiftModifier ) != 0 && mouse->button() == Qt3DInput::QMouseEvent::LeftButton ) || ( ( mouse->modifiers() & Qt3DInput::QMouseEvent::Modifiers::ControlModifier ) != 0 && mouse->button() == Qt3DInput::QMouseEvent::LeftButton ) )
{
mMousePos = QPoint( mouse->x(), mouse->y() );
@ -866,7 +869,7 @@ void QgsCameraController::onMousePressed( Qt3DInput::QMouseEvent *mouse )
mIgnoreNextMouseMove = true;
const MouseOperation operation {
( mouse->modifiers() & Qt::ControlModifier ) != 0 && mouse->button() == Qt3DInput::QMouseEvent::LeftButton ? MouseOperation::RotationCamera : MouseOperation::RotationCenter
( mouse->modifiers() & Qt3DInput::QMouseEvent::Modifiers::ControlModifier ) != 0 && mouse->button() == Qt3DInput::QMouseEvent::LeftButton ? MouseOperation::RotationCamera : MouseOperation::RotationCenter
};
setMouseParameters( operation, mMousePos );
}

View File

@ -174,7 +174,7 @@ class _3D_EXPORT QgsCameraController : public QObject
//! Writes camera configuration to the given DOM element
QDomElement writeXml( QDomDocument &doc ) const;
//! Reads camera configuration from the given DOM element
void readXml( const QDomElement &elem );
void readXml( const QDomElement &elem, QgsVector3D savedOrigin );
//! Zoom the map by \a factor
void zoom( float factor );

View File

@ -278,7 +278,7 @@ class QgsGlobeChunkLoader : public QgsChunkLoader
, mTextureGenerator( textureGenerator )
, mGlobeCrsToLatLon( globeCrsToLatLon )
{
connect( mTextureGenerator, &QgsTerrainTextureGenerator::tileReady, this, [=]( int job, const QImage &img ) {
connect( mTextureGenerator, &QgsTerrainTextureGenerator::tileReady, this, [this]( int job, const QImage &img ) {
if ( job == mJobId )
{
mTexture = img;
@ -436,7 +436,7 @@ class QgsGlobeMapUpdateJob : public QgsChunkQueueJob
QgsTerrainTextureImage *terrainTexImage = qobject_cast<QgsTerrainTextureImage *>( texImages[0] );
Q_ASSERT( terrainTexImage );
connect( textureGenerator, &QgsTerrainTextureGenerator::tileReady, this, [=]( int jobId, const QImage &image ) {
connect( textureGenerator, &QgsTerrainTextureGenerator::tileReady, this, [this, terrainTexImage]( int jobId, const QImage &image ) {
if ( mJobId == jobId )
{
terrainTexImage->setImage( image );
@ -487,7 +487,7 @@ class QgsGlobeMapUpdateJobFactory : public QgsChunkQueueJobFactory
QgsGlobeEntity::QgsGlobeEntity( Qgs3DMapSettings *mapSettings )
: QgsChunkedEntity( mapSettings, mapSettings->terrainSettings()->maximumScreenError(), new QgsGlobeChunkLoaderFactory( mapSettings ), true )
{
connect( mapSettings, &Qgs3DMapSettings::showTerrainBoundingBoxesChanged, this, [=] {
connect( mapSettings, &Qgs3DMapSettings::showTerrainBoundingBoxesChanged, this, [this, mapSettings] {
setShowBoundingBoxes( mapSettings->showTerrainBoundingBoxes() );
} );
connect( mapSettings, &Qgs3DMapSettings::showTerrainTilesInfoChanged, this, &QgsGlobeEntity::invalidateMapImages );

View File

@ -135,7 +135,7 @@ bool QgsVectorWarperTask::run()
QgsVectorWarper warper( mMethod, mPoints, mDestinationCrs );
connect( mFeedback.get(), &QgsFeedback::processedCountChanged, this, [=]( long long count ) {
connect( mFeedback.get(), &QgsFeedback::processedCountChanged, this, [this]( long long count ) {
const double newProgress = 100.0 * count / mFeatureCount;
// avoid flooding with too many events
if ( static_cast<int>( newProgress * 10 ) != static_cast<int>( mLastProgress * 10 ) )

View File

@ -73,10 +73,10 @@ QVariantMap QgsPdalInformationAlgorithm::processAlgorithm( const QVariantMap &pa
QStringList commandOutput;
QgsBlockingProcess wrenchProcess( wrenchPath, processArgs );
wrenchProcess.setStdErrHandler( [=]( const QByteArray &ba ) {
wrenchProcess.setStdErrHandler( [feedback]( const QByteArray &ba ) {
feedback->reportError( ba.trimmed() );
} );
wrenchProcess.setStdOutHandler( [=, &commandOutput]( const QByteArray &ba ) {
wrenchProcess.setStdOutHandler( [feedback, &commandOutput]( const QByteArray &ba ) {
feedback->pushConsoleInfo( ba.trimmed() );
commandOutput << ba;
} );

View File

@ -189,10 +189,10 @@ QVariantMap QgsPdalAlgorithmBase::processAlgorithm( const QVariantMap &parameter
QString buffer;
QgsBlockingProcess wrenchProcess( wrenchPath, processArgs );
wrenchProcess.setStdErrHandler( [=]( const QByteArray &ba ) {
wrenchProcess.setStdErrHandler( [feedback]( const QByteArray &ba ) {
feedback->reportError( ba.trimmed() );
} );
wrenchProcess.setStdOutHandler( [=, &progress, &buffer]( const QByteArray &ba ) {
wrenchProcess.setStdOutHandler( [feedback, &progress, &buffer]( const QByteArray &ba ) {
QString data( ba );
QRegularExpression re( "\\.*(\\d+)?\\.*$" );

View File

@ -137,7 +137,7 @@ QgsFeatureList QgsDrapeAlgorithmBase::processFeature( const QgsFeature &feature,
// a pointless iteration over all vertices
if ( !mRasterExtent.isNull() && geometry.boundingBoxIntersects( mRasterExtent ) )
{
geometry.transformVertices( [=]( const QgsPoint &p ) -> QgsPoint {
geometry.transformVertices( [this, nodata, scale, offset, feedback, &f]( const QgsPoint &p ) -> QgsPoint {
QgsPointXY t;
double val = nodata;
try

View File

@ -111,10 +111,10 @@ QVariantMap QgsConvertGpxFeatureTypeAlgorithm::processAlgorithm( const QVariantM
feedback->pushCommandInfo( QObject::tr( "Conversion command: " ) + babelPath + ' ' + logArgs.join( ' ' ) );
QgsBlockingProcess babelProcess( babelPath, processArgs );
babelProcess.setStdErrHandler( [=]( const QByteArray &ba ) {
babelProcess.setStdErrHandler( [feedback]( const QByteArray &ba ) {
feedback->reportError( ba );
} );
babelProcess.setStdOutHandler( [=]( const QByteArray &ba ) {
babelProcess.setStdOutHandler( [feedback]( const QByteArray &ba ) {
feedback->pushDebugInfo( ba );
} );
@ -355,10 +355,10 @@ QVariantMap QgsConvertGpsDataAlgorithm::processAlgorithm( const QVariantMap &par
feedback->pushCommandInfo( QObject::tr( "Conversion command: " ) + logCommand.join( ' ' ) );
QgsBlockingProcess babelProcess( processCommand.value( 0 ), processCommand.mid( 1 ) );
babelProcess.setStdErrHandler( [=]( const QByteArray &ba ) {
babelProcess.setStdErrHandler( [feedback]( const QByteArray &ba ) {
feedback->reportError( ba );
} );
babelProcess.setStdOutHandler( [=]( const QByteArray &ba ) {
babelProcess.setStdOutHandler( [feedback]( const QByteArray &ba ) {
feedback->pushDebugInfo( ba );
} );
@ -576,10 +576,10 @@ QVariantMap QgsDownloadGpsDataAlgorithm::processAlgorithm( const QVariantMap &pa
feedback->pushCommandInfo( QObject::tr( "Download command: " ) + logCommand.join( ' ' ) );
QgsBlockingProcess babelProcess( processCommand.value( 0 ), processCommand.mid( 1 ) );
babelProcess.setStdErrHandler( [=]( const QByteArray &ba ) {
babelProcess.setStdErrHandler( [feedback]( const QByteArray &ba ) {
feedback->reportError( ba );
} );
babelProcess.setStdOutHandler( [=]( const QByteArray &ba ) {
babelProcess.setStdOutHandler( [feedback]( const QByteArray &ba ) {
feedback->pushDebugInfo( ba );
} );
@ -796,10 +796,10 @@ QVariantMap QgsUploadGpsDataAlgorithm::processAlgorithm( const QVariantMap &para
feedback->pushCommandInfo( QObject::tr( "Upload command: " ) + logCommand.join( ' ' ) );
QgsBlockingProcess babelProcess( processCommand.value( 0 ), processCommand.mid( 1 ) );
babelProcess.setStdErrHandler( [=]( const QByteArray &ba ) {
babelProcess.setStdErrHandler( [feedback]( const QByteArray &ba ) {
feedback->reportError( ba );
} );
babelProcess.setStdOutHandler( [=]( const QByteArray &ba ) {
babelProcess.setStdOutHandler( [feedback]( const QByteArray &ba ) {
feedback->pushDebugInfo( ba );
} );

View File

@ -61,6 +61,9 @@ void QgsPackageAlgorithm::initAlgorithm( const QVariantMap & )
addParameter( new QgsProcessingParameterBoolean( QStringLiteral( "SAVE_METADATA" ), QObject::tr( "Save layer metadata into GeoPackage" ), true ) );
addParameter( new QgsProcessingParameterBoolean( QStringLiteral( "SELECTED_FEATURES_ONLY" ), QObject::tr( "Save only selected features" ), false ) );
addParameter( new QgsProcessingParameterBoolean( QStringLiteral( "EXPORT_RELATED_LAYERS" ), QObject::tr( "Export related layers following relations defined in the project" ), false ) );
auto extentParam = std::make_unique<QgsProcessingParameterExtent>( QStringLiteral( "EXTENT" ), QObject::tr( "Extent" ), QVariant(), true );
extentParam->setHelp( QObject::tr( "Limit exported features to those with geometries intersecting the provided extent" ) );
addParameter( extentParam.release() );
addOutput( new QgsProcessingOutputMultipleLayers( QStringLiteral( "OUTPUT_LAYERS" ), QObject::tr( "Layers within new package" ) ) );
}
@ -139,7 +142,7 @@ QVariantMap QgsPackageAlgorithm::processAlgorithm( const QVariantMap &parameters
int recursionGuard { 0 };
// This function recursively finds referenced layers
const auto findReferenced = [=, &project, &feedback, &recursionGuard, &layers]( const QgsVectorLayer *vLayer, bool onlySaveSelected, auto &&findReferenced ) -> void {
const auto findReferenced = [this, &project, &feedback, &recursionGuard, &layers]( const QgsVectorLayer *vLayer, bool onlySaveSelected, auto &&findReferenced ) -> void {
const QgsVectorLayer *originalLayer { qobject_cast<QgsVectorLayer *>( project->mapLayer( mClonedLayerIds.value( vLayer->id(), vLayer->id() ) ) ) };
Q_ASSERT( originalLayer );
const QList<QgsRelation> relations { project->relationManager()->referencingRelations( originalLayer ) };
@ -205,7 +208,7 @@ QVariantMap QgsPackageAlgorithm::processAlgorithm( const QVariantMap &parameters
};
// This function recursively finds referencing layers
const auto findReferencing = [=, &project, &feedback, &recursionGuard, &layers]( const QgsVectorLayer *vLayer, bool onlySaveSelected, auto &&findReferencing ) -> void {
const auto findReferencing = [this, &project, &feedback, &recursionGuard, &layers]( const QgsVectorLayer *vLayer, bool onlySaveSelected, auto &&findReferencing ) -> void {
const QgsVectorLayer *originalLayer { qobject_cast<QgsVectorLayer *>( project->mapLayer( mClonedLayerIds.value( vLayer->id(), vLayer->id() ) ) ) };
Q_ASSERT( originalLayer );
const QList<QgsRelation> relations { project->relationManager()->referencedRelations( originalLayer ) };
@ -309,6 +312,7 @@ QVariantMap QgsPackageAlgorithm::processAlgorithm( const QVariantMap &parameters
throw QgsProcessingException( QObject::tr( "Opening database %1 failed (OGR error: %2)" ).arg( packagePath, QString::fromUtf8( CPLGetLastErrorMsg() ) ) );
}
const bool validExtent = parameters.value( QStringLiteral( "EXTENT" ) ).isValid();
bool errored = false;
@ -335,12 +339,25 @@ QVariantMap QgsPackageAlgorithm::processAlgorithm( const QVariantMap &parameters
feedback->pushInfo( QObject::tr( "Packaging layer %1/%2: %3" ).arg( i ).arg( mLayers.size() ).arg( layer ? layer->name() : QString() ) );
QgsRectangle extent;
switch ( layer->type() )
{
case Qgis::LayerType::Vector:
{
QgsVectorLayer *vectorLayer = qobject_cast<QgsVectorLayer *>( layer.get() );
if ( !packageVectorLayer( vectorLayer, packagePath, context, &multiStepFeedback, saveStyles, saveMetadata, selectedFeaturesOnly ) )
if ( validExtent )
{
if ( vectorLayer->hasSpatialIndex() == Qgis::SpatialIndexPresence::NotPresent )
{
feedback->pushWarning( QObject::tr( "No spatial index exists for layer %1, performance will be severely degraded" ).arg( vectorLayer->name() ) );
}
extent = parameterAsExtent( parameters, QStringLiteral( "EXTENT" ), context, layer->crs() );
}
if ( !packageVectorLayer( vectorLayer, packagePath, context, &multiStepFeedback, saveStyles, saveMetadata, selectedFeaturesOnly, extent ) )
errored = true;
else
outputLayers.append( QStringLiteral( "%1|layername=%2" ).arg( packagePath, layer->name() ) );
@ -408,7 +425,7 @@ QVariantMap QgsPackageAlgorithm::processAlgorithm( const QVariantMap &parameters
return outputs;
}
bool QgsPackageAlgorithm::packageVectorLayer( QgsVectorLayer *layer, const QString &path, QgsProcessingContext &context, QgsProcessingFeedback *feedback, bool saveStyles, bool saveMetadata, bool selectedFeaturesOnly )
bool QgsPackageAlgorithm::packageVectorLayer( QgsVectorLayer *layer, const QString &path, QgsProcessingContext &context, QgsProcessingFeedback *feedback, bool saveStyles, bool saveMetadata, bool selectedFeaturesOnly, const QgsRectangle &extent )
{
QgsVectorFileWriter::SaveVectorOptions options;
options.driverName = QStringLiteral( "GPKG" );
@ -450,6 +467,11 @@ bool QgsPackageAlgorithm::packageVectorLayer( QgsVectorLayer *layer, const QStri
options.skipAttributeCreation = true;
}
if ( !extent.isNull() )
{
options.filterExtent = extent;
}
QString error;
QString newFilename;
QString newLayer;

View File

@ -49,7 +49,7 @@ class QgsPackageAlgorithm : public QgsProcessingAlgorithm
QVariantMap processAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback ) override;
private:
bool packageVectorLayer( QgsVectorLayer *layer, const QString &path, QgsProcessingContext &context, QgsProcessingFeedback *feedback, bool saveStyles, bool saveMetadata, bool selectedFeaturesOnly );
bool packageVectorLayer( QgsVectorLayer *layer, const QString &path, QgsProcessingContext &context, QgsProcessingFeedback *feedback, bool saveStyles, bool saveMetadata, bool selectedFeaturesOnly, const QgsRectangle &extent );
std::vector<std::unique_ptr<QgsMapLayer>> mLayers;
QMap<QString, QString> mClonedLayerIds;

View File

@ -179,7 +179,7 @@ QVariantMap QgsRasterBooleanLogicAlgorithmBase::processAlgorithm( const QVariant
QgsRasterLogicalOrAlgorithm::QgsRasterLogicalOrAlgorithm()
{
mExtractValFunc = [=]( const std::vector<std::unique_ptr<QgsRasterBlock>> &inputs, bool &res, bool &resIsNoData, int row, int column, bool treatNoDataAsFalse ) {
mExtractValFunc = []( const std::vector<std::unique_ptr<QgsRasterBlock>> &inputs, bool &res, bool &resIsNoData, int row, int column, bool treatNoDataAsFalse ) {
res = false;
resIsNoData = false;
bool isNoData = false;
@ -252,7 +252,7 @@ QgsRasterLogicalOrAlgorithm *QgsRasterLogicalOrAlgorithm::createInstance() const
QgsRasterLogicalAndAlgorithm::QgsRasterLogicalAndAlgorithm()
{
mExtractValFunc = [=]( const std::vector<std::unique_ptr<QgsRasterBlock>> &inputs, bool &res, bool &resIsNoData, int row, int column, bool treatNoDataAsFalse ) {
mExtractValFunc = []( const std::vector<std::unique_ptr<QgsRasterBlock>> &inputs, bool &res, bool &resIsNoData, int row, int column, bool treatNoDataAsFalse ) {
res = true;
resIsNoData = false;
bool isNoData = false;

View File

@ -40,7 +40,7 @@ Qgs3DAnimationExportDialog::Qgs3DAnimationExportDialog()
QValidator *validator = new QRegularExpressionValidator( rx, this );
mTemplateLineEdit->setValidator( validator );
connect( mTemplateLineEdit, &QLineEdit::textChanged, this, [=] {
connect( mTemplateLineEdit, &QLineEdit::textChanged, this, [this] {
QgsSettings settings;
settings.setValue( QStringLiteral( "Export3DAnimation/fileNameTemplate" ), mTemplateLineEdit->text() );
} );
@ -51,30 +51,30 @@ Qgs3DAnimationExportDialog::Qgs3DAnimationExportDialog()
mOutputDirFileWidget->setDefaultRoot( settings.value( QStringLiteral( "Export3DAnimation/lastDir" ), QString(), QgsSettings::App ).toString() );
mOutputDirFileWidget->setFilePath( settings.value( QStringLiteral( "Export3DAnimation/lastDir" ), QString(), QgsSettings::App ).toString() );
connect( mOutputDirFileWidget, &QgsFileWidget::fileChanged, this, [=] {
connect( mOutputDirFileWidget, &QgsFileWidget::fileChanged, this, [this] {
QgsSettings settings;
settings.setValue( QStringLiteral( "Export3DAnimation/lastDir" ), mOutputDirFileWidget->filePath(), QgsSettings::App );
} );
mFpsSpinBox->setValue( settings.value( QStringLiteral( "Export3DAnimation/fps" ), 30 ).toInt() );
connect( mFpsSpinBox, static_cast<void ( QSpinBox::* )( int )>( &QgsSpinBox::valueChanged ), this, [=] {
connect( mFpsSpinBox, static_cast<void ( QSpinBox::* )( int )>( &QgsSpinBox::valueChanged ), this, [this] {
QgsSettings settings;
settings.setValue( QStringLiteral( "Export3DAnimation/fps" ), mFpsSpinBox->value() );
} );
mWidthSpinBox->setValue( settings.value( QStringLiteral( "Export3DAnimation/width" ), 800 ).toInt() );
connect( mWidthSpinBox, static_cast<void ( QSpinBox::* )( int )>( &QgsSpinBox::valueChanged ), this, [=] {
connect( mWidthSpinBox, static_cast<void ( QSpinBox::* )( int )>( &QgsSpinBox::valueChanged ), this, [this] {
QgsSettings settings;
settings.setValue( QStringLiteral( "Export3DAnimation/width" ), mWidthSpinBox->value() );
} );
mHeightSpinBox->setValue( settings.value( QStringLiteral( "Export3DAnimation/height" ), 600 ).toInt() );
connect( mHeightSpinBox, static_cast<void ( QSpinBox::* )( int )>( &QgsSpinBox::valueChanged ), this, [=] {
connect( mHeightSpinBox, static_cast<void ( QSpinBox::* )( int )>( &QgsSpinBox::valueChanged ), this, [this] {
QgsSettings settings;
settings.setValue( QStringLiteral( "Export3DAnimation/height" ), mHeightSpinBox->value() );
} );
connect( mButtonBox, &QDialogButtonBox::helpRequested, this, [=] {
connect( mButtonBox, &QDialogButtonBox::helpRequested, this, [] {
QgsHelp::openHelp( QStringLiteral( "map_views/3d_map_view.html#create-animation" ) );
} );

View File

@ -75,29 +75,29 @@ void Qgs3DDebugWidget::setMapSettings( Qgs3DMapSettings *mapSettings )
whileBlocking( chkStopUpdates )->setChecked( mMap->stopUpdates() );
whileBlocking( chkStopOriginShifts )->setChecked( !m3DMapCanvas->scene()->hasSceneOriginShiftEnabled() );
whileBlocking( chkDebugOverlay )->setChecked( mMap->isDebugOverlayEnabled() );
connect( chkShowTileInfo, &QCheckBox::toggled, this, [=]( const bool enabled ) { mMap->setShowTerrainTilesInfo( enabled ); } );
connect( chkShowBoundingBoxes, &QCheckBox::toggled, this, [=]( const bool enabled ) { mMap->setShowTerrainBoundingBoxes( enabled ); } );
connect( chkShowCameraViewCenter, &QCheckBox::toggled, this, [=]( const bool enabled ) { mMap->setShowCameraViewCenter( enabled ); } );
connect( chkShowCameraRotationCenter, &QCheckBox::toggled, this, [=]( const bool enabled ) { mMap->setShowCameraRotationCenter( enabled ); } );
connect( chkShowLightSourceOrigins, &QCheckBox::toggled, this, [=]( const bool enabled ) { mMap->setShowLightSourceOrigins( enabled ); } );
connect( chkStopUpdates, &QCheckBox::toggled, this, [=]( const bool enabled ) { mMap->setStopUpdates( enabled ); } );
connect( chkStopOriginShifts, &QCheckBox::toggled, this, [=]( const bool enabled ) {
connect( chkShowTileInfo, &QCheckBox::toggled, this, [this]( const bool enabled ) { mMap->setShowTerrainTilesInfo( enabled ); } );
connect( chkShowBoundingBoxes, &QCheckBox::toggled, this, [this]( const bool enabled ) { mMap->setShowTerrainBoundingBoxes( enabled ); } );
connect( chkShowCameraViewCenter, &QCheckBox::toggled, this, [this]( const bool enabled ) { mMap->setShowCameraViewCenter( enabled ); } );
connect( chkShowCameraRotationCenter, &QCheckBox::toggled, this, [this]( const bool enabled ) { mMap->setShowCameraRotationCenter( enabled ); } );
connect( chkShowLightSourceOrigins, &QCheckBox::toggled, this, [this]( const bool enabled ) { mMap->setShowLightSourceOrigins( enabled ); } );
connect( chkStopUpdates, &QCheckBox::toggled, this, [this]( const bool enabled ) { mMap->setStopUpdates( enabled ); } );
connect( chkStopOriginShifts, &QCheckBox::toggled, this, [this]( const bool enabled ) {
m3DMapCanvas->scene()->setSceneOriginShiftEnabled( !enabled );
} );
connect( chkDebugOverlay, &QCheckBox::toggled, this, [=]( const bool enabled ) { mMap->setIsDebugOverlayEnabled( enabled ); } );
connect( chkDebugOverlay, &QCheckBox::toggled, this, [this]( const bool enabled ) { mMap->setIsDebugOverlayEnabled( enabled ); } );
// set up the shadow map block
whileBlocking( mDebugShadowMapGroupBox )->setChecked( mMap->debugShadowMapEnabled() );
whileBlocking( mDebugShadowMapCornerComboBox )->setCurrentIndex( mMap->debugShadowMapCorner() );
whileBlocking( mDebugShadowMapSizeSpinBox )->setValue( mMap->debugShadowMapSize() );
// Do not display the shadow debug map if the shadow effect is not enabled.
connect( mDebugShadowMapGroupBox, &QGroupBox::toggled, this, [=]( const bool enabled ) {
connect( mDebugShadowMapGroupBox, &QGroupBox::toggled, this, [this]( const bool enabled ) {
mMap->setDebugShadowMapSettings( enabled && mMap->shadowSettings().renderShadows(), static_cast<Qt::Corner>( mDebugShadowMapCornerComboBox->currentIndex() ), mDebugShadowMapSizeSpinBox->value() );
} );
connect( mDebugShadowMapCornerComboBox, qOverload<int>( &QComboBox::currentIndexChanged ), this, [=]( const int index ) {
connect( mDebugShadowMapCornerComboBox, qOverload<int>( &QComboBox::currentIndexChanged ), this, [this]( const int index ) {
mMap->setDebugShadowMapSettings( mDebugShadowMapGroupBox->isChecked() && mMap->shadowSettings().renderShadows(), static_cast<Qt::Corner>( index ), mDebugShadowMapSizeSpinBox->value() );
} );
connect( mDebugShadowMapSizeSpinBox, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [=]( const double value ) {
connect( mDebugShadowMapSizeSpinBox, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [this]( const double value ) {
mMap->setDebugShadowMapSettings( mDebugShadowMapGroupBox->isChecked() && mMap->shadowSettings().renderShadows(), static_cast<Qt::Corner>( mDebugShadowMapCornerComboBox->currentIndex() ), value );
} );
@ -105,39 +105,39 @@ void Qgs3DDebugWidget::setMapSettings( Qgs3DMapSettings *mapSettings )
whileBlocking( mDebugDepthMapGroupBox )->setChecked( mMap->debugDepthMapEnabled() );
whileBlocking( mDebugDepthMapCornerComboBox )->setCurrentIndex( mMap->debugDepthMapCorner() );
whileBlocking( mDebugDepthMapSizeSpinBox )->setValue( mMap->debugDepthMapSize() );
connect( mDebugDepthMapGroupBox, &QGroupBox::toggled, this, [=]( const bool enabled ) {
connect( mDebugDepthMapGroupBox, &QGroupBox::toggled, this, [this]( const bool enabled ) {
mMap->setDebugDepthMapSettings( enabled, static_cast<Qt::Corner>( mDebugDepthMapCornerComboBox->currentIndex() ), mDebugDepthMapSizeSpinBox->value() );
} );
connect( mDebugDepthMapCornerComboBox, qOverload<int>( &QComboBox::currentIndexChanged ), this, [=]( const int index ) {
connect( mDebugDepthMapCornerComboBox, qOverload<int>( &QComboBox::currentIndexChanged ), this, [this]( const int index ) {
mMap->setDebugDepthMapSettings( mDebugDepthMapGroupBox->isChecked(), static_cast<Qt::Corner>( index ), mDebugDepthMapSizeSpinBox->value() );
} );
connect( mDebugDepthMapSizeSpinBox, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [=]( const double value ) {
connect( mDebugDepthMapSizeSpinBox, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [this]( const double value ) {
mMap->setDebugDepthMapSettings( mDebugDepthMapGroupBox->isChecked(), static_cast<Qt::Corner>( mDebugDepthMapCornerComboBox->currentIndex() ), value );
} );
// connect the camera info spin boxes with changing functions
connect( mNearPlane, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [=]( const double value ) {
connect( mNearPlane, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [this]( const double value ) {
m3DMapCanvas->cameraController()->camera()->setNearPlane( static_cast<float>( value ) );
} );
connect( mFarPlane, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [=]( const double value ) {
connect( mFarPlane, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [this]( const double value ) {
m3DMapCanvas->cameraController()->camera()->setFarPlane( static_cast<float>( value ) );
} );
connect( mCameraX, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [=]( const double value ) {
connect( mCameraX, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [this]( const double value ) {
QVector3D newPosition = m3DMapCanvas->cameraController()->camera()->position();
newPosition.setX( static_cast<float>( value ) );
m3DMapCanvas->cameraController()->camera()->setPosition( newPosition );
} );
connect( mCameraY, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [=]( const double value ) {
connect( mCameraY, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [this]( const double value ) {
QVector3D newPosition = m3DMapCanvas->cameraController()->camera()->position();
newPosition.setY( static_cast<float>( value ) );
m3DMapCanvas->cameraController()->camera()->setPosition( newPosition );
} );
connect( mCameraZ, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [=]( const double value ) {
connect( mCameraZ, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [this]( const double value ) {
QVector3D newPosition = m3DMapCanvas->cameraController()->camera()->position();
newPosition.setZ( static_cast<float>( value ) );
m3DMapCanvas->cameraController()->camera()->setPosition( newPosition );
} );
connect( mLookingX, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [=]( const double value ) {
connect( mLookingX, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [this]( const double value ) {
QgsVector3D newLookingAt = m3DMapCanvas->cameraController()->lookingAtPoint();
newLookingAt.setX( value );
m3DMapCanvas->cameraController()->setLookingAtPoint(
@ -147,7 +147,7 @@ void Qgs3DDebugWidget::setMapSettings( Qgs3DMapSettings *mapSettings )
m3DMapCanvas->cameraController()->yaw()
);
} );
connect( mLookingY, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [=]( const double value ) {
connect( mLookingY, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [this]( const double value ) {
QgsVector3D newLookingAt = m3DMapCanvas->cameraController()->lookingAtPoint();
newLookingAt.setY( value );
m3DMapCanvas->cameraController()->setLookingAtPoint(
@ -157,7 +157,7 @@ void Qgs3DDebugWidget::setMapSettings( Qgs3DMapSettings *mapSettings )
m3DMapCanvas->cameraController()->yaw()
);
} );
connect( mLookingZ, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [=]( const double value ) {
connect( mLookingZ, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [this]( const double value ) {
QgsVector3D newLookingAt = m3DMapCanvas->cameraController()->lookingAtPoint();
newLookingAt.setZ( value );
m3DMapCanvas->cameraController()->setLookingAtPoint(

View File

@ -230,7 +230,7 @@ Qgs3DMapCanvasWidget::Qgs3DMapCanvasWidget( const QString &name, bool isDocked )
mActionSync2DNavTo3D = new QAction( tr( "2D Map View Follows 3D Camera" ), this );
mActionSync2DNavTo3D->setCheckable( true );
connect( mActionSync2DNavTo3D, &QAction::triggered, this, [=]( bool enabled ) {
connect( mActionSync2DNavTo3D, &QAction::triggered, this, [this]( bool enabled ) {
Qgis::ViewSyncModeFlags syncMode = mCanvas->mapSettings()->viewSyncMode();
syncMode.setFlag( Qgis::ViewSyncModeFlag::Sync2DTo3D, enabled );
mCanvas->mapSettings()->setViewSyncMode( syncMode );
@ -239,7 +239,7 @@ Qgs3DMapCanvasWidget::Qgs3DMapCanvasWidget( const QString &name, bool isDocked )
mActionSync3DNavTo2D = new QAction( tr( "3D Camera Follows 2D Map View" ), this );
mActionSync3DNavTo2D->setCheckable( true );
connect( mActionSync3DNavTo2D, &QAction::triggered, this, [=]( bool enabled ) {
connect( mActionSync3DNavTo2D, &QAction::triggered, this, [this]( bool enabled ) {
Qgis::ViewSyncModeFlags syncMode = mCanvas->mapSettings()->viewSyncMode();
syncMode.setFlag( Qgis::ViewSyncModeFlag::Sync3DTo2D, enabled );
mCanvas->mapSettings()->setViewSyncMode( syncMode );
@ -248,14 +248,14 @@ Qgs3DMapCanvasWidget::Qgs3DMapCanvasWidget( const QString &name, bool isDocked )
mShowFrustumPolygon = new QAction( tr( "Show Visible Camera Area in 2D Map View" ), this );
mShowFrustumPolygon->setCheckable( true );
connect( mShowFrustumPolygon, &QAction::triggered, this, [=]( bool enabled ) {
connect( mShowFrustumPolygon, &QAction::triggered, this, [this]( bool enabled ) {
mCanvas->mapSettings()->setViewFrustumVisualizationEnabled( enabled );
} );
mCameraMenu->addAction( mShowFrustumPolygon );
mActionSetSceneExtent = mCameraMenu->addAction( QgsApplication::getThemeIcon( QStringLiteral( "extents.svg" ) ), tr( "Set 3D Scene Extent on 2D Map View" ), this, &Qgs3DMapCanvasWidget::setSceneExtentOn2DCanvas );
mActionSetSceneExtent->setCheckable( true );
auto createShortcuts = [=]( const QString &objectName, void ( Qgs3DMapCanvasWidget::*slot )() ) {
auto createShortcuts = [this]( const QString &objectName, void ( Qgs3DMapCanvasWidget::*slot )() ) {
if ( QShortcut *sc = QgsGui::shortcutsManager()->shortcutByName( objectName ) )
connect( sc, &QShortcut::activated, this, slot );
};
@ -277,7 +277,7 @@ Qgs3DMapCanvasWidget::Qgs3DMapCanvasWidget( const QString &name, bool isDocked )
mActionEnableShadows = new QAction( tr( "Show Shadows" ), this );
mActionEnableShadows->setCheckable( true );
connect( mActionEnableShadows, &QAction::toggled, this, [=]( bool enabled ) {
connect( mActionEnableShadows, &QAction::toggled, this, [this]( bool enabled ) {
QgsShadowSettings settings = mCanvas->mapSettings()->shadowSettings();
settings.setRenderShadows( enabled );
mCanvas->mapSettings()->setShadowSettings( settings );
@ -286,14 +286,14 @@ Qgs3DMapCanvasWidget::Qgs3DMapCanvasWidget( const QString &name, bool isDocked )
mActionEnableEyeDome = new QAction( tr( "Show Eye Dome Lighting" ), this );
mActionEnableEyeDome->setCheckable( true );
connect( mActionEnableEyeDome, &QAction::triggered, this, [=]( bool enabled ) {
connect( mActionEnableEyeDome, &QAction::triggered, this, [this]( bool enabled ) {
mCanvas->mapSettings()->setEyeDomeLightingEnabled( enabled );
} );
mEffectsMenu->addAction( mActionEnableEyeDome );
mActionEnableAmbientOcclusion = new QAction( tr( "Show Ambient Occlusion" ), this );
mActionEnableAmbientOcclusion->setCheckable( true );
connect( mActionEnableAmbientOcclusion, &QAction::triggered, this, [=]( bool enabled ) {
connect( mActionEnableAmbientOcclusion, &QAction::triggered, this, [this]( bool enabled ) {
QgsAmbientOcclusionSettings ambientOcclusionSettings = mCanvas->mapSettings()->ambientOcclusionSettings();
ambientOcclusionSettings.setEnabled( enabled );
mCanvas->mapSettings()->setAmbientOcclusionSettings( ambientOcclusionSettings );
@ -308,7 +308,7 @@ Qgs3DMapCanvasWidget::Qgs3DMapCanvasWidget( const QString &name, bool isDocked )
mCanvas = new Qgs3DMapCanvas;
mCanvas->setMinimumSize( QSize( 200, 200 ) );
connect( mCanvas, &Qgs3DMapCanvas::savedAsImage, this, [=]( const QString &fileName ) {
connect( mCanvas, &Qgs3DMapCanvas::savedAsImage, this, []( const QString &fileName ) {
QgisApp::instance()->messageBar()->pushSuccess( tr( "Save as Image" ), tr( "Successfully saved the 3D map to <a href=\"%1\">%2</a>" ).arg( QUrl::fromLocalFile( fileName ).toString(), QDir::toNativeSeparators( fileName ) ) );
} );
@ -353,7 +353,7 @@ Qgs3DMapCanvasWidget::Qgs3DMapCanvasWidget( const QString &name, bool isDocked )
mLabelNavSpeedHideTimeout = new QTimer( this );
mLabelNavSpeedHideTimeout->setInterval( 1000 );
connect( mLabelNavSpeedHideTimeout, &QTimer::timeout, this, [=] {
connect( mLabelNavSpeedHideTimeout, &QTimer::timeout, this, [this] {
mLabelNavigationSpeed->hide();
mLabelNavSpeedHideTimeout->stop();
} );
@ -404,10 +404,10 @@ Qgs3DMapCanvasWidget::Qgs3DMapCanvasWidget( const QString &name, bool isDocked )
}
QAction *dockAction = mDockableWidgetHelper->createDockUndockAction( tr( "Dock 3D Map View" ), this );
toolBar->addAction( dockAction );
connect( mDockableWidgetHelper, &QgsDockableWidgetHelper::closed, this, [=]() {
connect( mDockableWidgetHelper, &QgsDockableWidgetHelper::closed, this, [this]() {
QgisApp::instance()->close3DMapView( canvasName() );
} );
connect( dockAction, &QAction::toggled, this, [=]( const bool isSmallSize ) {
connect( dockAction, &QAction::toggled, this, [toolBar]( const bool isSmallSize ) {
toolBar->setIconSize( QgisApp::instance()->iconSize( isSmallSize ) );
} );
@ -769,7 +769,7 @@ void Qgs3DMapCanvasWidget::configure()
Qgs3DMapConfigWidget *w = new Qgs3DMapConfigWidget( map, mMainCanvas, mCanvas, mConfigureDialog );
QDialogButtonBox *buttons = new QDialogButtonBox( QDialogButtonBox::Apply | QDialogButtonBox::Ok | QDialogButtonBox::Cancel | QDialogButtonBox::Help, mConfigureDialog );
auto applyConfig = [=]() {
auto applyConfig = [this, map, w]() {
const QgsVector3D oldOrigin = map->origin();
const QgsCoordinateReferenceSystem oldCrs = map->crs();
const QgsCameraPose oldCameraPose = mCanvas->cameraController()->cameraPose();
@ -797,7 +797,7 @@ void Qgs3DMapCanvasWidget::configure()
};
connect( buttons, &QDialogButtonBox::rejected, mConfigureDialog, &QDialog::reject );
connect( buttons, &QDialogButtonBox::clicked, mConfigureDialog, [=]( QAbstractButton *button ) {
connect( buttons, &QDialogButtonBox::clicked, mConfigureDialog, [this, buttons, applyConfig]( QAbstractButton *button ) {
if ( button == buttons->button( QDialogButtonBox::Apply ) || button == buttons->button( QDialogButtonBox::Ok ) )
applyConfig();
if ( button == buttons->button( QDialogButtonBox::Ok ) )
@ -805,7 +805,7 @@ void Qgs3DMapCanvasWidget::configure()
} );
connect( buttons, &QDialogButtonBox::helpRequested, w, []() { QgsHelp::openHelp( QStringLiteral( "map_views/3d_map_view.html#scene-configuration" ) ); } );
connect( w, &Qgs3DMapConfigWidget::isValidChanged, this, [=]( bool valid ) {
connect( w, &Qgs3DMapConfigWidget::isValidChanged, this, [buttons]( bool valid ) {
buttons->button( QDialogButtonBox::Apply )->setEnabled( valid );
buttons->button( QDialogButtonBox::Ok )->setEnabled( valid );
} );
@ -838,7 +838,7 @@ void Qgs3DMapCanvasWidget::exportScene()
connect( buttons, &QDialogButtonBox::accepted, &dlg, &QDialog::accept );
connect( buttons, &QDialogButtonBox::rejected, &dlg, &QDialog::reject );
connect( buttons, &QDialogButtonBox::helpRequested, &dlg, [=] { QgsHelp::openHelp( QStringLiteral( "map_views/3d_map_view.html" ) ); } );
connect( buttons, &QDialogButtonBox::helpRequested, &dlg, [] { QgsHelp::openHelp( QStringLiteral( "map_views/3d_map_view.html" ) ); } );
QVBoxLayout *layout = new QVBoxLayout( &dlg );
layout->addWidget( &exportWidget, 1 );
@ -902,7 +902,7 @@ void Qgs3DMapCanvasWidget::mapThemeMenuAboutToShow()
{
actionFollowMain->setChecked( true );
}
connect( actionFollowMain, &QAction::triggered, this, [=] {
connect( actionFollowMain, &QAction::triggered, this, [this] {
mCanvas->mapSettings()->setTerrainMapTheme( QString() );
} );
mMapThemeMenuPresetActions.append( actionFollowMain );

View File

@ -59,7 +59,7 @@ Qgs3DMapConfigWidget::Qgs3DMapConfigWidget( Qgs3DMapSettings *map, QgsMapCanvas
// get rid of annoying outer focus rect on Mac
m3DOptionsListWidget->setAttribute( Qt::WA_MacShowFocusRect, false );
m3DOptionsListWidget->setCurrentRow( settings.value( QStringLiteral( "Windows/3DMapConfig/Tab" ), 0 ).toInt() );
connect( m3DOptionsListWidget, &QListWidget::currentRowChanged, this, [=]( int index ) { m3DOptionsStackedWidget->setCurrentIndex( index ); } );
connect( m3DOptionsListWidget, &QListWidget::currentRowChanged, this, [this]( int index ) { m3DOptionsStackedWidget->setCurrentIndex( index ); } );
m3DOptionsStackedWidget->setCurrentIndex( m3DOptionsListWidget->currentRow() );
if ( !settings.contains( QStringLiteral( "Windows/3DMapConfig/OptionsSplitState" ) ) )
@ -76,7 +76,7 @@ Qgs3DMapConfigWidget::Qgs3DMapConfigWidget( Qgs3DMapSettings *map, QgsMapCanvas
cboCameraProjectionType->addItem( tr( "Perspective Projection" ), Qt3DRender::QCameraLens::PerspectiveProjection );
cboCameraProjectionType->addItem( tr( "Orthogonal Projection" ), Qt3DRender::QCameraLens::OrthographicProjection );
connect( cboCameraProjectionType, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, [=]() {
connect( cboCameraProjectionType, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, [this]() {
spinCameraFieldOfView->setEnabled( cboCameraProjectionType->currentIndex() == cboCameraProjectionType->findData( Qt3DRender::QCameraLens::PerspectiveProjection ) );
} );

View File

@ -47,7 +47,7 @@ Qgs3DNavigationWidget::Qgs3DNavigationWidget( Qgs3DMapCanvas *canvas, QWidget *p
mZoomInButton,
&QToolButton::clicked,
m3DMapCanvas,
[=] {
[this] {
QgsCameraController *controller = m3DMapCanvas->cameraController();
if ( m3DMapCanvas->mapSettings()->sceneMode() == Qgis::SceneMode::Globe )
controller->globeZoom( ZOOM_FACTOR );
@ -61,7 +61,7 @@ Qgs3DNavigationWidget::Qgs3DNavigationWidget( Qgs3DMapCanvas *canvas, QWidget *p
mZoomOutButton,
&QToolButton::clicked,
m3DMapCanvas,
[=] {
[this] {
QgsCameraController *controller = m3DMapCanvas->cameraController();
if ( m3DMapCanvas->mapSettings()->sceneMode() == Qgis::SceneMode::Globe )
controller->globeZoom( 1 / ZOOM_FACTOR );
@ -75,7 +75,7 @@ Qgs3DNavigationWidget::Qgs3DNavigationWidget( Qgs3DMapCanvas *canvas, QWidget *p
mTiltUpButton,
&QToolButton::clicked,
m3DMapCanvas,
[=] {
[this] {
m3DMapCanvas->cameraController()->tiltUpAroundViewCenter( 1 );
}
);
@ -85,7 +85,7 @@ Qgs3DNavigationWidget::Qgs3DNavigationWidget( Qgs3DMapCanvas *canvas, QWidget *p
mTiltDownButton,
&QToolButton::clicked,
m3DMapCanvas,
[=] {
[this] {
m3DMapCanvas->cameraController()->tiltUpAroundViewCenter( -1 );
}
);
@ -98,7 +98,7 @@ Qgs3DNavigationWidget::Qgs3DNavigationWidget( Qgs3DMapCanvas *canvas, QWidget *p
mCompass,
&QwtDial::valueChanged,
m3DMapCanvas,
[=] {
[this] {
m3DMapCanvas->cameraController()->setCameraHeadingAngle( float( mCompass->value() ) );
}
);
@ -108,7 +108,7 @@ Qgs3DNavigationWidget::Qgs3DNavigationWidget( Qgs3DMapCanvas *canvas, QWidget *p
mMoveUpButton,
&QToolButton::clicked,
m3DMapCanvas,
[=] {
[this] {
QgsCameraController *controller = m3DMapCanvas->cameraController();
if ( m3DMapCanvas->mapSettings()->sceneMode() == Qgis::SceneMode::Globe )
controller->globeMoveCenterPoint( MOVE_FACTOR * controller->cameraPose().distanceFromCenterPoint(), 0 );
@ -122,7 +122,7 @@ Qgs3DNavigationWidget::Qgs3DNavigationWidget( Qgs3DMapCanvas *canvas, QWidget *p
mMoveRightButton,
&QToolButton::clicked,
m3DMapCanvas,
[=] {
[this] {
QgsCameraController *controller = m3DMapCanvas->cameraController();
if ( m3DMapCanvas->mapSettings()->sceneMode() == Qgis::SceneMode::Globe )
controller->globeMoveCenterPoint( 0, MOVE_FACTOR * controller->cameraPose().distanceFromCenterPoint() );
@ -136,7 +136,7 @@ Qgs3DNavigationWidget::Qgs3DNavigationWidget( Qgs3DMapCanvas *canvas, QWidget *p
mMoveDownButton,
&QToolButton::clicked,
m3DMapCanvas,
[=] {
[this] {
QgsCameraController *controller = m3DMapCanvas->cameraController();
if ( m3DMapCanvas->mapSettings()->sceneMode() == Qgis::SceneMode::Globe )
controller->globeMoveCenterPoint( -MOVE_FACTOR * controller->cameraPose().distanceFromCenterPoint(), 0 );
@ -150,7 +150,7 @@ Qgs3DNavigationWidget::Qgs3DNavigationWidget( Qgs3DMapCanvas *canvas, QWidget *p
mMoveLeftButton,
&QToolButton::clicked,
m3DMapCanvas,
[=] {
[this] {
QgsCameraController *controller = m3DMapCanvas->cameraController();
if ( m3DMapCanvas->mapSettings()->sceneMode() == Qgis::SceneMode::Globe )
controller->globeMoveCenterPoint( 0, -MOVE_FACTOR * controller->cameraPose().distanceFromCenterPoint() );

View File

@ -38,14 +38,14 @@ QgsMap3DExportWidget::QgsMap3DExportWidget( Qgs3DMapScene *scene, Qgs3DMapExport
loadSettings();
connect( ui->sceneNameLineEdit, &QLineEdit::textChanged, this, [=]( const QString & ) { settingsChanged(); } );
connect( ui->selectFolderWidget, &QgsFileWidget::fileChanged, this, [=]( const QString & ) { settingsChanged(); } );
connect( ui->smoothEdgesCheckBox, &QCheckBox::stateChanged, this, [=]( int ) { settingsChanged(); } );
connect( ui->terrainResolutionSpinBox, qOverload<int>( &QSpinBox::valueChanged ), this, [=]( int ) { settingsChanged(); } );
connect( ui->exportNormalsCheckBox, &QCheckBox::stateChanged, this, [=]( int ) { settingsChanged(); } );
connect( ui->exportTexturesCheckBox, &QCheckBox::stateChanged, this, [=]( int ) { settingsChanged(); } );
connect( ui->terrainTextureResolutionSpinBox, qOverload<int>( &QSpinBox::valueChanged ), this, [=]( int ) { settingsChanged(); } );
connect( ui->scaleSpinBox, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [=]( int ) { settingsChanged(); } );
connect( ui->sceneNameLineEdit, &QLineEdit::textChanged, this, [this]( const QString & ) { settingsChanged(); } );
connect( ui->selectFolderWidget, &QgsFileWidget::fileChanged, this, [this]( const QString & ) { settingsChanged(); } );
connect( ui->smoothEdgesCheckBox, &QCheckBox::stateChanged, this, [this]( int ) { settingsChanged(); } );
connect( ui->terrainResolutionSpinBox, qOverload<int>( &QSpinBox::valueChanged ), this, [this]( int ) { settingsChanged(); } );
connect( ui->exportNormalsCheckBox, &QCheckBox::stateChanged, this, [this]( int ) { settingsChanged(); } );
connect( ui->exportTexturesCheckBox, &QCheckBox::stateChanged, this, [this]( int ) { settingsChanged(); } );
connect( ui->terrainTextureResolutionSpinBox, qOverload<int>( &QSpinBox::valueChanged ), this, [this]( int ) { settingsChanged(); } );
connect( ui->scaleSpinBox, qOverload<double>( &QDoubleSpinBox::valueChanged ), this, [this]( int ) { settingsChanged(); } );
// sets the export settings to whatever is on the scene
settingsChanged();

View File

@ -30,11 +30,11 @@ QgsMetalRoughMaterialWidget::QgsMetalRoughMaterialWidget( QWidget *parent, bool
setSettings( &defaultMaterial, nullptr );
connect( mButtonBaseColor, &QgsColorButton::colorChanged, this, &QgsMetalRoughMaterialWidget::changed );
connect( mSpinMetalness, static_cast<void ( QDoubleSpinBox::* )( double )>( &QDoubleSpinBox::valueChanged ), this, [=] {
connect( mSpinMetalness, static_cast<void ( QDoubleSpinBox::* )( double )>( &QDoubleSpinBox::valueChanged ), this, [this] {
updateWidgetState();
emit changed();
} );
connect( mSpinRoughness, static_cast<void ( QDoubleSpinBox::* )( double )>( &QDoubleSpinBox::valueChanged ), this, [=] {
connect( mSpinRoughness, static_cast<void ( QDoubleSpinBox::* )( double )>( &QDoubleSpinBox::valueChanged ), this, [this] {
updateWidgetState();
emit changed();
} );

View File

@ -34,7 +34,7 @@ QgsPhongMaterialWidget::QgsPhongMaterialWidget( QWidget *parent, bool hasOpacity
connect( btnDiffuse, &QgsColorButton::colorChanged, this, &QgsPhongMaterialWidget::changed );
connect( btnAmbient, &QgsColorButton::colorChanged, this, &QgsPhongMaterialWidget::changed );
connect( btnSpecular, &QgsColorButton::colorChanged, this, &QgsPhongMaterialWidget::changed );
connect( spinShininess, static_cast<void ( QDoubleSpinBox::* )( double )>( &QDoubleSpinBox::valueChanged ), this, [=] {
connect( spinShininess, static_cast<void ( QDoubleSpinBox::* )( double )>( &QDoubleSpinBox::valueChanged ), this, [this] {
updateWidgetState();
emit changed();
} );

View File

@ -33,7 +33,7 @@ QgsPhongTexturedMaterialWidget::QgsPhongTexturedMaterialWidget( QWidget *parent
connect( btnAmbient, &QgsColorButton::colorChanged, this, &QgsPhongTexturedMaterialWidget::changed );
connect( btnSpecular, &QgsColorButton::colorChanged, this, &QgsPhongTexturedMaterialWidget::changed );
connect( spinShininess, static_cast<void ( QDoubleSpinBox::* )( double )>( &QDoubleSpinBox::valueChanged ), this, [=] {
connect( spinShininess, static_cast<void ( QDoubleSpinBox::* )( double )>( &QDoubleSpinBox::valueChanged ), this, [this] {
updateWidgetState();
emit changed();
} );

View File

@ -587,8 +587,8 @@ Qgs3DRendererRulePropsWidget::Qgs3DRendererRulePropsWidget( QgsRuleBased3DRender
connect( editDescription, &QLineEdit::textChanged, this, &Qgs3DRendererRulePropsWidget::widgetChanged );
connect( groupSymbol, &QGroupBox::toggled, this, &Qgs3DRendererRulePropsWidget::widgetChanged );
connect( mSymbolWidget, &QgsSymbol3DWidget::widgetChanged, this, &Qgs3DRendererRulePropsWidget::widgetChanged );
connect( mFilterRadio, &QRadioButton::toggled, this, [=]( bool toggled ) { filterFrame->setEnabled( toggled ); } );
connect( mElseRadio, &QRadioButton::toggled, this, [=]( bool toggled ) { if ( toggled ) editFilter->setText( QStringLiteral( "ELSE" ) ); } );
connect( mFilterRadio, &QRadioButton::toggled, this, [this]( bool toggled ) { filterFrame->setEnabled( toggled ); } );
connect( mElseRadio, &QRadioButton::toggled, this, [this]( bool toggled ) { if ( toggled ) editFilter->setText( QStringLiteral( "ELSE" ) ); } );
}
Qgs3DRendererRulePropsWidget::~Qgs3DRendererRulePropsWidget() = default;

View File

@ -511,22 +511,24 @@ endif()
#############
if (ANDROID)
add_library(${QGIS_APP_NAME} ${LIBRARY_TYPE} ${QGIS_APPMAIN_SRCS})
add_library(qgis ${LIBRARY_TYPE} ${QGIS_APPMAIN_SRCS})
# require c++17
target_compile_features(${QGIS_APP_NAME} PRIVATE cxx_std_17)
target_compile_features(qgis PRIVATE cxx_std_17)
else()
add_executable(${QGIS_APP_NAME} WIN32 ${QGIS_APPMAIN_SRCS})
add_executable(qgis WIN32 ${QGIS_APPMAIN_SRCS})
if(WIN32 AND BUILD_WITH_QT6)
qt_disable_unicode_defines(${QGIS_APP_NAME})
qt_disable_unicode_defines(qgis)
endif()
# require c++17
target_compile_features(${QGIS_APP_NAME} PRIVATE cxx_std_17)
target_compile_definitions(${QGIS_APP_NAME} PRIVATE "QT_PLUGINS_DIR=\"${QT_PLUGINS_DIR}\"")
target_compile_features(qgis PRIVATE cxx_std_17)
target_compile_definitions(qgis PRIVATE "QT_PLUGINS_DIR=\"${QT_PLUGINS_DIR}\"")
endif()
set_target_properties(qgis PROPERTIES OUTPUT_NAME "${QGIS_APP_NAME}")
# Putting IMAGE_RCC_SRCS into qgis_app lib is causing problems when the lib is
# loaded (by plugin for example) in test unit (qgis_layoutpicturetest).
add_library(qgis_app ${LIBRARY_TYPE} ${QGIS_APP_SRCS})
@ -654,29 +656,29 @@ if(CLANG_TIDY_EXE)
endif()
if(NOT WIN32)
target_link_libraries(${QGIS_APP_NAME} qgis_app)
target_link_libraries(qgis qgis_app)
endif()
if (ANDROID)
target_link_libraries(${QGIS_APP_NAME} log)
target_link_libraries(qgis log)
endif()
if(WIN32)
add_definitions(-DQWT_DLL)
add_definitions(-DQSCINTILLA_DLL)
target_link_libraries(${QGIS_APP_NAME} dbghelp)
target_link_libraries(qgis dbghelp)
target_link_libraries(qgis_app dbghelp)
endif()
target_link_libraries(${QGIS_APP_NAME} qgis_native)
target_link_libraries(qgis qgis_native)
if (NOT WIN32)
target_link_libraries(${QGIS_APP_NAME} QTSignal)
target_link_libraries(qgis QTSignal)
endif()
if (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
find_library(EXECINFO_LIBRARY NAMES execinfo)
target_link_libraries(${QGIS_APP_NAME} ${EXECINFO_LIBRARY})
target_link_libraries(qgis ${EXECINFO_LIBRARY})
endif()
if (WITH_PDAL)
@ -693,7 +695,7 @@ install(TARGETS qgis_app
ARCHIVE DESTINATION ${QGIS_LIB_DIR}
PUBLIC_HEADER DESTINATION ${QGIS_INCLUDE_DIR})
install(TARGETS ${QGIS_APP_NAME}
install(TARGETS qgis
BUNDLE DESTINATION ${QGIS_INSTALL_PREFIX}
RUNTIME DESTINATION ${QGIS_BIN_DIR}
LIBRARY DESTINATION ${QGIS_LIB_DIR}

View File

@ -93,7 +93,7 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
QgsSettings settings;
QAction *actionRefresh = new QAction( tr( "Refresh" ), menu );
connect( actionRefresh, &QAction::triggered, this, [=] { directoryItem->refresh(); } );
connect( actionRefresh, &QAction::triggered, this, [directoryItem] { directoryItem->refresh(); } );
menu->addAction( actionRefresh );
menu->addSeparator();
@ -101,7 +101,7 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
QMenu *newMenu = new QMenu( tr( "New" ), menu );
QAction *createFolder = new QAction( QgsApplication::getThemeIcon( QStringLiteral( "mActionNewFolder.svg" ) ), tr( "Directory…" ), menu );
connect( createFolder, &QAction::triggered, this, [=] {
connect( createFolder, &QAction::triggered, this, [directoryItem, context] {
bool ok = false;
const QString name = QInputDialog::getText( QgisApp::instance(), tr( "Create Directory" ), tr( "Directory name" ), QLineEdit::Normal, QString(), &ok );
@ -126,7 +126,7 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
QAction *createGpkg = new QAction( tr( "GeoPackage…" ), newMenu );
createGpkg->setIcon( QgsApplication::getThemeIcon( QStringLiteral( "mActionNewGeoPackageLayer.svg" ) ) );
connect( createGpkg, &QAction::triggered, this, [=] {
connect( createGpkg, &QAction::triggered, this, [directoryItem, context] {
QDir dir( directoryItem->dirPath() );
QString newName = tr( "New GeoPackage.gpkg" );
int i = 1;
@ -175,7 +175,7 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
QAction *createShp = new QAction( tr( "ShapeFile…" ), newMenu );
createShp->setIcon( QgsApplication::getThemeIcon( QStringLiteral( "mActionNewVectorLayer.svg" ) ) );
connect( createShp, &QAction::triggered, this, [=] {
connect( createShp, &QAction::triggered, this, [directoryItem, item, context] {
QString enc;
QDir dir( directoryItem->dirPath() );
QString error;
@ -195,7 +195,7 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
#if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION( 3, 6, 0 )
QAction *createFgdb = new QAction( tr( "ESRI FileGeodatabase…" ), newMenu );
createFgdb->setIcon( QgsApplication::getThemeIcon( QStringLiteral( "mActionNewFileGeodatabase.svg" ) ) );
connect( createFgdb, &QAction::triggered, this, [=] {
connect( createFgdb, &QAction::triggered, this, [directoryItem, context] {
QDir dir( directoryItem->dirPath() );
QString newName = tr( "New File Geodatabase.gdb" );
int i = 1;
@ -254,7 +254,7 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
QAction *addAsFavorite = new QAction( tr( "Add as a Favorite" ), menu );
addAsFavorite->setIcon( QgsApplication::getThemeIcon( QStringLiteral( "/mIconFavorites.svg" ) ) );
menu->addAction( addAsFavorite );
connect( addAsFavorite, &QAction::triggered, this, [=] {
connect( addAsFavorite, &QAction::triggered, this, [this, directoryItem] {
addFavorite( directoryItem );
} );
}
@ -263,13 +263,13 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
if ( QgsFavoriteItem *favoriteItem = qobject_cast<QgsFavoriteItem *>( item ) )
{
QAction *actionRename = new QAction( tr( "Rename Favorite…" ), menu );
connect( actionRename, &QAction::triggered, this, [=] {
connect( actionRename, &QAction::triggered, this, [this, favoriteItem] {
renameFavorite( favoriteItem );
} );
menu->addAction( actionRename );
QAction *removeFavoriteAction = new QAction( tr( "Remove Favorite" ), menu );
connect( removeFavoriteAction, &QAction::triggered, this, [=] {
connect( removeFavoriteAction, &QAction::triggered, this, [this, favoriteItem] {
removeFavorite( favoriteItem );
} );
menu->addAction( removeFavoriteAction );
@ -277,7 +277,7 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
}
}
QAction *hideAction = new QAction( tr( "Hide from Browser" ), menu );
connect( hideAction, &QAction::triggered, this, [=] {
connect( hideAction, &QAction::triggered, this, [this, directoryItem] {
hideDirectory( directoryItem );
} );
menu->addAction( hideAction );
@ -289,7 +289,7 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
for ( const QString &path : hiddenPathList )
{
QAction *action = new QAction( QDir::toNativeSeparators( path ), hiddenMenu );
connect( action, &QAction::triggered, this, [=] {
connect( action, &QAction::triggered, this, [path] {
QgsSettings s;
QStringList pathsList = s.value( QStringLiteral( "/browser/hiddenPaths" ) ).toStringList();
pathsList.removeAll( path );
@ -321,7 +321,7 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
hiddenMenu->addSeparator();
QAction *moreAction = new QAction( tr( "Show More…" ), hiddenMenu );
connect( moreAction, &QAction::triggered, this, [=] {
connect( moreAction, &QAction::triggered, this, [] {
QgisApp::instance()->showOptionsDialog( QgisApp::instance(), QStringLiteral( "mOptionsPageDataSources" ) );
} );
hiddenMenu->addAction( moreAction );
@ -337,14 +337,14 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
const QPixmap icon = QgsColorButton::createMenuIcon( directoryItem->iconColor(), true );
actionSetIconColor->setIcon( icon );
}
connect( actionSetIconColor, &QAction::triggered, this, [=] {
connect( actionSetIconColor, &QAction::triggered, this, [this, directoryItem] {
changeDirectoryColor( directoryItem );
} );
menu->addAction( actionSetIconColor );
if ( directoryItem->iconColor().isValid() )
{
QAction *actionClearIconColor = new QAction( tr( "Clear Custom Color" ), menu );
connect( actionClearIconColor, &QAction::triggered, this, [=] {
connect( actionClearIconColor, &QAction::triggered, this, [this, directoryItem] {
clearDirectoryColor( directoryItem );
} );
menu->addAction( actionClearIconColor );
@ -353,7 +353,7 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
QMenu *scanningMenu = new QMenu( tr( "Scanning" ), menu );
QAction *monitorAction = new QAction( tr( "Monitor for Changes" ), scanningMenu );
connect( monitorAction, &QAction::triggered, this, [=] {
connect( monitorAction, &QAction::triggered, this, [this, directoryItem] {
toggleMonitor( directoryItem );
} );
monitorAction->setCheckable( true );
@ -361,7 +361,7 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
scanningMenu->addAction( monitorAction );
QAction *fastScanAction = new QAction( tr( "Fast Scan this Directory" ), scanningMenu );
connect( fastScanAction, &QAction::triggered, this, [=] {
connect( fastScanAction, &QAction::triggered, this, [this, directoryItem] {
toggleFastScan( directoryItem );
} );
fastScanAction->setCheckable( true );
@ -373,7 +373,7 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
menu->addSeparator();
QAction *openFolder = new QAction( QgsApplication::getThemeIcon( QStringLiteral( "mIconFolder.svg" ) ), tr( "Open Directory…" ), menu );
connect( openFolder, &QAction::triggered, this, [=] {
connect( openFolder, &QAction::triggered, this, [directoryItem] {
QDesktopServices::openUrl( QUrl::fromLocalFile( directoryItem->dirPath() ) );
} );
menu->addAction( openFolder );
@ -381,7 +381,7 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
if ( QgsGui::nativePlatformInterface()->capabilities() & QgsNative::NativeOpenTerminalAtPath )
{
QAction *openTerminal = new QAction( QgsApplication::getThemeIcon( QStringLiteral( "mActionTerminal.svg" ) ), tr( "Open in Terminal…" ), menu );
connect( openTerminal, &QAction::triggered, this, [=] {
connect( openTerminal, &QAction::triggered, this, [directoryItem] {
QgsGui::nativePlatformInterface()->openTerminalAtPath( directoryItem->dirPath() );
} );
menu->addAction( openTerminal );
@ -389,7 +389,7 @@ void QgsAppDirectoryItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
}
QAction *propertiesAction = new QAction( tr( "Properties…" ), menu );
connect( propertiesAction, &QAction::triggered, this, [=] {
connect( propertiesAction, &QAction::triggered, this, [this, directoryItem, context] {
showProperties( directoryItem, context );
} );
menu->addAction( propertiesAction );
@ -513,7 +513,7 @@ void QgsAppFileItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu *m
if ( !sourceSelectProviders.isEmpty() && sourceSelectProviders.first()->capabilities().testFlag( QgsSourceSelectProvider::Capability::ConfigureFromUri ) )
{
openDataSourceManagerAction = new QAction( tr( "Open with Data Source Manager…" ), menu );
connect( openDataSourceManagerAction, &QAction::triggered, this, [=] {
connect( openDataSourceManagerAction, &QAction::triggered, this, [layerItem] {
QString pageName { layerItem->providerKey() };
// GPKG special handling
if ( qobject_cast<QgsGeoPackageVectorLayerItem *>( layerItem ) )
@ -537,7 +537,7 @@ void QgsAppFileItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu *m
{
const QgsProviderSublayerDetails &sublayer { sublayers.first() };
openDataSourceManagerAction = new QAction( tr( "Open with Data Source Manager…" ), menu );
connect( openDataSourceManagerAction, &QAction::triggered, this, [=] {
connect( openDataSourceManagerAction, &QAction::triggered, this, [sublayer, layerItem] {
QString pageName { sublayer.providerKey() };
// GPKG special handling
if ( sublayer.driverName() == QLatin1String( "GeoPackage" ) )
@ -587,7 +587,7 @@ void QgsAppFileItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu *m
if ( fi.suffix().compare( ext, Qt::CaseInsensitive ) == 0 )
{
QAction *viewAction = new QAction( tr( "Open %1 Externally…" ).arg( name ), menu );
connect( viewAction, &QAction::triggered, this, [=] {
connect( viewAction, &QAction::triggered, this, [filename] {
QDesktopServices::openUrl( QUrl::fromLocalFile( filename ) );
} );
@ -646,7 +646,7 @@ void QgsAppFileItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu *m
{
const QString renameText = tr( "Rename “%1”…" ).arg( fi.fileName() );
QAction *renameAction = new QAction( renameText, menu );
connect( renameAction, &QAction::triggered, this, [=] {
connect( renameAction, &QAction::triggered, this, [this, selectedFiles, context, selectedParents, menu] {
const QString oldPath = selectedFiles.value( 0 );
const QStringList existingNames = QFileInfo( oldPath ).dir().entryList();
@ -670,7 +670,7 @@ void QgsAppFileItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu *m
const QString deleteText = selectedFiles.count() == 1 ? tr( "Delete “%1”…" ).arg( fi.fileName() )
: tr( "Delete Selected Files…" );
QAction *deleteAction = new QAction( deleteText, menu );
connect( deleteAction, &QAction::triggered, this, [=] {
connect( deleteAction, &QAction::triggered, this, [selectedFiles, selectedParents, context] {
// Check if the files correspond to paths in the project
QList<QgsMapLayer *> layersList;
for ( const QString &path : std::as_const( selectedFiles ) )
@ -810,12 +810,12 @@ void QgsAppFileItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu *m
menu->addSeparator();
QAction *showInFilesAction = menu->addAction( tr( "Show in Files" ) );
connect( showInFilesAction, &QAction::triggered, this, [=] {
connect( showInFilesAction, &QAction::triggered, this, [item] {
QgsGui::nativePlatformInterface()->openFileExplorerAndSelectFile( item->path() );
} );
QAction *filePropertiesAction = menu->addAction( tr( "File Properties…" ) );
connect( filePropertiesAction, &QAction::triggered, this, [=] {
connect( filePropertiesAction, &QAction::triggered, this, [item] {
QgsGui::nativePlatformInterface()->showFileProperties( item->path() );
} );
}
@ -939,7 +939,7 @@ void QgsProjectHomeItemGuiProvider::populateContextMenu( QgsDataItem *item, QMen
menu->insertSeparator( menu->actions().at( 0 ) );
QAction *setHome = new QAction( tr( "Set Project Home…" ), menu );
connect( setHome, &QAction::triggered, this, [=] {
connect( setHome, &QAction::triggered, this, [] {
QString oldHome = QgsProject::instance()->homePath();
QString newPath = QFileDialog::getExistingDirectory( QgisApp::instance(), tr( "Select Project Home Directory" ), oldHome );
if ( !newPath.isEmpty() )
@ -970,7 +970,7 @@ void QgsFavoritesItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu
return;
QAction *addAction = new QAction( tr( "Add a Directory…" ), menu );
connect( addAction, &QAction::triggered, this, [=] {
connect( addAction, &QAction::triggered, this, [] {
QString directory = QFileDialog::getExistingDirectory( QgisApp::instance(), tr( "Add Directory to Favorites" ) );
if ( !directory.isEmpty() )
{
@ -1065,7 +1065,7 @@ void QgsLayerItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu *men
const QString deleteText = selectedDeletableItemPaths.count() == 1 ? tr( "Delete Layer “%1”…" ).arg( layerItem->name() )
: tr( "Delete Selected Layers…" );
QAction *deleteAction = new QAction( deleteText, menu );
connect( deleteAction, &QAction::triggered, this, [=] {
connect( deleteAction, &QAction::triggered, this, [this, selectedDeletableItemPaths, context] {
deleteLayers( selectedDeletableItemPaths, context );
} );
@ -1095,7 +1095,7 @@ void QgsLayerItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu *men
const QString addText = selectedItems.count() == 1 ? tr( "Add Layer to Project" )
: tr( "Add Selected Layers to Project" );
QAction *addAction = new QAction( addText, menu );
connect( addAction, &QAction::triggered, this, [=] {
connect( addAction, &QAction::triggered, this, [this, selectedItems] {
addLayersFromItems( selectedItems );
} );
menu->addAction( addAction );
@ -1117,7 +1117,7 @@ void QgsLayerItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu *men
}
QAction *propertiesAction = new QAction( tr( "Layer Properties…" ), menu );
connect( propertiesAction, &QAction::triggered, this, [=] {
connect( propertiesAction, &QAction::triggered, this, [this, layerItem, context] {
showPropertiesForItem( layerItem, context );
} );
menu->addAction( propertiesAction );
@ -2077,13 +2077,13 @@ bool QgsDatabaseItemGuiProvider::handleDrop( QgsDataItem *item, QgsDataItemGuiCo
mainTask->addSubTask( exportTask );
hasSubTasks = true;
// when export is successful:
connect( exportTask, &QgsVectorLayerExporterTask::exportComplete, item, [=]() {
connect( exportTask, &QgsVectorLayerExporterTask::exportComplete, item, [item, context]() {
notify( tr( "Import to database" ), tr( "Import was successful." ), context, Qgis::MessageLevel::Success );
item->refresh();
} );
// when an error occurs:
connect( exportTask, &QgsVectorLayerExporterTask::errorOccurred, item, [=]( Qgis::VectorExportResult error, const QString &errorMessage ) {
connect( exportTask, &QgsVectorLayerExporterTask::errorOccurred, item, []( Qgis::VectorExportResult error, const QString &errorMessage ) {
if ( error != Qgis::VectorExportResult::UserCanceled )
{
QgsMessageOutput *output = QgsMessageOutput::createMessageOutput();
@ -2297,7 +2297,7 @@ void QgsFieldDomainItemGuiProvider::populateContextMenu( QgsDataItem *item, QMen
{
QAction *rangeDomainAction = new QAction( QObject::tr( "New Range Domain…" ) );
createFieldDomainMenu->addAction( rangeDomainAction );
connect( rangeDomainAction, &QAction::triggered, this, [=] {
connect( rangeDomainAction, &QAction::triggered, this, [createDomain] {
createDomain( Qgis::FieldDomainType::Range );
} );
}
@ -2306,7 +2306,7 @@ void QgsFieldDomainItemGuiProvider::populateContextMenu( QgsDataItem *item, QMen
{
QAction *codedDomainAction = new QAction( QObject::tr( "New Coded Values Domain…" ) );
createFieldDomainMenu->addAction( codedDomainAction );
connect( codedDomainAction, &QAction::triggered, this, [=] {
connect( codedDomainAction, &QAction::triggered, this, [createDomain] {
createDomain( Qgis::FieldDomainType::Coded );
} );
}
@ -2315,7 +2315,7 @@ void QgsFieldDomainItemGuiProvider::populateContextMenu( QgsDataItem *item, QMen
{
QAction *globDomainAction = new QAction( QObject::tr( "New Glob Domain…" ) );
createFieldDomainMenu->addAction( globDomainAction );
connect( globDomainAction, &QAction::triggered, this, [=] {
connect( globDomainAction, &QAction::triggered, this, [createDomain] {
createDomain( Qgis::FieldDomainType::Glob );
} );
}
@ -2580,7 +2580,7 @@ void QgsRelationshipItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
QPointer<QgsDataItem> itemWeakPointer( item );
connect( editRelationshipAction, &QAction::triggered, this, [=] {
connect( editRelationshipAction, &QAction::triggered, this, [md, itemWeakPointer, relation, connectionUri, context] {
std::unique_ptr<QgsAbstractDatabaseProviderConnection> conn { static_cast<QgsAbstractDatabaseProviderConnection *>( md->createConnection( connectionUri, {} ) ) };
QgsDbRelationDialog dialog( conn.release(), QgisApp::instance() );

View File

@ -67,7 +67,7 @@ QgsDecorationCopyrightDialog::QgsDecorationCopyrightDialog( QgsDecorationCopyrig
cboPlacement->addItem( tr( "Bottom Left" ), QgsDecorationItem::BottomLeft );
cboPlacement->addItem( tr( "Bottom Center" ), QgsDecorationItem::BottomCenter );
cboPlacement->addItem( tr( "Bottom Right" ), QgsDecorationItem::BottomRight );
connect( cboPlacement, qOverload<int>( &QComboBox::currentIndexChanged ), this, [=]( int ) {
connect( cboPlacement, qOverload<int>( &QComboBox::currentIndexChanged ), this, [this]( int ) {
spnHorizontal->setMinimum( cboPlacement->currentData() == QgsDecorationItem::TopCenter || cboPlacement->currentData() == QgsDecorationItem::BottomCenter ? -100 : 0 );
} );
cboPlacement->setCurrentIndex( cboPlacement->findData( mDeco.placement() ) );

View File

@ -38,7 +38,7 @@ QgsDecorationGridDialog::QgsDecorationGridDialog( QgsDecorationGrid &deco, QWidg
connect( buttonBox, &QDialogButtonBox::accepted, this, &QgsDecorationGridDialog::buttonBox_accepted );
connect( buttonBox, &QDialogButtonBox::rejected, this, &QgsDecorationGridDialog::buttonBox_rejected );
connect( mGridTypeComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, [=]( int ) { updateSymbolButtons(); } );
connect( mGridTypeComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, [this]( int ) { updateSymbolButtons(); } );
connect( mPbtnUpdateFromExtents, &QPushButton::clicked, this, &QgsDecorationGridDialog::mPbtnUpdateFromExtents_clicked );
connect( mPbtnUpdateFromLayer, &QPushButton::clicked, this, &QgsDecorationGridDialog::mPbtnUpdateFromLayer_clicked );
connect( buttonBox, &QDialogButtonBox::helpRequested, this, &QgsDecorationGridDialog::showHelp );
@ -47,7 +47,7 @@ QgsDecorationGridDialog::QgsDecorationGridDialog( QgsDecorationGrid &deco, QWidg
mLineSymbolButton->setSymbolType( Qgis::SymbolType::Line );
grpEnable->setChecked( mDeco.enabled() );
connect( grpEnable, &QGroupBox::toggled, this, [=] { updateSymbolButtons(); } );
connect( grpEnable, &QGroupBox::toggled, this, [this] { updateSymbolButtons(); } );
mOffsetXEdit->setShowClearButton( true );
mOffsetXEdit->setClearValue( 0 );

View File

@ -51,7 +51,7 @@ QgsDecorationImageDialog::QgsDecorationImageDialog( QgsDecorationImage &deco, QW
cboPlacement->addItem( tr( "Bottom Left" ), QgsDecorationItem::BottomLeft );
cboPlacement->addItem( tr( "Bottom Center" ), QgsDecorationItem::BottomCenter );
cboPlacement->addItem( tr( "Bottom Right" ), QgsDecorationItem::BottomRight );
connect( cboPlacement, qOverload<int>( &QComboBox::currentIndexChanged ), this, [=]( int ) {
connect( cboPlacement, qOverload<int>( &QComboBox::currentIndexChanged ), this, [this]( int ) {
spinHorizontal->setMinimum( cboPlacement->currentData() == QgsDecorationItem::TopCenter || cboPlacement->currentData() == QgsDecorationItem::BottomCenter ? -100 : 0 );
} );
cboPlacement->setCurrentIndex( cboPlacement->findData( mDeco.placement() ) );
@ -69,7 +69,7 @@ QgsDecorationImageDialog::QgsDecorationImageDialog( QgsDecorationImage &deco, QW
// enabled
grpEnable->setChecked( mDeco.enabled() );
connect( grpEnable, &QGroupBox::toggled, this, [=] { updateEnabledColorButtons(); } );
connect( grpEnable, &QGroupBox::toggled, this, [this] { updateEnabledColorButtons(); } );
wgtImagePath->setFilePath( mDeco.imagePath() );
connect( wgtImagePath, &QgsFileWidget::fileChanged, this, &QgsDecorationImageDialog::updateImagePath );
@ -83,8 +83,8 @@ QgsDecorationImageDialog::QgsDecorationImageDialog( QgsDecorationImage &deco, QW
pbnChangeOutlineColor->setColor( mDeco.mOutlineColor );
pbnChangeOutlineColor->setContext( QStringLiteral( "gui" ) );
pbnChangeOutlineColor->setColorDialogTitle( tr( "Select SVG Image Outline Color" ) );
connect( pbnChangeColor, &QgsColorButton::colorChanged, this, [=]( QColor ) { drawImage(); } );
connect( pbnChangeOutlineColor, &QgsColorButton::colorChanged, this, [=]( QColor ) { drawImage(); } );
connect( pbnChangeColor, &QgsColorButton::colorChanged, this, [this]( QColor ) { drawImage(); } );
connect( pbnChangeOutlineColor, &QgsColorButton::colorChanged, this, [this]( QColor ) { drawImage(); } );
drawImage();
}

View File

@ -52,7 +52,7 @@ QgsDecorationNorthArrowDialog::QgsDecorationNorthArrowDialog( QgsDecorationNorth
spinAngle->setEnabled( !mDeco.mAutomatic );
sliderRotation->setEnabled( !mDeco.mAutomatic );
connect( cboxAutomatic, &QAbstractButton::toggled, this, [=]( bool checked ) {
connect( cboxAutomatic, &QAbstractButton::toggled, this, [this]( bool checked ) {
spinAngle->setEnabled( !checked );
sliderRotation->setEnabled( !checked );
} );
@ -66,7 +66,7 @@ QgsDecorationNorthArrowDialog::QgsDecorationNorthArrowDialog( QgsDecorationNorth
cboPlacement->addItem( tr( "Bottom Left" ), QgsDecorationItem::BottomLeft );
cboPlacement->addItem( tr( "Bottom Center" ), QgsDecorationItem::BottomCenter );
cboPlacement->addItem( tr( "Bottom Right" ), QgsDecorationItem::BottomRight );
connect( cboPlacement, qOverload<int>( &QComboBox::currentIndexChanged ), this, [=]( int ) {
connect( cboPlacement, qOverload<int>( &QComboBox::currentIndexChanged ), this, [this]( int ) {
spinHorizontal->setMinimum( cboPlacement->currentData() == QgsDecorationItem::TopCenter || cboPlacement->currentData() == QgsDecorationItem::BottomCenter ? -100 : 0 );
} );
cboPlacement->setCurrentIndex( cboPlacement->findData( mDeco.placement() ) );
@ -87,7 +87,7 @@ QgsDecorationNorthArrowDialog::QgsDecorationNorthArrowDialog( QgsDecorationNorth
mSvgPathLineEdit->setText( mDeco.mSvgPath );
connect( mSvgPathLineEdit, &QLineEdit::textChanged, this, &QgsDecorationNorthArrowDialog::updateSvgPath );
connect( mSvgSelectorBtn, &QPushButton::clicked, this, [=] {
connect( mSvgSelectorBtn, &QPushButton::clicked, this, [this] {
QgsSvgSelectorDialog svgDlg( this );
svgDlg.setWindowTitle( tr( "Select SVG file" ) );
svgDlg.svgSelector()->setSvgPath( mSvgPathLineEdit->text().trimmed() );
@ -109,8 +109,8 @@ QgsDecorationNorthArrowDialog::QgsDecorationNorthArrowDialog( QgsDecorationNorth
pbnChangeOutlineColor->setColor( mDeco.mOutlineColor );
pbnChangeOutlineColor->setContext( QStringLiteral( "gui" ) );
pbnChangeOutlineColor->setColorDialogTitle( tr( "Select North Arrow Outline Color" ) );
connect( pbnChangeColor, &QgsColorButton::colorChanged, this, [=]( QColor ) { drawNorthArrow(); } );
connect( pbnChangeOutlineColor, &QgsColorButton::colorChanged, this, [=]( QColor ) { drawNorthArrow(); } );
connect( pbnChangeColor, &QgsColorButton::colorChanged, this, [this]( QColor ) { drawNorthArrow(); } );
connect( pbnChangeOutlineColor, &QgsColorButton::colorChanged, this, [this]( QColor ) { drawNorthArrow(); } );
drawNorthArrow();
}

View File

@ -64,7 +64,7 @@ QgsDecorationScaleBarDialog::QgsDecorationScaleBarDialog( QgsDecorationScaleBar
cboPlacement->addItem( tr( "Bottom Left" ), QgsDecorationItem::BottomLeft );
cboPlacement->addItem( tr( "Bottom Center" ), QgsDecorationItem::BottomCenter );
cboPlacement->addItem( tr( "Bottom Right" ), QgsDecorationItem::BottomRight );
connect( cboPlacement, qOverload<int>( &QComboBox::currentIndexChanged ), this, [=]( int ) {
connect( cboPlacement, qOverload<int>( &QComboBox::currentIndexChanged ), this, [this]( int ) {
spnHorizontal->setMinimum( cboPlacement->currentData() == QgsDecorationItem::TopCenter || cboPlacement->currentData() == QgsDecorationItem::BottomCenter ? -100 : 0 );
} );
cboPlacement->setCurrentIndex( cboPlacement->findData( mDeco.placement() ) );

View File

@ -74,7 +74,7 @@ QgsDecorationTitleDialog::QgsDecorationTitleDialog( QgsDecorationTitle &deco, QW
cboPlacement->addItem( tr( "Bottom Left" ), QgsDecorationItem::BottomLeft );
cboPlacement->addItem( tr( "Bottom Center" ), QgsDecorationItem::BottomCenter );
cboPlacement->addItem( tr( "Bottom Right" ), QgsDecorationItem::BottomRight );
connect( cboPlacement, qOverload<int>( &QComboBox::currentIndexChanged ), this, [=]( int ) {
connect( cboPlacement, qOverload<int>( &QComboBox::currentIndexChanged ), this, [this]( int ) {
spnHorizontal->setMinimum( cboPlacement->currentData() == QgsDecorationItem::TopCenter || cboPlacement->currentData() == QgsDecorationItem::BottomCenter ? -100 : 0 );
} );
cboPlacement->setCurrentIndex( cboPlacement->findData( mDeco.placement() ) );

View File

@ -152,19 +152,19 @@ QList<QAction *> QgsNetworkLoggerRequestGroup::actions( QObject *parent )
{
QList<QAction *> res;
QAction *openUrlAction = new QAction( QObject::tr( "Open URL" ), parent );
QObject::connect( openUrlAction, &QAction::triggered, openUrlAction, [=] {
QObject::connect( openUrlAction, &QAction::triggered, openUrlAction, [this] {
QDesktopServices::openUrl( mUrl );
} );
res << openUrlAction;
QAction *copyUrlAction = new QAction( QObject::tr( "Copy URL" ), parent );
QObject::connect( copyUrlAction, &QAction::triggered, openUrlAction, [=] {
QObject::connect( copyUrlAction, &QAction::triggered, openUrlAction, [this] {
QApplication::clipboard()->setText( mUrl.url() );
} );
res << copyUrlAction;
QAction *copyAsCurlAction = new QAction( QObject::tr( "Copy As cURL" ), parent );
QObject::connect( copyAsCurlAction, &QAction::triggered, copyAsCurlAction, [=] {
QObject::connect( copyAsCurlAction, &QAction::triggered, copyAsCurlAction, [this] {
QString curlHeaders;
for ( const QPair<QString, QString> &header : std::as_const( mHeaders ) )
curlHeaders += QStringLiteral( "-H '%1: %2' " ).arg( header.first, header.second );
@ -211,7 +211,7 @@ QList<QAction *> QgsNetworkLoggerRequestGroup::actions( QObject *parent )
res << copyAsCurlAction;
QAction *copyJsonAction = new QAction( QObject::tr( "Copy as JSON" ), parent );
QObject::connect( copyJsonAction, &QAction::triggered, openUrlAction, [=] {
QObject::connect( copyJsonAction, &QAction::triggered, openUrlAction, [this] {
const QVariant value = toVariant();
const QString json = QString::fromStdString( QgsJsonUtils::jsonFromVariant( value ).dump( 2 ) );
QApplication::clipboard()->setText( json );

Some files were not shown because too many files have changed in this diff Show More