189 Commits

Author SHA1 Message Date
Nyall Dawson
4ec5290a46 [layouts] Add support merging cells in manual tables
Allows adjacent cells to be merged in layout manual table items.

From the table editor, select multiple cells in a rectangular
shape and then from the Table menu, click "Merge Selected Cells".
Merged cells can be un-merged via the "Split Selected Cells"
menu action.

Fixes #51694
2024-09-05 09:19:02 +10:00
Nyall Dawson
519b82183c Fix numeric format configuration in dialog mode 2024-09-04 19:06:26 +10:00
Nyall Dawson
bfb6e1cc76 Address review 2024-09-04 19:06:26 +10:00
Nyall Dawson
1eb3d82c11 Pass proper expression context on to numeric format widget 2024-09-04 19:06:26 +10:00
Nyall Dawson
05003ba2fa [feature] Add "Linear Referencing" symbol layer type
This new symbol layer type allows placing text labels at regular
intervals along a line (or at positions corresponding to
existing vertices). Positions can be calculated using
Cartesian distances, or interpolated from z/m values.

Functionality includes:

- Labels can be placed using fixed cartesian 2d distances,
at regular linearly interpolated spacing calculated using
the Z or M values in geometries, or at existing vertices
- Labels can show either the running total distance, or
the linearly interpolated Z/M value
- Uses text rendered to draw labels, so the full range
of functionality is available for the labels (including
buffers, shadows, etc)
- Uses the QGIS numeric format classes to format numbers
as strings, so users have full range of customisation
options for eg decimal places
- An optional "skip multiples of" setting. If set, then
labels which are a multiple of this value will be skipped
over. This allows construction of complex referencing labels,
eg where a symbol has two linear referencing symbol layers,
one set to label every 100m in a small font, skipping multiples
of 1000, and a second set to label every 1000m in a big
bold font
- Labels are rendered using an angle calculated by averaging
the linestring, so sharp tiny jaggies don't result in
unslightly label rotation
- Optionally, markers can be placed at referenced points
in the line string, using a full QGIS marker symbol (this allows
eg showing a cross-hatch at the labeled point, for a "ruler"
style line)
- Data defined control over the placement intervals, skip
multiples setting, marker visibility and average angle
calculation length

Notes:

- When using the distance-based placement or labels, the
distances are calculated using 2D only, Cartesian calculations
based on the original layer CRS. This could potentially be
extended in future to expose options for 3D Cartesian distances,
or ellipsoidal distance calculations.

Sponsored by the Swiss QGIS User Group
2024-09-04 19:06:26 +10:00
Nyall Dawson
4db6237246 Deprecate signal which is never emitted 2024-09-04 13:54:39 +10:00
Nyall Dawson
c6233cb312 Add missing signal docs 2024-09-04 13:54:39 +10:00
Nyall Dawson
104ffa885a Cleanup docs 2024-09-04 13:54:39 +10:00
Nyall Dawson
a4723d7b97 Add missing signal docs 2024-09-04 13:54:39 +10:00
Nyall Dawson
e5c5ecb88c Add missing signal docs 2024-09-04 13:54:39 +10:00
Nyall Dawson
94f6e9c71b Correctly handle \param[in,out] in sipify 2024-09-04 13:54:39 +10:00
Nyall Dawson
0191ecbccd Add missing docs for signals 2024-09-04 13:54:39 +10:00
Nyall Dawson
bfa3bb3fc6 Misc doc cleanups 2024-09-04 13:54:39 +10:00
Nyall Dawson
502ad84f83 Cleanup QgsUnitSelectionWidget docs 2024-09-04 13:54:39 +10:00
Nyall Dawson
f2e4c3dfb7 Don't mangle http see links in PyQGIS docs 2024-09-04 06:32:03 +10:00
Nyall Dawson
534ca73c59 Fix missing see also trailing notes in PyQGIS documentation 2024-09-04 06:32:03 +10:00
Nyall Dawson
0f1daa11f3 Fix formatting of some \see links 2024-09-04 06:32:03 +10:00
Nyall Dawson
ef0289f3ec Fix formatting of Python ..deprecated annotations in docstrings
Fixes https://github.com/qgis/pyqgis-api-docs-builder/issues/174
2024-09-02 11:42:12 +10:00
Nyall Dawson
765cbb32db Standardise some deprecated annotations 2024-09-02 11:42:12 +10:00
Nyall Dawson
d318cdb992 Standardise some since annotations 2024-09-01 02:29:17 +10:00
Nyall Dawson
a5a3bf9ee8 Fix some more causes of warnings when building PyQGIS docs 2024-08-30 12:19:29 +10:00
Nyall Dawson
e38d577980 Catch raw bold/italic tags in docs 2024-08-30 05:47:07 +10:00
Nyall Dawson
49d31fa527 Fix some malformed docs 2024-08-30 05:47:07 +10:00
Nyall Dawson
482311b668 Don't use raw html lists in documentation 2024-08-30 05:47:07 +10:00
Nyall Dawson
16e05a207b [feature] Add 'Custom Expression' numeric format
This numeric format allows users to craft a custom QGIS expression
to format numbers. The expression can use the @value variable
to retrieve the value to be formatted, and then use any standard
QGIS expression function to format this as desired.

It can be used anywhere QgsNumericFormat is accepted, eg layout
scalebars, elevation plots, layout tables, and color ramp
legends

Sponsored by the Swiss QGIS User Group
2024-08-29 13:27:23 +10:00
Nyall Dawson
bc52832b47 Lazily hack around markdown title underline not being long enough
Causes a bunch of warnings when building the PyQGIS docs
2024-08-28 11:58:21 +10:00
Julien Cabieces
becfe9111d fix(ColorWidget): Synchronize color model with color ramp one
Fixes #58324
2024-08-27 06:54:44 +10:00
signedav
02c36d9fd6
Merge pull request #58448 from signedav/releditorfilter
Filter in Linking Dialogue of Relation Editor Widget
2024-08-23 11:34:13 +02:00
Julien Cabieces
3b7a3c0060 style(ColorWidgets): Rename Raw enum to Scaled0to255 2024-08-22 09:58:55 +02:00
signedav
5c9890ce69 fix typos 2024-08-21 14:59:34 +02:00
Julien Cabieces
5deb18f91c ui(ColorWidget): Display CMYK components as percent 2024-08-21 10:06:30 +02:00
signedav
66fac268c8 Integrate expression builder in configuration 2024-08-21 08:08:38 +02:00
Julien Cabieces
35dad9a7fe fix(ColorWidget): fix sip and missing deprecated 2024-08-21 05:20:48 +10:00
Julien Cabieces
439078651e fix(ColorWidget): Add missing SIP_DEPRECATED 2024-08-21 05:20:48 +10:00
Julien Cabieces
b3dd3a0e32 feat(ColorWidget): Set color component as float 2024-08-21 05:20:48 +10:00
Nyall Dawson
1128c909ee Move all gui map tools files into maptools/ subfolder
Previously only a few were in this subfolder, which made it
confusing to find the others...
2024-08-20 16:38:45 +02:00
signedav
0184eb1c77 Implement filterExpression in RelationEditorWidget and Config
Make QgsAbstractRelationEditorWidget accept filterExpression on linkFeature function
2024-08-20 15:47:31 +02:00
signedav
72c596c7ea make setFilterExpression public to make possible to set filters by e.g. widgets 2024-08-19 17:38:33 +02:00
Mathieu Pellerin
52816584cc Address review 2024-08-17 11:37:35 +07:00
Mathieu Pellerin
26308050c4 [processing] Fix script editor dialog wrongly jumping back to line 1 and setting changed to true after saving file 2024-08-16 14:53:53 +07:00
Nyall Dawson
6cbf8f09e0 Cleanup QgsMapLayerComboBox docs 2024-08-16 07:28:29 +10:00
Nyall Dawson
3e1bf261b9 Add some useful methods for annotation item widgets 2024-08-15 14:27:35 +10:00
Nyall Dawson
c2529994aa Use rich text editor for annotation text item widgets
Makes it easier for users to style annotation items with rich
formatting, instead of forcing use of raw HTML
2024-08-15 06:25:08 +10:00
Nyall Dawson
e8724fa45e Add mode switch for QgsRichTextEditor
Allows using the widget in a QgsTextRenderer HTML subset mode,
where only functionality supported by QgsTextRenderer is
exposed in the widget. Also add a Plain Text mode.
2024-08-15 06:25:08 +10:00
Nyall Dawson
8b04562ba7 Avoid fragile reg for argument removal 2024-08-14 13:05:46 +10:00
Nyall Dawson
3a578d6712 Header update 2024-08-13 20:28:55 +10:00
Nyall Dawson
e7b26478e2 Valid fixes 2024-08-13 20:28:55 +10:00
Nyall Dawson
be8dce7d0d Valid improvements from new sipify 2024-08-13 20:28:55 +10:00
Nyall Dawson
886074c913 Rename 'None' enum members in public API
These clash with the Python bindings, where the enum value
becomes unusable
2024-08-06 19:49:10 +10:00
Nyall Dawson
dbafe6c702 Fix clang-tidy warning 2024-08-06 13:30:16 +10:00