Germán Carrillo
f81df2876c
[gui] Move Diagrams properties to a panel widget, showing tabs instead of a list when docked; harmonize stacked diagram configuration with rule-based labeling; allow QgsDiagramProperties to sync to renderers and diagram layer settings, in addition to syncing to layers; when editing a subdiagram of a stacked diagram, only show widgets for diagram layer settings if the subdiagram is the first one, for the rest, hide those widgets and show a note informing users; make sure stacked diagrams handle enabled and disabled subdiagrams (i.e., don't take into account disabled subdiagrams) and add a test for it; switching from single to stacked diagram: take the single diagram definition as the first stacked diagram; fix #58782 (calling twice the apply method for label rendering)
2024-09-17 23:57:00 -05:00
Germán Carrillo
e855941a34
[core] Introduce QgsStackedDiagramRenderer for rendering stacked diagrams. This allows subdiagrams to define their own sizes and legends; add tests for a stacked diagram composed of mixed renderers (single category and linearly interpolated categories), as well as nested stacked diagrams.
2024-09-17 23:56:31 -05:00
Germán Carrillo
d12d661a4e
[gui] Write/read stacked diagram state to/from XML (QGIS project)
2024-09-17 23:56:31 -05:00
Germán Carrillo
7e886a5b0c
[gui] Implement syncToLayer for QgsStackedDiagramproperties, delegating to subdiagrams' syncToLayer when needed
2024-09-17 23:56:31 -05:00
Germán Carrillo
614ce76156
[gui] Introduce StackedDiagramProperties and use it as dialog and as vector properties page. For the moment, it works with single diagrams, hiding controls for stacked diagrams
2024-09-17 23:56:22 -05:00
Germán Carrillo
5b35dbaa63
[tests] Subdiagram position in vertically stacked diagrams (iterating subdiagrams backwards)
2024-09-17 23:55:38 -05:00
Germán Carrillo
2d7b81c3c9
Adjust documentation links
2024-09-17 23:55:37 -05:00
Germán Carrillo
4432797778
Const method; improve new QgsStackedDiagram's docs
2024-09-17 23:55:37 -05:00
Germán Carrillo
3a264b4e4b
Replace outdated unused in docs; remove outdated unused in code
2024-09-17 23:55:37 -05:00
Germán Carrillo
75483703cf
Introduce QgsStackedDiagram to create compound diagrams like population pyramids. Use Stacked as internal name for stacked diagrams and StackedBar for stacked bar diagrams. Add subDiagram parameter to QgsDiagramRenderer::diagramSize() and QgsDiagramRenderer::diagramSettings() (single and interpolated) to get subdiagrams info.
2024-09-17 23:55:33 -05:00
Nyall Dawson
3e63b9a4fd
Use plural for consistency
2024-09-17 14:00:35 +10:00
Nyall Dawson
0777e7683f
Complete EPSG distance unit mapping by adding historic distance units
...
Ensures we don't perform a lossy conversion of units from the EPSG
CRS database to QGIS units
2024-09-17 14:00:35 +10:00
qgis-bot
e9798f0796
auto sipify 🍺
2024-09-16 18:05:27 +00:00
Nyall Dawson
a492cb22fb
[feature] Support horizontal alignment in HTML labels
...
For multi-line labels, this allows use of either:
- HTML <p align="xxx"> attributes
- CSS "text-align: xxx"
- HTML <center>some text</center> tags
Supported alignments are left, right, center and justify
Horizontal alignment can be used in all contexts where
HTML text is rendered, EXCEPT for curved labels (since they
are restricted to single-line text)
Sponsored by City of Freiburg im Breisgau
2024-09-16 17:26:24 +10:00
Nyall Dawson
1fc5ae33aa
Add missing sip cast for QgsFilledLineSymbolLayer
2024-09-16 16:52:20 +10:00
Nyall Dawson
b7d18c009a
Fix dox
2024-09-14 13:25:59 +10:00
Nyall Dawson
566b2f7286
Ensure label cache is invalidated when a vector layer renderer
...
affects the labeling and is re-drawn
2024-09-14 13:25:59 +10:00
Nyall Dawson
c50c923261
Add API to determine if feature renderer affects labeling results
2024-09-14 13:25:59 +10:00
Nyall Dawson
957de0c311
Expose private QgsTextRenderer method for drawing document at point
...
This allows more efficient rendering when the document and metrics
have already been calculated
2024-09-14 13:25:59 +10:00
Ivan Barsukov
d0dedde547
Fixed typo in allowCommitChanged
2024-09-14 06:01:01 +10:00
Denis Rouzaud
281726250f
Merge pull request #58354 from gacarrillor/save_functions_in_project
...
[feature] Allow users to save expression functions in QGIS project file
2024-09-13 17:39:40 +02:00
Denis Rouzaud
304f9642b4
[locator] add priority per group ( #58542 )
...
* [locator] add priority per group
* fix test
---------
Co-authored-by: signedav <david@opengis.ch>
2024-09-13 16:52:45 +02:00
Alessandro Pasotti
987c38eda6
[auth][api] QgsAuthConfigurationStorage classes and tests ( #57992 )
...
Implementation of QEP
Authentication System: allow Database storage for authentication DB
https://github.com/qgis/QGIS-Enhancement-Proposals/issues/248
2024-09-12 09:18:15 +02:00
Mathieu Pellerin
73ab085bbc
Merge pull request #58584 from nirvn/processing_openstreetmap_policy
...
Further safeguards from (perceived or actual) bulk download of OpenStreetMap tiles
2024-09-12 08:12:17 +07:00
Mathieu Pellerin
5bcc310768
Address review
2024-09-12 08:34:13 +10:00
Mathieu Pellerin
48b98def64
[geos] Add mechanism for empty interior rings to be skipped
2024-09-12 08:34:13 +10:00
Nyall Dawson
5734116a10
Support h1/h2/.../h6 formatting in html labels
2024-09-11 13:43:00 +10:00
Nyall Dawson
90524634f9
[feature] Add support for word-spacing CSS in html labels
...
...and other places HTML text formatting is accepted.
This allows use of CSS "word-spacing: 12" to increase the word
spacing in a section of HTML text. The word spacing is always
treated as being in point units.
2024-09-11 08:24:39 +10:00
Nyall Dawson
569da98cd8
If a rule is not available on the system (eg geos too old):
...
- grey out the rule in the rules list
- show an explanatory tooltip
- don't allow users to create copies of that rule
2024-09-11 02:06:41 +10:00
Nyall Dawson
6c2055fc1e
Generate user-friendly tooltips
2024-09-11 02:06:41 +10:00
Nyall Dawson
2d3e6aac43
Allow labeling rules to be de-activated
2024-09-11 02:06:41 +10:00
Nyall Dawson
3ec7665fec
Add gui for configuring project advanced labeling rules
2024-09-11 02:06:41 +10:00
Nyall Dawson
98bd60e4ba
Add __repr__
2024-09-11 02:06:41 +10:00
Nyall Dawson
940949cbf9
Rules can have user-configurable names
2024-09-11 02:06:41 +10:00
Nyall Dawson
538cec5970
Fix seealso
2024-09-11 02:06:41 +10:00
Nyall Dawson
15a7079a39
[api] Implementation of labeling engine rules
...
See https://github.com/qgis/QGIS-Enhancement-Proposals/issues/299
Implements the API framework for setting advanced labeling engine
rules for a project, and implements 4 initial rule types:
- QgsLabelingEngineRuleMinimumDistanceLabelToFeature: prevents labels
being placed too *close* to features from a different layer
- QgsLabelingEngineRuleMaximumDistanceLabelToFeature: prevents labels
being placed too *far* from features from a different layer
- QgsLabelingEngineRuleMinimumDistanceLabelToLabel: prevents labels
being placed too close to labels from a different layer
- QgsLabelingEngineRuleAvoidLabelOverlapWithFeature: prevents labels
being placed overlapping features from a different layer
(note that the first 3 rules require a build based on GEOS >= 3.10,
they are not available for older GEOS builds)
Also implements a registry for storing available rule classes,
and serialization of rules and configuration in QGIS projects
2024-09-11 02:06:41 +10:00
Nyall Dawson
391b61544e
Handle SIP_OUT with void functions
2024-09-10 11:46:47 +10:00
Nyall Dawson
b39f760cbc
Correctly handle multiline SIP_OUT param documentation
2024-09-10 11:11:25 +10:00
Loïc Bartoletti
dc65b077aa
PostgreSQL: Add new geometry types
...
Allow PolyhedralSurface and TIN in PostgreSQL table.
Add a new GeometryColumnType and Capabilities : Surfaces.
2024-09-09 06:16:25 +02:00
Jean Felder
f43e5ad17c
geometry: Add triangulatedsurface support
2024-09-09 06:16:25 +02:00
Jean Felder
3d070316eb
qgis: Add support for TIN type
2024-09-09 06:16:25 +02:00
Jean Felder
59e12d50ae
qgsgeometry: Use QgsPolyhedralSurface in fromBox3D
2024-09-09 06:16:25 +02:00
Jean Felder
371eca55e8
geometry: Add polyhedralsurface support
2024-09-09 06:16:25 +02:00
Jean Felder
3295d7e803
qgis: Add support for polyhedralsurface type
2024-09-09 06:16:25 +02:00
Jean Felder
e99d4d2306
qgssurface: Do not define surfaceToPolygon
...
`surfaceToPolygon` is only useful for `QgsCurvePolygon` which inherits
from `QgsSurface`. The next commit will introduce
`QgsPolyhedralSurface` which also inherits from `QgsSurface`. For
`QgsPolyhedralSurface`, it does not make sense to have
`surfaceToPolygon`.
By moving `surfaceToPolygon` definition in `QgsCurvePolygon` this
allows to keep the functionality.
2024-09-09 06:16:25 +02:00
Nyall Dawson
38af55cb85
Add missing docs
2024-09-08 16:06:22 +10:00
Nyall Dawson
cfd251e7f7
Capture signal arguments
2024-09-08 16:06:22 +10:00
Mathieu Pellerin
7fa383dc06
Address review
2024-09-06 14:57:05 +07:00
Germán Carrillo
c5286e4dcc
[core] Address review: Move loadFunctionsFromProject and cleanFunctionsFromProject to QgsProject::read and ::clear, respectively. Introduce function pythonEmbeddedInProjectAllowed to ask for permissions to load both macros and expression functions, with a parameter enum and rename existing enum for macros. Sort includes. Drop not needed file. Add python/expressions/ to gitignore, to get rid of files produced by the introduced Python test.
2024-09-05 23:07:37 -05:00
Germán Carrillo
f91fadf07a
[expressions] Unload expression functions from project on project close and reload user expressions (from profile) to avoid any potential overwrite from unloaded project functions
2024-09-05 23:07:36 -05:00