17586 Commits

Author SHA1 Message Date
Alexander Bruy
072c76747c fix calculating raster size in the TIN and IDW algorithms to maintain
accurate pixel size (fix #31970)
2020-05-29 11:26:22 +03:00
Alexander Bruy
d2f72e87af update SIP bindings 2020-05-29 08:14:46 +10:00
José de Paula Rodrigues Neto Assis
97e0651555 Be more lenient on accepting SAGA versions
Even though SAGA explicitly does't follow semver conventions, there are
advances, and not all changes on their part break the API. Since the
user is already warned in big letters that versions different from 2.3
are unsupported, in beta status, we've changed the requirement for SAGA
"beta" from 7.3 to everything in version 7.
2020-05-29 03:57:15 +10:00
Nyall Dawson
98603b7866 [plugins] When a user clicks the "Reload all repositories" button
manually in the plugin manager, then force a reload of the repositories
and don't rely on cached copies of the repo manifest

Otherwise it's not possible to force a refresh on certain types of
plugin repositories where it's not possible to modify the Cache-Control
attribute of the repo

Note that to avoid unnecessary server load, we still use cached
copies during startup and by default. It's only when a user explicitly
hits the "Reload all repositories" button that we force a non-cached
fetch.

Fixes #34351
2020-05-29 03:47:39 +10:00
Nyall Dawson
601a717174 Import 3d python library by default in console 2020-05-29 03:44:55 +10:00
Nyall Dawson
1f835dfa9a [3d] Expose 3d algorithms provider to Python
Otherwise this provider cannot be initialized from standalone Python
scripts

Fixes #36661

Also cleanup 3d sip generation by correctly defining SIP_NO_FILE
in headers we don't want to expose, so that the sip_include script
can do its magic
2020-05-29 03:44:55 +10: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
Even Rouault
160c6bfc9d QgsFileWidget: use QgsFocusKeeper added per PR #36722 2020-05-27 04:40:56 +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
Alexander Bruy
2a2fe1e095
Merge pull request #36731 from alexbruy/relief-results
check return value from the QgsRelief and notify user about errors (fix #17452)
2020-05-26 15:02:16 +03:00
olivierdalang
47fdd4b4d1 [selfsnap] apply pr review 2020-05-26 11:15:13 +02:00
Nyall Dawson
adeca2f586 [processing] Fix double-evaluation of warp output parameter
Causes an incorrect warning about layer not being generated to appear
after running the algorithm

Fixes #30095
2020-05-26 15:45:40 +10:00
Nyall Dawson
bd8b94aa53 [processing] Avoid showing raw html tags when reporting that layers could not be generated 2020-05-26 15:45:40 +10:00
Alexander Bruy
5d03f2bb99 check return value from the QgsRelief and notify user (fix #17452) 2020-05-26 08:37:13 +03: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
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
Alexander Bruy
a20fe6f527
Merge pull request #36645 from alexbruy/r-tileset
fix r.tileset Processing GRASS algorithm
2020-05-25 09:04:32 +03:00
Nyall Dawson
97d098884a Fix oriented minimum bounding box calculation is wrong in some cases
Fixes #36632
2020-05-25 13:37:58 +10:00
Nyall Dawson
7e8d27e657 Make API a little more future-proof 2020-05-25 13:37:34 +10:00
Alexander Bruy
683f69c6cf add ext module for r.tileset 2020-05-24 20:39:24 +03:00
Alexander Bruy
779bd52a79 add test 2020-05-24 20:39:23 +03:00
Alexander Bruy
e014684b56 [processing] fix r.tileset algorithm 2020-05-24 20:38:28 +03:00
Alexander Bruy
53d70ea357 add tests 2020-05-24 08:52:53 +03:00
Alexander Bruy
263d2a871d [processing] redirect tool standard output to fake Processing output in
some GRASS algorithms (fix #36520)
2020-05-24 08:52:53 +03:00
Alexander Bruy
585db6440f
Merge pull request #36618 from alexbruy/grass-tempfile
[processing] fix handling for stdout and file outputs in GRASS
2020-05-24 08:51:50 +03: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
f676c821d9 Flag SAGA 'Merge Layers' algorithm as having known issues
Fixes #36375
2020-05-22 21:21:42 +10:00
Alexander Bruy
938dc618b1 update algorithms which use "ext" mechanism 2020-05-22 11:13:22 +03:00
Alexander Bruy
b5d323c583 [processing] fix handling for stdout and file outputs in GRASS
algorithms when temporary files are used
2020-05-22 10:30:07 +03: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
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
Nyall Dawson
5cc0f0964b Fix resetting fields in Refactor Fields algorithm dialog 2020-05-22 07:14:14 +10:00
Nyall Dawson
169ca650fe [processing] Fix exception when changing layer in Refactor Fields algorithm
Fixes #36582
2020-05-22 07:14:14 +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
92ebf7bc8d [processing] Fix running script algorithm from editor dialog
We have to keep a local reference to the dialog, otherwise sip suddenly
"forgets" about the python subclass and treats the dialog as just
the parent c++ class. Really weird, thanks sip.

Fixes #36436
2020-05-20 18:21:02 +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
Harrissou Sant-anna
ea4f2bbfb9 Making lists in PyQGIS doc look better
and fix some wording
2020-05-20 16:39:42 +10:00
Nyall Dawson
180ec5389b Sipify 2020-05-20 12:40:40 +10:00
Denis Rouzaud
cc19fa1d13
Merge pull request #36421 from 3nids/basemap_path
Registry for localized data paths
2020-05-19 21:27:51 +02:00
uclaros
24cda403da why u no sipify? 2020-05-20 05:01:20 +10:00