40 Commits

Author SHA1 Message Date
Loïc Bartoletti
94a3744521
Merge pull request #46647 from Koyaani/advanced_snapping
[Feature] New soft constraints in the advanced digitizing dock
2022-03-18 10:11:49 +01:00
Denis Rouzaud
f32ecd4730 move QgsMapToolCapture::CaptureTechnique enum to Qgis 2022-03-11 07:47:46 +01:00
Antoine
2dc440f804 move enums to qgis.h 2022-03-10 13:37:19 +01:00
Antoine
aa88d39f89 AdditionalConstraint to BetweenLineConstraint 2022-03-10 09:11:38 +01:00
Denis Rouzaud
36a1019582
refactoring of QgsMapToolCapture to integrate shape map tools (#46687)
* make QgsMapToolCapture capable of capturing point/line/polygons

This moves part of the code from QgsMapToolDigitizeFeature to QgsMapToolCapture so the tool can actually capture point, line and polygons. It's mainly the 'cadCanvasReleaseEvent` which has been transfered.

* use a current CaptureTechnique in QgsMapToolCapture

QgisApp has been adapted to switch between the different techniques

* add point/line/polygon specific handlers for capture map tool

* convert add part map tool to use QgsMapToolCapture capabilities

* fix use of deprecated methods

* also create a virtual handler for QgsMapToolDigitizeFeature::featureDigitized

* more dox

* use const abstract geom in virtual handlers

* add new class QgsMapToolCaptureLayerGeometry to handle layer specific operation in capture map tool

such as avoiding intersections

* allow to add linear geometries on curved geometry layers

* make actions exclusive

* add settings registry to app

* add a registry for shape map tools

* abstract class for shape map tools

* adapt QgsMapToolCapture to correctly support shape map tools

* clean up of QgisApp

* new class QgsMapToolsDigitizingTechniqueManager to handle actions in app related to capture map tools

* clean up QgisInterface

* sipify

* refactoring of existing shape tools

* refactor add ring to fully support capture map tool

* add missing folder to Doxygen

* fix layout

* fix erasing at iterator pos

* fix unused warning

* fix more dox

* fix cpp check warning

* fix unused warning

* fix annotation map tool does not support shape + set tool name

* correctly handle case when the capture is not done on a vector layer (annotation, mesh, …)

* enable shapes in annotation map tool

* correctly undo and clean

* adapt existing shape tests

the deletion test with circular vertices has been dropped since the capture map tool behaves differently

* fix warning

* refactor fill ring to support shape digitizing

* fix win build

* fix more tests

* avoid detach warnings

* fix app test + clean up

* harmonize new settings with existing ones

* fix categories

* support adding multi lines as a part

* fix adding curve part to multi line

* also handle points

* code a bit clearer

* cast not always valid

* allow adding curved polygon to multipolygon

* add test for QgsGeometry::addPart with curved parts on non-curved geoms (lines and polygons)

* fix with Python < 3.9

* better dox for deprecated interface actions methods

* remove files leftover

* remove leftover circular string curve point tool

* add default Z/M values when calling QgsGeometry::coerceToType

* Apply suggestions from code review

Co-authored-by: Nyall Dawson <nyall.dawson@gmail.com>

* fixes from review

* move layer specific part to specific tool

* fix typo

* fix leak

* fix dox

* fix segmentization

* call map tool implementation of addCurve when adding trace curve to avoid point duplication

* call sub-class implementation

* fix since 3.24 -> 3.26

* fix test

* add test to avoid extra curves when using tracing

* fix headers

Co-authored-by: Nyall Dawson <nyall.dawson@gmail.com>
2022-02-22 07:59:50 +01:00
Nyall Dawson
a169055277 [processing] Improve UX when saving models
- When saving a model to a file, don't require that the model already
has a name entered. Instead, if no model name has been entered then
set the model name automatically to match the selected save filename.
E.g. if the user saves the model as "Process incoming features.model3",
then the model name will be set to "Process incoming features".
- When first saving a model, IF the user HAS already entered a model
name then make the default file name suggested by the dialog match
this model name
2022-02-05 11:05:51 +10:00
nirvn
f223ef2112 Address review and tests failure 2022-01-30 16:36:06 +07:00
Denis Rouzaud
e2a80d97fe use a current CaptureTechnique in QgsMapToolCapture
QgisApp has been adapted to switch between the different techniques
2022-01-28 06:30:23 +01:00
Nyall Dawson
89524fc565 Add missing file 2021-12-22 08:29:27 +10:00
Nyall Dawson
86794dabdc Fix interface for QgsProcessingParametersGenerator was modified for
the python subclasses only and no longer correctly overrides the
base class method
2021-12-16 11:15:34 +10:00
Nedjima Belgacem
826c6a7c36
Disble layer rendering to 3D terrain texture for 3D rendered layers (#44367)
* add optional layer rendering to 3D terrain

* remove terrainLayers from Qgs3DMapSettings

* fix tests

* switch to layer terrain rendering when no 3d renderer is set

* fix mesh tests to handle terrain being disabled
2021-08-11 11:38:59 +02:00
Nyall Dawson
61c842165d Commit missed file 2021-07-13 06:39:11 +10:00
Nyall Dawson
d0beaae3a4 Move QgsSublayersDialog::PromptMode enum to Qgis and rename 2021-07-13 06:39:11 +10:00
Denis Rouzaud
e7ccf1fcc6 also do non scoped enums 2021-05-31 09:36:21 +02:00
Damiano Lombardi
9fdcda41fa Added test for QgsJsonEditWidget 2021-05-10 22:54:44 +02:00
Nyall Dawson
ef94191d70 Dox 2021-03-25 04:48:31 +10:00
Nyall Dawson
207be1dd66 Add mechanism for QgsMapLayerConfigWidgetFactory to create sub widgets
which are embedded into the raster layer temporal properties widget
2021-03-25 04:48:31 +10:00
Nyall Dawson
4faceaf0d7 Add api to indicate that a QgsMapLayerConfigWidgetFactory factory
creates sub-components of a standard page instead of a top-level
page on its own
2021-03-25 04:48:31 +10:00
Ivan Ivanov
891c89ae2a rename QgsBasicRelationWidget--> QgsRelationEditorWidget 2021-01-06 16:01:39 +02:00
Ivan Ivanov
51cd712c76 Add relation widget registry 2020-12-30 04:46:51 +02:00
vcloarec
abc112befc typo and spelling 2020-10-19 14:53:08 +10:00
Peter Petrik
d9f18ccb9c
Fix spelling (#37849)
fix the spelling errors
2020-07-21 12:51:48 +02:00
Nyall Dawson
d5a340f886 [processing] Port aggregates widget wrapper to c++
And add a TON of tests

Fixes #36843
2020-06-03 15:17:56 +10:00
Nyall Dawson
ef01c3c29d Dox 2020-05-22 08:40:51 +10:00
Nyall Dawson
3ebd09724b Add framework to allow for flexible interaction blocking with map canvas 2020-05-22 08:40:51 +10:00
vcloarec
267af1e7fb temporal match methods 2020-05-21 05:54:24 +10:00
Alessandro Pasotti
5d720fbb5f Enum class for ColumnDataIndex + constraints 2020-04-03 21:21:14 +10:00
Denis Rouzaud
ed7c73fb3f add init methods for clarity 2020-03-26 14:55:50 +01:00
Denis Rouzaud
6e55bd5ea5
use Q_ENUM macro in QgsFileWidget (#34665)
this will allow configuring properly the custom widget
2020-02-25 22:48:27 +01:00
Nyall Dawson
dac7259b46 [needs-docs] Rework new project CRS handling
The previous approach was severely broken, because the default
CRS for new projects setting was ignored as soon as a layer
was added to the project.

Instead, refine the setting to add options
- "Use CRS from first layer added": same as previous behavior,
the project CRS is set to match the first layer added to a new
project
- "Use a default CRS": CRS for a new project is set to a preset
default CRS, and is left unchanged when adding layers to the
project

Also update qgis_global_settings.ini to reflect these changes.

Fixes #27516
2019-05-30 06:28:32 +10:00
Denis Rouzaud
f680466bf7 [FEATURE] add toolbar in attribute table to browse feature list
arrows allow browsing the feature list in the attribute table in form view
the current edited feature can be highlighted and the map canvas automatically panned or zoomed
2019-05-15 06:52:08 -05:00
Denis Rouzaud
60682885c0
Small tweak to enum Python docs (#9631)
original credits to @nyalldawson
2019-03-26 14:00:37 -05:00
Denis Rouzaud
38c2d4a03d fix dox for unnested enums 2019-03-24 21:40:33 -05:00
Denis Rouzaud
375a0aa253 create scope based enum for QgsMapLayer::LayerType >> QgsMapLayerType
the enum is moved out of the class
this will allow forward declaration more easily since the enum is not nested in the class
2019-03-24 21:40:33 -05:00
Denis Rouzaud
0e5c91234f add missing new line 2019-03-08 12:00:02 +01:00
Denis Rouzaud
20883c9532 run sipify 2019-03-07 21:07:53 +01:00
signedav
b3e4755e2e Enum Mode in QgsAttributeEditorContext
instead of QgsAttributeForm - because it's used on places not including QgsAttributeForm
now it's able to use @form_mode in expressions of containers and QML widgets
2018-09-11 12:14:20 +02:00
Nyall Dawson
69ab3c9e0c Start on history item 2018-07-16 11:38:13 +10:00
Denis Rouzaud
164f662dc0 fix sipify and run 2018-06-03 11:07:09 -08:00
Denis Rouzaud
e5b02cd2a8 use dedicated files for auto additions 2018-06-03 11:07:09 -08:00