286 Commits

Author SHA1 Message Date
Nyall Dawson
be8dce7d0d Valid improvements from new sipify 2024-08-13 20:28:55 +10:00
Nyall Dawson
c2c75f3b19
More no-value dox removal 2024-07-25 09:04:22 +10:00
Nyall Dawson
6f652d251b Drop no-value copy constructor dox 2024-07-25 04:02:55 +10:00
Nyall Dawson
2fb85192aa Fix crash when extracting symbols from project with layout legend
Legend must be initialized before calling style visitor function

Fixes #57609
2024-07-23 16:40:47 +10:00
Nyall Dawson
28943f9c1b Remove a bunch of useless default constructor doxygen 2024-07-23 02:08:28 +10:00
Nyall Dawson
3b80fc0f4b
Move layout picture item format enum to Qgis, promote to enum class 2024-07-16 11:25:49 +10:00
Nyall Dawson
711c75d873 Promote scalebar enums to enum class, move to Qgis 2024-07-12 05:36:22 +10:00
Nyall Dawson
7ce057c2ea Remove broken see also link 2024-07-10 13:37:14 +10:00
Nyall Dawson
f5bfef80b3 Drop generic option, go with custom property specific for GeoPDF exports
It's too messy to try to handle this in a format-agnostic way, as
the requirement for GeoPDF is very unique to GeoPDF (ie SVG and other
formats don't export as mini-read-only-projects with custom layer
trees like GeoPDF does)
2024-07-10 13:37:14 +10:00
Nyall Dawson
06aa04dea7 [feature][layouts] Add option to set geopdf group name for items
This new setting, located in the layout item "Rendering" section,
allows users to set an optional "group name" for use in GeoPDF
exports. When set, a matching layer tree group will be created
in the exported GeoPDF and the item will only be visible when
this group is checked.

This allows content to be selectively displayed as a group by
viewers of the GeoPDF. Eg, it can allow extra layout content
such as descriptive labels or legends to only be shown when
layers from the group are visible, making GeoPDF export much
more flexible.
2024-07-10 13:37:14 +10:00
Nyall Dawson
5268e0ee0c Add optional flag to force global ("entire map") clipping paths
This is a new opt-in flag for map settings/render context/layouts.
If set, then when applying clipping paths for selective masking,
we always use global ("entire map") paths, instead of calculating
local clipping paths per rendered feature. This results in
considerably more complex vector exports in all current Qt versions,
but gives us a way to force this IF/when a future Qt version adds
optimisations which make global masks desirable.
2024-06-21 23:10:32 +10:00
Nyall Dawson
e931b9ade6 Add mask render settings to QgsMapSettings/QgsRenderContext
And API mechanism to propagate these from layout exports down
to the render context

Gives us a place to specify fine-tuned control over masking
settings for map renders
2024-06-20 05:41:37 +10:00
Nyall Dawson
7a3bf17bf1 Provide detailed error message when creating GeoPDF from layout fails
Instead of a generic message (which is not very helpful), show the
full error message we receive from GDAL to the user
2024-05-22 14:28:03 +10:00
Alexander Bruy
8882fd9aa1 duplicate composer map grid (fix #47511) 2024-05-10 13:17:39 +01:00
Nyall Dawson
f02841dd5d Remove Q_DECL_DEPRECATED from constructor
Even though this class is deprecated, this breaks the qt 6 on qt 6.7+
2024-05-01 13:45:55 +10:00
Nyall Dawson
e22a1d605b [feature][layouts] Add z range filter option for layout maps
Similar to the existing setting for temporal filtering of 2d layout
maps, this setting allows users to set a specific elevation/z range
for a layout map item. When set, map layers with support for 2d
z range filtering (currently point clouds and raster DEMs) will
be filtered to show only content within this range.

The z range can be data-defined, allowing differing z range
for different atlas or report features.
2024-03-04 17:00:24 +10:00
Even Rouault
a68422b982 Various typo fixes
Including 3 public methods, which are deprecated by this commit and replaced by a typo-fixed version
2024-02-29 06:03:03 +10:00
Even Rouault
15ea5c46bc
Header files: remove all mentions of '\since QGIS 3.0' 2024-02-18 20:57:23 +01:00
Even Rouault
02caeb9db7
Header files: remove all mentions of '\since QGIS 2.' 2024-02-18 20:46:01 +01:00
Nyall Dawson
ac2f1179c8 More item data role enum to enum class conversions 2024-02-06 21:04:43 +10:00
Nyall Dawson
feecb4017c Make some custom model roles enum class for Qt6 compatibility 2024-02-06 21:04:43 +10:00
Nyall Dawson
f1e3ba9e2d Use correct sip method
And use INDENT-OFF annotations to avoid astyle messing up
formatting of enum with inline macros
2024-01-31 13:48:49 +10:00
Nyall Dawson
23f3af4290 Use enum classes for QgsProperty property keys
Should fix usage on Qt 6 builds
2024-01-31 13:48:49 +10:00
Mathieu Pellerin
185724f892 Make QtPrinter support non-mandatory 2024-01-22 11:07:34 +10:00
Nyall Dawson
7e73b9bad0 Ensure we correctly set qt item caching only when appropriate 2023-10-19 17:30:10 +13:00
Nyall Dawson
cb187267ce Deprecate QgsLayoutEffect
QGraphicsEffects should NOT be used on QGraphicsItems. Despite
being part of stable Qt API, it is broken and results in crashes.

See https://bugreports.qt.io/browse/QTBUG-58501 for details.
2023-10-19 17:30:10 +13:00
Nyall Dawson
df1dc0dba2 Fix elevation profile item transparency forces rasterisation of
whole layout, expand unit test coverage
2023-10-11 11:36:40 +10:00
Nyall Dawson
3588d41786 Fix legend item with opacity forces whole layout to rasterize
and expand test coverage of blend modes and opacity with
legend items
2023-10-11 11:36:40 +10:00
Nyall Dawson
2bd25071f7 Ensure that we always call prepareGeometryChange BEFORE changing
properties which effect the boundingRect of a layout item

Refs #52079
Refs https://bugreports.qt.io/browse/QTBUG-18021
2023-10-05 13:24:47 +10:00
Nyall Dawson
17a34a1bab Avoid calling overridden virtual method in base class destructor
Fixes some undefined behavior when deleting layout items
2023-10-04 05:29:03 +10:00
Harrissou Sant-anna
f53b318692 Update docs and description for layout map item grid elements 2023-09-29 19:55:37 +10:00
Yoann Quenach de Quivillic
a1e9692755 Handle grid frame in rect frame computation 2023-09-08 05:21:07 +10:00
Yoann Quenach de Quivillic
05b79d7825 Fix groups with rotated item (still glitchy when resizing with mixed rotation though) 2023-09-06 13:07:11 +10:00
Yoann Quenach de Quivillic
9a9e8afdef Apply suggestions from code review 2023-08-23 11:14:42 +10:00
Yoann Quenach de Quivillic
91e26c8997 Fix #54139 - Add option to auto-open exported PDF 2023-08-23 11:14:42 +10:00
Sandro Mani
4670159162 Synchronously fetch legend graphics when exporting layouts to PDF 2023-08-17 10:02:58 +02:00
Andrea Giudiceandrea
3c9aaddaed Fix QgsPageSize description 2023-08-07 13:54:10 +10:00
Yoann Quenach de Quivillic
a49515abba Apply suggestions from code review 2023-07-08 04:53:44 +10:00
Yoann Quenach de Quivillic
8f3676dd80 Add search tolerance to QgsLayoutViewToolSelect 2023-07-08 04:53:44 +10:00
Yoann Quenach de Quivillic
145078aacc Fix map and elevation profile data defined background color 2023-06-20 07:03:57 +10:00
Nyall Dawson
ae638d2637 Allow setting distance unit for layout elevation profile items 2023-05-29 14:18:35 +10:00
Mathieu Pellerin
26406fe98d [layout] Insure that hyperlinks within HTML-enabled labels are exported as such within PDFs 2023-05-26 16:47:47 +07:00
Nyall Dawson
a2b3a0c642 Fix layout legend layer title not immediately updating
Fixes #52261
2023-04-03 18:17:03 +10:00
Mathieu Pellerin
441976171f [layouts] Use QPdfWriter to export layouts to PDF 2023-03-30 12:25:46 +07:00
Nyall Dawson
b39c389cd9 Fix version numbers 2023-03-14 04:24:19 +10:00
Nyall Dawson
2f0060c5dc [layouts] Use a background thread to filter legend content by map
Avoids potentially massive UI hangs while working with layouts
with filtered legends.

Fixes #51233
Fixes #48326
Fixes #51455
Fixes #51452
2023-03-14 04:24:19 +10:00
Nyall Dawson
885c0b6136 Add a "refreshing" icon overlay for layout items which are
being redrawn/updated in the background

Gives immediate visual feedback to users that the current appearance
of those items are outdated and to wait while they update.
2023-03-14 04:24:19 +10:00
Nyall Dawson
bb57ef8d1a Doc fixes 2023-03-08 14:53:12 +10:00
Nyall Dawson
781b869a7e [feature][layouts] Support filtering layout legends by multiple linked map items
Instead of limiting layout legend filtering to a single linked map,
this change permits legends to be filtered instead by multiple
linked maps. It is designed to accomodate the use case where
a layout has multiple maps, potentially at different scales
and showing different extents, and a single legend is required
which includes all symbols visible across all the maps.

Sponsored by City of Canning
2023-03-08 14:53:12 +10:00
Nyall Dawson
f9c3da1e06 Move unit enums to Qgis, promote to enum class 2023-02-19 13:29:06 +10:00