10182 Commits

Author SHA1 Message Date
Nyall Dawson
c0669d4fd2 Port extend lines to new API 2017-07-20 15:28:50 +10:00
Nyall Dawson
1cac3bb635 Port single sided buffer to new API 2017-07-20 15:28:50 +10:00
Nyall Dawson
4a935c1090 Resurrect Translate algorithm 2017-07-20 15:28:50 +10:00
Nyall Dawson
d4af76150f Flip some more algorithms to feature based algorithms 2017-07-20 15:28:50 +10:00
Sandro Santilli
9efd666e48 Test that PostGIS query can be passed as both unicode and string literal
See https://issues.qgis.org/issues/16833
2017-07-19 19:05:39 +02:00
Sandro Santilli
2a572be73e Add test for #16833
Tested to pass with Python 2.7.13
2017-07-19 16:48:36 +02:00
Mathieu Pellerin
0665072d94 [FEATURE] Locked aspect ratio state for Save as image/PDF" (#4880)
Sponsored by Andreas Neumann.
2017-07-19 15:04:52 +07:00
rldhont
08c06def1b Merge pull request #4846 from rldhont/server-wms-configparser-getfeatureinfo
[Server] WMS GetFeatureInfo refactoring
2017-07-19 10:00:01 +02:00
Juergen E. Fischer
4f9a9e0360 s/( )/()/; s/== /== /; s/!= /!= /; 2017-07-19 09:19:37 +02:00
Nyall Dawson
857f8437d1 Merge pull request #4873 from nyalldawson/processing_feature_alg
Add QgsProcessingFeatureBasedAlgorithm subclass
2017-07-19 05:31:30 +10:00
Nyall Dawson
11cfc78a24 Skip invalid returned features 2017-07-18 22:13:50 +10:00
Alessandro Pasotti
0b263f9ac6 Merge pull request #4737 from boundlessgeo/browser-sync
[bugfix] Sync the browser connections when changed from the select dialogs
2017-07-18 13:27:32 +02:00
Mathieu Pellerin
6acd326a8f [FEATURE] Draw extent onto canvas in save as image/PDF dialog (#4878) 2017-07-18 18:13:52 +07:00
Alessandro Pasotti
bd925cd648 Rebase and partially revert 9bae83275368
All signals are now in the base class, even if only
a subset of available providers actually emits them.

This way we can handle all source select dialogs
the same way, regardless if they are vector, DB
or raster (or others).
2017-07-18 12:15:57 +02:00
Nyall Dawson
29855b3942 Change signature of processFeature so that features are no longer modified in place 2017-07-18 19:56:42 +10:00
Alessandro Pasotti
e83ef2e8b5 Store canvas into the base class and set extent/crs from the arcgis classes
This modification was necessary because the current implementation
of the source select dialogs within the unified add layer dialog
create the provider dialogs the first time and do not destroy
them, this means that the canvas extent and CRS can change from
a dialog invocation to the next and the extent and CRS need to
be updated at layer creation time.
2017-07-18 11:45:07 +02:00
Alessandro Pasotti
73b66fa1f5 Homogenize signals from different source select dialogs, move to base class 2017-07-18 11:45:07 +02:00
Nyall Dawson
c2cad99d6b Add note about throwing QgsProcessingException to cancel algorithm execution 2017-07-18 19:44:33 +10:00
Alessandro Pasotti
f6c8ef3ad1 Complete documentation for connectionsChanged signals 2017-07-18 11:42:02 +02:00
Alessandro Pasotti
c4e26d72c0 Renamed base class to QgsAbstractDataSourceWidget 2017-07-18 11:42:02 +02:00
Alessandro Pasotti
aba9da5bc4 Refactored all providers to use the new base class
Also use refreshConnections from the data items when
a refresh is required, this function also emits
the signal to update the other GUI elements.
2017-07-18 11:42:02 +02:00
Nyall Dawson
d926789d3b Improve dox 2017-07-18 19:41:33 +10:00
Nyall Dawson
dd0f18355b [FEATURE] Followup addition of set Z/M values algs with Drop Z/M Values algorithm
Allows easy access to drop any z or m values present in a layer (e.g. if
required for compatibility with a database destination, etc)
2017-07-18 19:41:33 +10:00
Nyall Dawson
340cf93f93 [FEATURE] New algorithms to add Z/M values to existing geometries
Allows upgrading geometries to include these dimensions, or
overwriting any existing Z/M values with a new value.

Intended mostly as a test run for QgsProcessingFeatureBasedAlgorithm
2017-07-18 19:41:33 +10:00
Nyall Dawson
b9f225905a Port a single python algorithm to QgsProcessingFeatureBasedAlgorithm 2017-07-18 19:41:33 +10:00
Nyall Dawson
7e3c435dd6 Port some existing algorithms to QgsProcessingFeatureBasedAlgorithm 2017-07-18 19:41:33 +10:00
Nyall Dawson
1a41624370 Add QgsProcessingFeatureBasedAlgorithm subclass
An abstract QgsProcessingAlgorithm base class for processing algorithms
which operate "feature-by-feature".

Feature based algorithms are algorithms which operate on individual
features in isolation. These are algorithms where one feature is
output for each input feature, and the output feature result
for each input feature is not dependent on any other features
present in the source.

For instance, algorithms like "centroids" and "buffers" are feature
based algorithms since the centroid or buffer of a feature is
calculated for each feature in isolation. An algorithm like "dissolve"
is NOT suitable for a feature based algorithm as the dissolved output
depends on multiple input features and these features cannot be
processed in isolation.

Using QgsProcessingFeatureBasedAlgorithm as the base class for feature
based algorithms allows shortcutting much of the common algorithm code
for handling iterating over sources and pushing features to output sinks.
It also allows the algorithm execution to be optimised in future
(for instance allowing automatic multi-thread processing of the
algorithm, or use of the algorithm in "chains", avoiding the need
for temporary outputs in multi-step models).
2017-07-18 19:41:33 +10:00
Alessandro Pasotti
1e6a4ab301 Added since 3.0 to the renamed class 2017-07-18 11:38:53 +02:00
Alessandro Pasotti
7bb797f8a9 Renamed QgsSourceSelectDialog to QgsArcGisServiceSourceSelect 2017-07-18 11:38:53 +02:00
Alessandro Pasotti
bc516cf82a Added since 3.0 2017-07-18 11:38:53 +02:00
Alessandro Pasotti
385bb86854 SIP include 2017-07-18 11:38:53 +02:00
Alessandro Pasotti
593770a579 Added python bindings for the base source select class 2017-07-18 11:38:53 +02:00
Alessandro Pasotti
e57399bae0 [bugfix] Sync the dialogs connections when changed from the browser
For now it's only for WMS but you get the idea.

There is a new abstract base class for the source select
dialogs, that will grow with common behavior for all
the select dialogs.

Signals are forwarded from the (root) data items to the
app and then delivered to the various browser instances
and to the unified layer dialog.

A change in one of the browser items should trigger a
refresh in all the other browsers and dialogs.
2017-07-18 11:38:53 +02:00
Alessandro Pasotti
9ff73c0b77 [bugfix] Sync the bowser connections when changed from the select dialogs
For now, the sync works only in one direction: from the dialogs
to the browser instances
2017-07-18 11:38:53 +02:00
Nyall Dawson
b83415688a Save/restore window geometry for plugin installer repo fetching dialog 2017-07-18 13:49:03 +10:00
Mathieu Pellerin
3037f22482 Non-blocking save as image/PDF dialogs (#4874) 2017-07-18 10:47:06 +07:00
Nyall Dawson
4e0e038aab Dox updates 2017-07-18 13:04:03 +10:00
Nyall Dawson
7f066672b3 Add method to specify item groups for item classes in QgsLayoutItemGuiRegistry
This allows the designer dialog to group the corresponding item
actions together (i.e. grouping all basic shape creation actions
together), but without any hardcoded special handling so that
plugin based items can also be grouped.
2017-07-18 12:42:06 +10:00
Nyall Dawson
de2626d65c Add unit types to new item properties dialog, handle different reference
point settings
2017-07-18 12:42:06 +10:00
Nyall Dawson
19a7863ea4 Add methods to construct layout size/point from QSizeF/QPointF 2017-07-18 12:42:06 +10:00
Nyall Dawson
d14f3b9c13 Add QComboBox subclass widget for selecting layout units 2017-07-18 12:42:06 +10:00
Nyall Dawson
cdec70babe [needs-docs] Add a new item properties dialog
When adding a new item to a layout, if the user just does a single
click of the mouse (vs a click and drag to set the new item
position/size), then a dialog is shown asking to user for
the new item size/position/reference point.

This allows easy creation of items with an exact position/size
and is common behavior in most proper DTP/illustration apps.
2017-07-18 12:42:06 +10:00
Nyall Dawson
b4f5025d4f Port shape items to layouts 2017-07-18 12:42:06 +10:00
Nyall Dawson
436710a177 Ensure that item painter is correctly scaled so that painter units are pixels 2017-07-18 12:42:06 +10:00
Nyall Dawson
56bb65709d Change QgsLayoutItem::draw to use a renderContext instead of
direct QPainter argument

This will make use of other rendering code within layout items
much easier - since symbology/text renderer/diagrams/etc all
require QgsRenderContexts for use, it makes sense for
layout item rendering to also use this approach.

This also avoids lots of duplicate code which was scattered
throughout different composer item types to manually handle
creation of QgsRenderContexts when required.
2017-07-18 12:42:06 +10:00
Nyall Dawson
c282024748 Partially port some layout utils for render context creation 2017-07-18 12:42:06 +10:00
Nyall Dawson
7a0851c2ce Shell class for QgsLayoutItemMap 2017-07-18 12:42:06 +10:00
Nyall Dawson
00405fd6b5 Start porting item rotation 2017-07-18 12:42:06 +10:00
Nyall Dawson
c3456133dc Add QgsLayoutUtils 2017-07-18 12:42:06 +10:00
Nyall Dawson
6fd06983a6 Port data defined item position and size 2017-07-18 12:42:06 +10:00