249 Commits

Author SHA1 Message Date
Nyall Dawson
18fd0bbbbf Create QgsGeometryWidget
A new widget which stores a referenced geometry value, and provides
handy methods for copying the value as WKT or GeoJSON, pasting
a WKT/GeoJSON value from the clipboard, or clearing the geometry
2023-02-21 06:01:44 +10:00
Nyall Dawson
04851d5b75 Sip updates 2023-02-06 09:45:26 +01:00
Mathieu Pellerin
7b102b9703 [gui] Brand new QgsMediaWidget to for playing audio or video files 2023-01-27 08:40:16 +10:00
Vincent Cloarec
3ca858af66
Global map terrain shading (#51535)
* QgsShadingRendering and pipe to render global elevation map

* gdal utils with datatype and resampling method enum

* raster layer elevation map

* optimize raster elevation map with rotation

* handle  no data value in the map elevation raster pipe

* mesh layer and some little fixes

* fix nodata and hillshading z factor

* render shading on layout

* activate/deactivate the shading from ui

* shading only for layer that have elevation

* apply Z scale and offset of layer elevation properties

* ui settings

* allow elevation from point cloud even edl is deactivate for pointcloud

* fix ui

* sipify

* Shading renderer widget in styling panel

* icone for shading renderer settings widget

* two methods to combin elevation

* rewording

* remove check box at the bottom of canvas

* use band of elevation properties

* fix styling pannel

* render shading in layout

* keep EDL point cloud shading individually

* add shading rendering tests

* add missing code for local EDL for point cloud

* shading inactive by default

* rework raster layer resampling

* improve nodata in elevation map

* don't allow elevation map with != size to be combined

* remove EDL from point cloud

* renaming

* sipify

* colorize tests

* renaming

* RGB32

* renaming leftover

* some ui fixes

* fix border for EDL alg

* fix EDL closed next to nodata value

* fix first shading when activated

* renaming and typo

* fixes for doc, doxygen, indentation and spelling

* remove leftover member

* fix clang-tidy

* fix edl tests

* fix dll export

* minor fixes

* adapt images of tests

* fix narrowing

* fix indentation

* sipify

* WIP

* minor ui changes
2023-01-26 15:02:16 +01:00
Alessandro Pasotti
0523c661c6
Merge pull request #51502 from elpaso/spacer-widget
Spacer widget for drag & drop attribute forms
2023-01-18 09:12:34 +01:00
Nyall Dawson
923abcb2e9 New dialog for creating relationships on a database connection 2023-01-17 05:06:09 +10:00
Alessandro Pasotti
6cd867eb19 Spacer widget for Drag&Drop attribute forms 2023-01-16 15:59:04 +01:00
Alessandro Pasotti
bed001f9f3
Merge pull request #51323 from elpaso/text-widget
Text widget
2023-01-15 09:46:34 +01:00
Sandro Mani
caadcb42e8 Move QgsProviderSublayersDialog to GUI 2023-01-03 11:34:52 +01:00
Alessandro Pasotti
e9b5c3a358 Sipify 2022-12-29 10:34:14 +01:00
Nyall Dawson
2a0fc591f7 Cleanup qgsmaplayeractionregistry.* files and split into modular files
per class
2022-11-23 08:25:33 +01:00
Nyall Dawson
8fefb8a010 Move action files to subdirectories 2022-11-23 08:25:33 +01:00
Alessandro Pasotti
8e0a5e1cbe Address PR comments 2022-11-09 09:46:13 +10:00
Alessandro Pasotti
0bcb75ff1b Missing sip includes 2022-11-09 09:46:13 +10:00
Alessandro Pasotti
62dff87ccf RAT GUI 2022-11-09 09:46:13 +10:00
Alessandro Pasotti
6184bd6f29 RAT model inital implementation 2022-11-09 09:46:13 +10:00
Nyall Dawson
1e18322722 Add QgsCodeEditorR code editor subclass for R scripts 2022-10-22 18:46:41 +10:00
Alessandro Pasotti
b75997e217 No renderer 2022-10-22 08:52:37 +10:00
Alessandro Pasotti
d5559be0ba Sipify 2022-10-22 08:52:37 +10:00
Sandro Mani
6452390080 Move QgsVectorTileLayerProperties to gui 2022-09-15 09:27:55 +10:00
Alessandro Pasotti
c87be21c07 SIP 2022-09-07 08:25:45 +02:00
Alessandro Pasotti
7cab873eac Address PR review comments and add model tests 2022-09-06 15:50:34 +02:00
Alessandro Pasotti
afcea83bd3 GUI doxy 2022-09-05 11:31:33 +02:00
Nyall Dawson
22edb68eac Introduce QgsScreenHelper
A utility class for dyanmic handling of changes to screen properties
2022-08-16 12:25:52 +10:00
Samweli
8846a1a265 refomartted updated provider files 2022-05-03 15:58:19 +10:00
Samweli
9fc2f58e71 updated the owssourcewidget to only update ows layers bbox 2022-05-03 15:58:19 +10:00
Samweli
d05e628ea8 set source uri when source widget is available 2022-05-03 15:58:19 +10:00
Samweli
5e7e0ae3d3 updated the raster layer properties dialog and wcs provider to accommodate adding an ows provider source widget 2022-05-03 15:58:19 +10:00
Nyall Dawson
4eede35d55 Allow any symbol to be an animated symbol
Users can now indicate that a symbol should be treated as a animated
symbol, through the new "Animation Settings" option in the symbol
widget's Advanced menu.

This settings panel allows users to enable animation for the symbol
and set a specific frame rate at which the symbol should be redrawn.
When enabled, the @symbol_frame variable can be used in any
symbol data defined property in order to animate that property.

For instance, setting the symbol's rotation to the data defined
expression

    @symbol_frame % 360

will cause the symbol to rotate over time. (with rotation speed
dictated by the symbol's refresh rate)
2022-04-09 18:14:44 +10:00
Nyall Dawson
2ee10c1327 Rename QgsPlotToolPan file 2022-04-07 19:22:19 +10:00
Nyall Dawson
62450ec373 Move files to elevation directory 2022-04-07 19:22:19 +10:00
Nyall Dawson
cf5c82c400 Implement zooming actions and tools for plots 2022-04-07 19:22:19 +10:00
Nyall Dawson
6480b974d7 Implement plot panning and zoom
With all the usual interaction, e.g.

- middle mouse button + drag = pan
- hold space + drag = pan
- wheel = zoom
- ctrl + wheel = smooth zoom
2022-04-07 19:22:19 +10:00
Nyall Dawson
2653f5146f Implement plot panning by drag 2022-04-07 19:22:19 +10:00
Nyall Dawson
52509be814 Condense excessive class heirarchy, fix unit test 2022-04-07 19:22:19 +10:00
Nyall Dawson
141f7bf9f2 Plot wip 2022-04-07 19:22:19 +10:00
uclaros
280b7cc00c fail on missing attributes, remove unused functions, sip 2022-03-18 10:40:36 +10:00
Nyall Dawson
b50232a5af Add QgsTableView subclass of QTableView for adding QGIS specific
tweaks on top of the base class
2022-03-15 13:16:25 +10:00
Nyall Dawson
092279e90d [feature] Run batch processing steps in tasks
Instead of forcing all steps in the batch processing dialog to execute
in the main thread, we now run each step as a separate task whenever
possible. This keeps the UI nice and responsive, and permits
responsive cancelation and progress reporting.

Individual steps are still run sequentially, not in parallel (yet!)
2022-03-15 11:44:08 +10: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
9c4bcf0092 Add widgets for creation of field domains 2022-02-20 06:48:03 +10:00
Denis Rouzaud
83c5e6fe04 add new class QgsMapToolCaptureLayerGeometry to handle layer specific operation in capture map tool
such as avoiding intersections
2022-01-28 06:30:24 +01:00
Nyall Dawson
0ad1324780 Split off part of custom projection dialog into reusable
QgsCrsDefinitionWidget widget
2022-01-11 19:50:46 +10:00
jakimowb
d7bf988817
Expose QgsFieldCalculator to public API (#46748)
* shows QgsFieldCalculator in public API

* removed unnecessary comment

* QgsFieldCalculator:
made public slots private and added code documentation

* fixed doc string

* Apply suggestions from code review

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

* updated sip file

Co-authored-by: Nyall Dawson <nyall.dawson@gmail.com>
2022-01-08 16:28:27 +01:00
Nyall Dawson
5e5540c890 [processing] Port algorithm log to new history provider API
No user visible changes, but we gain the flexibility for better
history storage, including the ability to store the outputs
calculated by the algorithm execution...!
2021-12-21 15:32:57 +10:00
Nyall Dawson
6783347896 Implement framework for history providers
As per https://github.com/qgis/QGIS-Enhancement-Proposals/issues/130
2021-12-21 15:32:57 +10:00
bdm-oslandia
345dd4dd87 fix: replace referer http header by dedicated class QgsHttpHeader 2021-12-02 11:16:53 +10:00
Denis Rouzaud
1b96632606 fix build + sip 2021-11-12 09:24:41 +01:00
Denis Rouzaud
93bb188e2a add python bindings 2021-11-09 14:13:52 +01:00
Nyall Dawson
db4b0fed86 Move to core 2021-09-24 15:47:10 +10:00