845 Commits

Author SHA1 Message Date
Alessandro Pasotti
cd4785de9e A few UX enhancements for error reporting on GPKGs
This fixes #36574 by showing an error in the data
items when the layer cannot be opened.

In the same way, similar errors now bubble up
to the message bar from data source select dialog.
2020-06-09 08:25:46 +10:00
Denis Rouzaud
ce17f7fa78
Merge pull request #37000 from 3nids/layer-tree-filter-proxy
Use a filter proxy model for the dependencies layer tree
2020-06-06 13:05:03 +02:00
nirvn
291ba7f2dc {Qgis,QGis} -> QGIS 2020-06-06 17:45:43 +07:00
Denis Rouzaud
961ffcc94e use QgsLayerTreeFilterProxyModel for layer dependency tree 2020-06-05 14:21:30 +02:00
Nyall Dawson
6b27958948 Fix "zoom" and "flash" features buttons have no effect when opening
filter mode in attribute form

(For reference: not a regression -- these buttons were originally
added for the "select by form" dialog only, and they've just never
been hooked up for use inside the attribute form itself!)

Fixes #34506
2020-06-05 08:52:45 +10: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
0495251355 Move help button creation to correct place 2020-06-02 16:48:36 +10:00
Juernjakob Dugge
4094d1800d Re-center the map when zooming with active scale lock
Fixes #30023
2020-06-02 14:23:07 +10:00
uclaros
43e3e63bec
Support for polygons with holes in QgsRubberBand
Added support for polygons with holes to QgsRubberBand
Fixes #34399
2020-06-02 09:12:54 +10:00
Nyall Dawson
4c2f2c09a2 [processing] Correctly expose complete expression context for use
in Refactor Field expressions
2020-06-02 08:43:54 +10:00
Nyall Dawson
f0bb647c61 [processing] Add a stable way to get processing widgets to stretch vertically 2020-06-02 08:43:54 +10:00
Nyall Dawson
146094f6b2 [processing] Port field mapper wrapper and widget to c++
Fixes #36706
2020-06-02 08:43:54 +10:00
Nyall Dawson
251dec51e8 [processing] Correctly close algorithm dialog when escape key pressed
Fixes #36777
2020-05-29 18:31:01 +10:00
Alexander Bruy
d2f72e87af update SIP bindings 2020-05-29 08:14:46 +10:00
Even Rouault
160c6bfc9d QgsFileWidget: use QgsFocusKeeper added per PR #36722 2020-05-27 04:40:56 +10:00
Nyall Dawson
ea326827ae Move 'coordinate capture' functionality to map canvas
Instead of requiring users to enable the core c++ plugin 'Coordinate Capture'
in order to copy coordinates for a map point, instead add this functionality
to a map canvas right click context menu.

Now, when compatible map tools are activated (pan, zoom, select by rect), right clicking
on the canvas shows a context menu with a "Copy Coordinate" submenu. The
submenu shows options for copying the coordinate in the map CRS, WGS84 or
a custom preset CRS.

Also adds API to allow 3rd party QgsMapTool subclasses to implement their own
context menus which include this Copy Coordinate action.
2020-05-26 13:51:41 +10:00
Nyall Dawson
66b260d7c4 Add unit test for message bar push/pop logic, also test that items
are correctly deleted when dismissed
2020-05-26 12:41:35 +10:00
Nyall Dawson
32274ed1a7 Cleanup headers, dox++ 2020-05-26 12:41:35 +10:00
Nyall Dawson
5dd29f065e Speed up message bar operations when many messages are shown
Avoid unnecessary calls to setStyleSheet, which is slow when many
message bar items exists

Refs #29698
2020-05-26 12:41:35 +10:00
Mathieu Pellerin
ee9dadbd64
[ui] Make temporal controller's forward, backward and pause
buttons behave as animation state toggle
2020-05-23 09:35:18 +07:00
Nyall Dawson
3ebd09724b Add framework to allow for flexible interaction blocking with map canvas 2020-05-22 08:40:51 +10:00
Nyall Dawson
180ec5389b Sipify 2020-05-20 12:40:40 +10:00
Nyall Dawson
4744696d5a Correctly update temporal properties widgets after loading styles 2020-05-20 03:47:59 +10:00
gacarrillor
8a7feeddbb [processing] Destroy widgets from an algorithm dialog as soon as it is rejected 2020-05-18 09:28:55 +10:00
Ivan Ivanov
576c2f3ff8 Fix docs and other code review fixes 2020-05-18 09:24:55 +10:00
Ivan Ivanov
8ff229e330 Add the filename to the "Select Layers to Add.." 2020-05-18 09:24:55 +10:00
Denis Rouzaud
8866021fe1
[layout] add missing interface to set atlas feature (#36432) 2020-05-15 11:09:25 +02:00
Matthias Kuhn
0617e52f19
Merge pull request #35875 from olivierdalang/tracing_curves_prototype
[feature] Curved geometries support for trace tool
2020-05-15 08:57:06 +02:00
Nyall Dawson
db1062cdad [FEATURE][temporal] Add ability to export animation frames
Allows exporting of temporal animation frames to successive images,
for later stitching together in an external application.

Users have precise control over the image size and map extent.
2020-05-15 16:10:53 +10:00
Julien Cabieces
80a2fe4dd5 Fixes #34457 SIP QgsHighlight class declaration 2020-05-15 07:11:57 +10:00
signedav
160063a4dd
Merge pull request #36188 from signedav/filterfix
Avoid long loading in attribute table on model change
2020-05-13 22:27:16 +02:00
Nyall Dawson
f845189bde [feature][temporal] Add mode where start and end date are defined by expressions
Allows for handling any kind of corner case, e.g. start/end time in custom
string type fields, start/end time using numeric offsets from a reference
date, etc.

Fixes #36319
2020-05-13 20:20:00 +10:00
Alexander Bruy
c93049afd1 add "Selection" toolbar to the QGIS main window and move all
selection-related actions to it (fix #21045, refs #20350)
2020-05-13 10:18:47 +10:00
Julien Cabieces
0fa4718cff make helpText const
Co-authored-by: Matthias Kuhn <matthias@opengis.ch>
2020-05-13 08:39:04 +10:00
olivierdalang
16c9a58593 [tracing curves] (sip) 2020-05-12 17:55:40 +02:00
David Signer
c6823d8dd4 split the disconnecting and connecting on filtermodel change to methods, so the disconnect can be called on qgsdualview before the reload of the layer without doing an invalidate() (called in setFilterMode of the qgsattributetablefiltermodel) 2020-05-11 11:33:52 +02:00
Alexander Bruy
65dfb2221e allow defining fields directly in the new scratch layer dialog (fix #24397) 2020-05-09 11:01:55 +03:00
Martin Dobias
49f832a24d Added widget wrapper, added two separate algorithms (xyz + mbtiles) 2020-05-08 12:55:08 +02:00
Nyall Dawson
d98defec1a [feature] Add basic temporal handling support for vector layers
This exposes some basic temporal capabilities for vector layers:
- static time range for layer (to match raster layer possibilities), this
sets a single static time range which applies to the whole layer. ALL
features from the layer will be shown whenever the canvas time
overlaps the layer time range
- "Single field with datetime": Allows selection of a single date
or datetime field from the layer. Features will be shown whenever
this field value is within the canvas time range
- "Separate Fields for Start and End Date/Time": Allows selection
of start and end date/datetime fields from the layer. Features will
be shown whenever the time interval calculated from these fields
overlaps the canvas time range

Some known limitations/inefficiencies:
- currently only date/datetime fields can be used. This was done
to simplify the format handling and avoid the need to worry about
string fields with different datetime formats. In future we should
allow selection of string fields and allow users to enter a custom
datetime format string
- unlike the Time Manager plugin approach, the approach taken here
is to rely completely on QGIS expressions and feature requests to
do the filtering (Time Manager uses layer filter strings and attempts
to set a native SQL filter syntax so that filtering is done on the
backend). This is intentional, because it provides a unified filter
approach regardless of the provider used (i.e. we don't need to worry
about the different SQL syntaxes used natively by the different
providers). The beauty of feature request expression compilation
**should** mean that the QGIS expressions are magically turned into
native backend queries, BUUUUUUUUUUUT... because we lack QGIS expression
support for date time literals, we currently rely on the "to_datetime"
expression function and coerce everything through strings. None of
the expression compilers handle this function, so currently ALL
filtering is done on the QGIS side. We need to add functions for
optimised datetime literal creation, and then ensure that the different
compilers correctly map these literals across to the backend
filter syntax to allow all the filtering work to be done on the database
side...

So currently, performance is much worse with large layers compared
to Time Manager. But, the advantage is that we can use the native
temporal framework and have vector layers animated alongside mesh
and raster layers!
2020-05-08 11:46:46 +10:00
Alexander Bruy
df4bf42ae5 add ability to specity setting additional Options flags for QFileDialog
in the QgsFileWidget

For example in some cases hidding filter details is useful to prevent
expanding combobox popup to the whole screen when long filter string is
used.
2020-05-08 09:44:45 +10:00
Matthias Kuhn
10713ddfa0
Merge pull request #36240 from troopa81/fix_snaptogridcanvasitem
Fix SIP QgsSnapToGridCanvasItem class declaration
2020-05-07 09:35:54 +02:00
Denis Rouzaud
37efb4d598
Merge pull request #35382 from 3nids/dnd-across-qgis-instances
[FEATURE] allow to drag'n'drop layer across several QGIS instances
2020-05-06 16:04:07 +02:00
Julien Cabieces
985f86f1d7 Fixes #36033 : add sip specific class declaration to QgsSnapToGridCanvasItem 2020-05-06 15:47:48 +02:00
Denis Rouzaud
7e0c438b9c
enhance sorting capabilities in attribute table list/form view (#36199) 2020-05-06 06:45:22 +02:00
Denis Rouzaud
c22c73dde2
allow fetching all features in QgsFeaturePickerWidget (#36193)
and more documentation
2020-05-05 11:08:56 +02:00
Denis Rouzaud
01f766255b layer tree model can emit messages which will be shown in the message bar 2020-05-05 09:25:31 +02:00
David Signer
0290b8c7da timer on reload visible features (according to extend) and on filtering features (according to filter) to avoid long reload time in case a signal (like featureAdded) is called multiple times in short period 2020-05-05 07:35:50 +02:00
Germán Carrillo
76a8f8270a Expose addTabifiedDockWidget through QgisInterface 2020-05-03 15:34:46 +10:00
Denis Rouzaud
dd560f49b3
move the logic to save line edit state to QgsLineEdit (#36117) 2020-05-01 14:17:58 +02:00
Denis Rouzaud
3fd45ecaff add browsing buttons 2020-04-30 09:41:05 +02:00