1179 Commits

Author SHA1 Message Date
Tudor Barascu
627f43b495
Add Icon for "Select within distance" + add it to Vector -> Research Tools menu under "Select by location" (#50446)
* add Select within distance icon

* add select within distance to Vector -> research Tools Menu

* rework image according to review

* align image to grid
2022-10-25 10:35:02 +07:00
Nyall Dawson
42cfcbd5e0 Fix broken path in svg raises Qt warnings while rendering 2022-09-29 08:41:07 +02:00
Nyall Dawson
f1cb8eb62e Better icon for relationships in browser 2022-08-15 12:28:10 +10:00
Nyall Dawson
484e1e6b0c Better icon 2022-07-18 12:50:18 +10:00
Nyall Dawson
14bf57d36a [feature] Add "Font" tab to options dialog, with setting for users
to configure a set of automatic font name replacements to use
when loading projects or styles

Allows users/administrators to configure a list of alternative fonts
to automatically match when a font referenced by a project/style is
not available on the current system.
2022-06-20 13:01:55 +10:00
Nyall Dawson
dbdacac777 [feature] Add temporal manager support for WMTS layers with TIME dimension
This enhancement exposes any WMTS "time" dimensions for use in the
temporal framework, including allowing these layers to be animated
and controlled via the temporal controller.

There's some complexity involved here, because the WMTS specification
does NOT dictate how a time dimension should be exposed by services.
So different WMTS services are all handling this in different ways,
and we need to try to be as tolerant as possible.

Specifically, WMTS dimension values are just free-form strings, so
I've encountered a range of datetime formats -- e.g. "2021", "20210203",
"2021-02-03", "2021-02-03T12:13:14Z", and even WMS(T) style time
period designations ("2021-01-03T12:13:14/2021-01-05T12:15:11/P10M")!
These different formats all need special handling in order to correctly
interpret them as a date time value, and to be able to re-encode
an arbitrary datetime value back to the format string required
by the service. It's highly likely that we'll encounter additional
format strings when this feature is rolled out, and we'll need to
handle each individually.

When we do detect a time dimension on a WMTS layer, we no longer
expose this in the same way as other non-time dimensions. The browser
panel does not show the dimension values, and adding the layer
via Data Source Manager no longer prompts the user to pick from
the available time values. Instead, these layers are indicated with
a new "time capable raster layer" icon, and are added to a project
WITHOUT the user picking a specific time value.

Just like a WMS(T) layer, when a time-dimension enabled WMTS layer
is added to the project, it will default to the "automatic" temporal
mode, meaning that the layer will follow the temporal controller's
current time range by default. A user can then opt to show a specific
static time value for the layer through the layer's Temporal properties
page, by unchecking "Dynamic Temporal Control" and picking a specific
available time range from the "Predefined date" option. (Basically,
the user interaction and experience with a WMTS time enabled layer
is identical to with a WMS(T) layer).

Fixes #48364
2022-06-18 10:22:48 +10:00
Nyall Dawson
221e63cdfa Add icon to QgsProviderMetada 2022-06-16 13:55:09 +10:00
bdm-oslandia
faa8877160 add new 3Daxis option page in 3d settings
* add Qgs3DAxisSettings class to handle 3d axis parameters
* remove 3daxis configuration from 3d navigation widget
2022-06-02 16:58:30 +02:00
Nyall Dawson
e5c0a14ecd [feature] Add a new classification method for "Fixed interval"
Allows users to create graduated breaks using a specific interval
width for classes (instead of the total number of classes)

Sponsored by SLYR
2022-05-06 13:44:31 +10:00
Alessandro Pasotti
041e18a85c
Merge pull request #48107 from elpaso/db_logger_2
Implementation of QEP: Add SQL Logging in the debugging/development panel
2022-04-28 10:11:31 +02:00
Nyall Dawson
940175fc66 [feature] Add option to render raster and mesh elevation surface levels
using a fill symbol below the elevation surface

This can be easier to interpret in some cases, and helps match expected
symbology conventions in certain disciplines.
2022-04-27 17:30:14 +10:00
Alessandro Pasotti
f388ef7a34 More on query logging 2022-04-26 14:02:27 +02:00
Nyall Dawson
c7cfb40d84 Add action to toggle visibility of layer tree 2022-04-22 13:07:16 +10:00
Nyall Dawson
230d92ad5e [feature] Add a tool to profile dock to generate an elevation profile
for an existing line feature

When active, users can click any line feature on the map to generate
a profile curve along that line. If multiple features are present
at the clicked point then a menu will popup allowing users to
select from these (i.e., same behaviour as the identify tool uses)
2022-04-12 11:33:33 +10:00
Nyall Dawson
19c2c3d3e2 Add a dedicated x-axis zoom tool for elevation profile widget 2022-04-07 19:22:19 +10:00
Nyall Dawson
e33336be5c Remove DB2 Provider
This provider has been marked deprecated and hidden from the UI
for a number of QGIS releases. No maintainers have stepped up
to take over maintainance of this provider, and accordingly it
is now subject for removal.
2022-02-23 15:15:21 +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
nirvn
d41ed99545 [ui] Fix missing array field types in new memory layer dialog (and fix binary field type missing) 2022-01-29 09:04:52 +07:00
nirvn
05d97e6d55 [ui] Fix missing json field type in the new geopackage layer dialog 2022-01-28 20:24:09 +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
Raymond Nijssen
1120335f59 Fix broken QGIS logo and "Made with QGIS" svg files 2022-01-17 08:33:24 +10:00
Joonalai
e0a3a21123 [layouts] use missing_image.png for raster format
(fixes #45481 and #45477)
2021-10-18 08:30:48 +10:00
PeterPetrik
0aaecf30bd minify svgs 2021-09-30 09:33:24 +02:00
PeterPetrik
762373063a add icons for rich editor to default theme 2021-09-30 09:18:29 +02:00
Vincent Cloarec
176ab29658
Make mesh edit tools more consistent with vector layers tools (#45040)
[mesh] UX fixes:
* move mesh elements click->move->click instead press-> drag->release
* allow to select by drawing a polygon and select an existing polygon in the same map tool like for vector layer)
2021-09-14 07:52:25 +02:00
nirvn
a300d3b13c Further tweaks to new text on point annotation icon 2021-09-13 04:18:55 +07:00
nirvn
b6d6707512 [ui] Relocate 'traditional' annotation toolbar actions into the new annotations toolbar 2021-09-13 04:18:55 +07:00
Vincent Cloarec
4e0d0f6692
Select by existing geometries (#45006)
[mesh] [feature] mesh select  element by existing selected polygon
2021-09-10 08:00:55 +02:00
Vincent Cloarec
be3a9e7564
reindex/renumbering mesh layer (#44969)
[mesh] [feature] reindex/renumbering mesh layer

Co-authored-by: PeterPetrik <zilolv@gmail.com>
2021-09-09 12:18:31 +02:00
Vincent Cloarec
46013949fb
Force mesh by polylines (#44962)
[mesh] [feature] allow modify mesh frame elevation by force/break lines
2021-09-09 10:26:32 +02:00
Vincent Cloarec
c917e02aca
transform only one vertex (#44981)
[mesh] [feature] change coordinates of a single vertex
2021-09-09 08:33:02 +02:00
Vincent Cloarec
45e07dd72f
Select mesh elements by expression UI (#44835)
[mesh] [feature] Select mesh elements by expression
2021-09-09 08:29:45 +02:00
Nyall Dawson
ca729cc359 [feature] Add a new "Annotations" toolbar, currently containing
a single action for creating a new annotation layer in a project
2021-09-07 18:44:57 +10:00
Nyall Dawson
0896d5910b Add an icon for annotation layers 2021-09-06 14:50:58 +10:00
Vincent Cloarec
9ce295ebbd
Mesh transform by expression (#44873)
[feature] [mesh] allows the user to make geom transformation of mesh frame by changing the vertices coordinates by expression. Each coordinates (X,Y,Z) of selected vertices can be calculated with an expression allowing transformation of the mesh while the mesh is still valid.

Co-authored-by: Harrissou Sant-anna <delazj@gmail.com>
2021-09-03 08:48:41 +02:00
Vincent Cloarec
781f484908
Mesh editing: Select mesh element by polygon (#44739)
[feature] [mesh] Select mesh elements by polygon

Default behavior: all touched (partially included element) will be selected (green rubber band) (default)
Alt Modifier: only totally included elements will be selected (blue rubber band) (alt + drag)
2021-08-18 10:53:46 +02:00
Nyall Dawson
c7924b0fb1 Move GPS tools "add gpx layer" functionality to Data Source Manager
Moves the functionality from the GPS tools plugin to add GPX layers
to a new "Add GPS Data" page in the data source manager.

(no functional changes!)
2021-08-01 07:47:42 +10:00
Nyall Dawson
ff13047d18 Move GPS icon to standard icons folder 2021-07-30 16:07:36 +10:00
Nyall Dawson
d0f3c26d12 Move new gpx icon to standard location 2021-07-30 14:18:56 +10:00
Nyall Dawson
2fbcf30a4d Add a proper icon for geometry collections 2021-07-22 21:00:30 +10:00
nirvn
2ac66726cb Add icon for curved callouts
(thanks to @DelazJ for the original commit)
2021-07-19 10:34:46 +07:00
Vincent Cloarec
c09443a056
[mesh] mesh frame editing part 3 - Edit mesh map tool (#44037)
[mesh] [feature] add mesh map tool to CRUD/digitize actions for mesh frame (vertices, faces)
2021-07-14 08:00:55 +02:00
Vincent Cloarec
494735a482
create new mesh layer (#43873)
[mesh] [feature] adds a option to create blank/scratch mesh frame (vertices/faces)
2021-07-13 07:37:46 +02:00
Nyall Dawson
d83a7698e2 [feature] Add a "measure bearing" map tool
This tool behaves similarly to the existing "measure angle" map tool,
but requires the user only to click two points on the map and displays
the bearing between these points.
2021-06-19 06:21:27 +10:00
Denis Rouzaud
b1ae357fe8 add small border to QGIS block 2021-06-15 20:43:56 +02:00
Denis Rouzaud
e8efe81642
dev splash with avatars of most active committers (#43702) 2021-06-15 13:02:37 +00:00
Harrissou Sant-anna
4ad57ca6da Add icon for edited features in attribute table 2021-06-01 03:06:22 +02:00
Nyall Dawson
f1b436add8 QIcon linked files are lazily evaluated, so we can't use a temporary
file which is immediately deleted right after the QIcon creation
to store SVG icon content -- instead we need to place the svg in a
temporary folder which exists for the lifetime of the QGIS session
2021-05-17 10:54:44 +10:00
Nyall Dawson
cd6aa7f665 Add parameterized color support to QgsApplication::getThemeIcon
Adds framework to allow for icons which can have dynamic coloring
2021-05-17 10:54:44 +10:00
Nyall Dawson
eb5fd484ff [feature] Add optional (not on by default) layer tree warning icon
for layers with CRS inaccuracies

If the new "Show CRS accuracy warnings for layers in project legend"
is checked by a user, then any layers with a CRS with accuracy
issues (i.e. a dynamic crs with no coordinate epoch available,
or a crs based on a datum ensemble with accuracy exceeding the
user-set limit) will have a new warning icon reflecting that
the layer is a low-accuracy layer.

This is entirely opt-in, and designed for use in engineering/BIM/...
industries where inaccuracies of meter/submeter level are very
dangerous.
2021-05-14 07:24:53 +10:00