6841 Commits

Author SHA1 Message Date
Nyall Dawson
a9d6b04f77 [browser] Refine refreshConnections method to avoid triggering a full
refresh of ALL browser content

Instead limit refresh to the provider associated with the item only
(and provide a means for items to refresh a different provider, e.g.
to allow the geopackage connection item to be refreshed when a
new connection is added through a directory item)

Fixes #37007
2020-06-09 19:49:15 +10:00
Nyall Dawson
154a4995e0 [api] Optionally allow items in QgsMapLayerModel to be reordered via drag and drop 2020-06-09 11:38:16 +10:00
Nyall Dawson
e81af2c9e1 [processing] Add metadata setting for file destination parameters
to avoid file overwrite confirmation prompt

Fixes #37011
2020-06-09 04:02:32 +10:00
Nyall Dawson
777c75bccd Revise advanced effects warning to account for GeoPDF capabilities
when exporting canvas to GeoPDF
2020-06-08 13:30:06 +10:00
Nyall Dawson
8d38aa2c15 Respect layer opacity and composition modes where possible when exporting GeoPDF
Fixes #33305
2020-06-08 13:30:06 +10:00
vcloarec
9f75860425 fix sip 2020-06-08 09:20:45 +10:00
vcloarec
15132730af set time step when first loading meshlayer 2020-06-08 09:20:45 +10:00
Mathieu Pellerin
404187d277 Revert a Qgis -> QGIS change, the doc was referring to the actual Qgis class name 2020-06-08 09:12:21 +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
09a36c3f6d fix UI and use invalidate rather than reset model 2020-06-06 09:22:38 +02:00
Denis Rouzaud
558e0b6ce8 use filters rather than list of layer types 2020-06-06 09:22:38 +02:00
Denis Rouzaud
d311aef8c7 add static method to test if layer matches QgsMapLayerProxyModel::Filters 2020-06-06 09:22:24 +02:00
Denis Rouzaud
97862bbc15
make QgsLocalizedPathRegistry thread safe (#36865) 2020-06-05 17:05:41 +02:00
Denis Rouzaud
91f71f51e9 fix dox + sip 2020-06-05 16:18:16 +02:00
Denis Rouzaud
3322d2bb64 add QgsLayerTreeFilterProxyModel to easily use a layer tree 2020-06-05 14:21:30 +02:00
Matthias Kuhn
a741700013
Merge pull request #36909 from m-kuhn/offline_editing_style_copy
Fix styles are not copied in offline editing
2020-06-05 07:27:02 +02:00
Nyall Dawson
8fb8e45d51 Ensure that fields required by marker symbol backgrounds for labels
are fetched when rendering

Fixes #36944
2020-06-05 08:53:06 +10:00
Nyall Dawson
d74715c310 Add metadata to project for last save datetime alongside the existing
last saved username details
2020-06-05 08:41:00 +10:00
Nyall Dawson
1d995840ec Add API to set an "original path" for QgsProject
This is intended for use with non-qgs/qgz project files
(see QgsCustomProjectOpenHandler) in order to allow custom project open handlers
to specify the original file name of the project. For custom project formats,
it is NOT appropriate to call setFileName() with the original project path, as
this causes the original (non QGIS) project file to be overwritten when the
project is next saved.
2020-06-05 08:41:00 +10:00
Matthias Kuhn
68574d9835 [api] Add QgsMapLayerStyleManager::copyStylesFrom 2020-06-03 14:37:57 +02:00
Nyall Dawson
4fdfa949cf [processing] Start porting Aggregates parameters to C++
Port parameter type to c++
2020-06-03 15:17:56 +10:00
Even Rouault
b4f5b48b35
Merge pull request #36873 from rouault/cppcheck_gh_action
Fix remaining cppcheck warnings, add scripts/cppcheck.sh and corresponding GH workflow jobs
2020-06-03 00:17:47 +02:00
vcloarec
9fec5262b0 update SIP 2020-06-03 06:10:10 +10:00
Even Rouault
729a2f1482
regenerate qgslayertreenode.sip.in 2020-06-02 13:56:22 +02:00
Juernjakob Dugge
4094d1800d Re-center the map when zooming with active scale lock
Fixes #30023
2020-06-02 14:23:07 +10:00
Nyall Dawson
eee4327168 Add "contains" method to QgsObjectCustomProperties, improve dox, add tests 2020-06-02 11:32:14 +10:00
Nyall Dawson
4a125f607f Reduce number of expression evaluations in legend rendering
...by caching previous results and using them, until the layout is refreshed
2020-06-02 11:32:14 +10:00
Nyall Dawson
c77436d71e Dox 2020-06-02 08:43:54 +10:00
Nyall Dawson
dbe9aa0902 [processing] Port Refactor Fields to c++
Having this core algorithm in Python has proved just too unreliable

Refs #36706, refs #36843
2020-06-02 08:43:54 +10:00
Nyall Dawson
191e362ed4 Move FieldMapper parameter type to c++
Fixes sip "forgeting" about Python overrides for the type definition

Refs #36706
2020-06-02 08:43:54 +10:00
Nyall Dawson
95387cfa3b Add map support to QgsProcessingUtils::variantToPythonLiteral 2020-06-02 08:43:54 +10:00
Even Rouault
6fd336ce02
effects: mark assignment operator as deleted due to existence of copy constructor 2020-06-01 23:46:05 +02:00
Even Rouault
98d7b99d71
diagram: mark assignment operator as deleted due to existence of copy constructor 2020-06-01 23:46:05 +02:00
Alessandro Pasotti
d82c3fe5ad Remove uniqueFields from Python bindings 2020-05-29 13:40:34 +02:00
Alessandro Pasotti
fa7177a056 UNIQUE fields detector for sqlite based providers
This is a temporary solution for OGR because we expect
to use the native GDAL implementation in GDAL 3.2.

For now a new method QgsSqliteUtils::uniqueFields
used by spatialite and OGR/GPKG is used to detect
UNIQUE constraints on single fields.
2020-05-29 13:40:34 +02:00
Nyall Dawson
23396b7c86 [symbology] Don't force rasterized output when exporting point pattern fills
This avoids the force conversion to a raster based pattern which currently occurs
when exporting maps/layouts to a vector format (e.g. PDF). The raster pattern
results in considerable quality loss, and the tiling edges of the raster brush
can sometimes be seen in outputs.

Additionally, fixes render corrupt when marker subsymbols have data defined properties
which affect the marker shape, such as data defined rotation or sizes

Refs #16100 (still needs fixing for line fill symbols)
2020-05-28 11:49:59 +10:00
Matthias Kuhn
38673f5a7f
Merge pull request #36200 from olivierdalang/self_snap
[feature] Snapping also snaps to the currently digitised feature
2020-05-26 14:54:26 +02:00
olivierdalang
47fdd4b4d1 [selfsnap] apply pr review 2020-05-26 11:15:13 +02:00
Ivan Ivanov
563ab0330f Fix: make "Part" struct dependent definitions private 2020-05-26 11:06:13 +10:00
Ivan Ivanov
899d3febad [Symbology][Feature] Allow centroid fill markers to be clipped within current polygon or polygon part 2020-05-26 11:06:13 +10:00
Andrea Giudiceandrea
5075e4433b Fix QgsGeometry constParts() example code
it wrongly refers to parts() instead of constParts()
2020-05-26 06:54:23 +10:00
Nyall Dawson
7e8d27e657 Make API a little more future-proof 2020-05-25 13:37:34 +10:00
Alessandro Pasotti
5aea8ed2b7
Merge pull request #36620 from elpaso/bugfix-gh36583-change-attr-values
Bugfix gh36583 change attr values
2020-05-22 08:11:16 +02:00
Nyall Dawson
93648dd552 Add Python repr for QgsVertexId 2020-05-22 15:32:44 +10:00
olivierdalang
66ebe34004 [feature][selfsnap] add snapping to currently digitized feature for capture tool 2020-05-21 21:58:18 +02:00
Alessandro Pasotti
25d3052fa0 Sipify 2020-05-21 15:50:01 +02:00
nirvn
de799721aa Map decoration cleanup:
- code simplification (moving displayName() to the core class
prevents us having to create lists of DecorationItem alongside
lists of MapDecoration
- Proper translation support for decoration names
2020-05-21 09:05:28 +10:00
vcloarec
267af1e7fb temporal match methods 2020-05-21 05:54:24 +10:00
Nyall Dawson
ef97e8c6fc [symbology] When rendering features, split the geometry fetching
and preparation stage from the symbol layer rendering stage, and
ensure that QgsSymbolLayer::startFeatureRender and ::stopFeatureRender
is correctly called in the right sequence when rendering multi-layer
symbols

This fixes issues with symbol layers which rely on startFeatureRender
and stopFeatureRender to correctly render, e.g. the Random Marker Fill
symbol layer.

Before this fix, the logic looked like:

- for every symbol layer in the symbol, call startFeatureRender
- for each part in polygon, prepare the part geometry and then render each symbol layer
- for every symbol layer in the symbol, call stopFeatureRender

The issue with this approach is that symbol layers which defer
rendering to the stopFeatureRender stage are always rendered
after ALL other symbol layers in the symbol, regardless of the actual
order of the symbol layers. Ultimately this causes Random Marker Fill
layers to always render on the top of symbols.

The new logic is:
- for each part in polygon, prepare the geometry and store the result
- for each symbol layer in the symbol:
   - call startFeatureRender
   - render the layer using each of the previously prepared parts
   - call stopFeatureRender

This results in correct stacking of the random marker fill in multi
layer symbols, because the stopFeatureRender call is correctly called
before the next layer's startFeatureRender and renderPolygon calls

Also, use QVector instead of QList for rings for improved efficiency
2020-05-20 17:09:48 +10:00