8622 Commits

Author SHA1 Message Date
Martin Dobias
ab5841395f Move private arc segmentization routines to QgsGeometryUtils 2017-04-02 17:42:22 +08:00
Martin Dobias
8e7bb3b672 Code cleanup + more testing 2017-03-29 16:02:38 +08:00
Nyall Dawson
99f186a7d2 Clean up progress handling in QgsProcessingFeedback 2017-03-29 09:02:30 +10:00
Nyall Dawson
5b9dc9dca5 Allow labels to be toggled in map views
Another step toward feature parity with overview panel
2017-03-28 13:18:24 +10:00
Alexander Bruy
b8cb196322 Merge pull request #4293 from alexbruy/processing-api
[processing][needs-docs] Processing API improvements
2017-03-27 10:25:43 +03:00
Nyall Dawson
51035cfb67 Add optimised constructors for QgsLineString
Instead of requiring all linestrings to be constructed by
first creating QgsPointSequence (requiring creation or
conversion of points to QgsPointV2), allow construction
of LineStrings directly from vectors of values (fastest!)
or lists of QgsPoint.

Likely results in speedups for lots of geometry operations,
but using the same layer as earlier tested for densify
improvements the densify operation time dropped further
from 25 seconds to 15 seconds.
2017-03-25 20:44:31 +10:00
Nyall Dawson
a769448e70 Also port processing densify to distance to c++
- Add QgsGeometry method to densify by distance
- Fix bug in processing algorithm which resulted in duplicate
vertices and incorrectly spaced extra vertices
2017-03-25 16:23:29 +10:00
Nyall Dawson
77e7693c48 Fix spelling errors in processing algorithm help 2017-03-25 16:23:29 +10:00
Nyall Dawson
b90aa916e6 Port processing Densify Geometries algorithm to use c++ densify
Rough benchmark using 50k geometry polygon shapefile

Before: 1m25s
After:  21s
2017-03-25 16:23:29 +10:00
Nyall Dawson
5360b79174 [FEATURE] New API QgsGeometry::densifyByCount
Densifies a geometry by adding a specified number of vertices
to each segment
2017-03-25 15:07:16 +10:00
Mathieu Pellerin
9c5abc9587 [FEATURE] Add a secondary stroke color to QgsRubberBand (#4301)
This comes in handy when in need of insure visibility of a
marker/line/polygon overlay over both light and dark areas.
This also updates the map view's extent to make use of a
secondary stroke color instead of a semi-transparent fill.
2017-03-24 14:49:37 +07:00
Mathieu Pellerin
40f86b2033 [processing] GRASS 7.2 support: use SQL compatible output names (#4298)
(fixes #16370)
2017-03-24 08:35:57 +07:00
Nyall Dawson
2354696f26 Fix error when enabling additional providers in processing
Add an interface method to show the options dialog at a specific
page. This is required since plugins can now embed their options
in the main options dialog, so they may also need a way to
force this dialog to open.

Implement this in processing so that enabling additional providers
works again.
2017-03-24 11:16:49 +10:00
Nyall Dawson
02b4f6c770 Spell check: accurancy->accuracy 2017-03-24 09:36:46 +10:00
Matthias Kuhn
baa4c86262 Fix tests 2017-03-23 15:29:12 +01:00
Matthias Kuhn
f33aabd90a Completely move layer order to core 2017-03-23 15:29:12 +01:00
rldhont
798b1ed69e Merge pull request #4294 from rldhont/bugfix_processing_saga_io_gdal
[Processing] Saga: update gdal_io and Flow Accumulation (Flow Tracing)
2017-03-23 10:54:40 +01:00
Nyall Dawson
634d5ffb8a Mark QgsRasterRenderer::legendSymbologyItems as /Out/ in sip 2017-03-23 10:15:30 +10:00
rldhont
2fe7caf787 [Processing] Saga: update gdal_io and Flow Accumulation (Flow Tracing) 2017-03-22 19:17:18 +01:00
Alexander Bruy
1a46ddbf28 [processing][API] rename runalg() and runandload() to improve
readability
2017-03-22 19:17:12 +02:00
Alexander Bruy
e1a01106dd [processing][API] rename alglist() to printAlgorithms() to improve
readability. Also introduce algorithmsList() call which returns
available Processing algorithms as list
2017-03-22 19:11:43 +02:00
Alexander Bruy
c1e6ba0f40 [processing] rename AlgorithmExecutor's runalg() and runalgIterating()
to avoid overlapping with general functions and improve readability
2017-03-22 19:11:36 +02:00
Alexander Bruy
79566f7649 remove unused method 2017-03-22 17:03:51 +02:00
Alexander Bruy
ccbca66492 code cleanups 2017-03-22 16:17:05 +02:00
Alexander Bruy
acd37449f3 [processing][API] rename algoptions() to algorithmOptions() 2017-03-22 15:44:04 +02:00
Alexander Bruy
3e4fb56eea [processing][API] rename alghelp to algorithmHelp 2017-03-22 15:25:12 +02:00
Alexander Bruy
060a57f12b Merge pull request #4287 from nyalldawson/processing_default_layer
[processing] Default to current layer in layer selection combos
2017-03-22 08:18:19 +02:00
Nyall Dawson
0500865b3f Set default layer CRS according to behaviour radio (fix #11889)
Makes the new layer dialogs correctly respect the current project
CRS choice when set to follow project CRS.
2017-03-22 11:13:30 +10:00
Nyall Dawson
7c79803cc3 Add missing dynamic cast for QgsTriangle to sip bindings 2017-03-22 10:20:01 +10:00
Nyall Dawson
b7d2b9fd72 Merge pull request #4283 from nyalldawson/filterrect
Remove QgsFeatureRequest::FilterRect
2017-03-22 07:38:53 +10:00
Nyall Dawson
2e9f99693d Merge pull request #4281 from nyalldawson/does_not_contain
[FEATURE][processing] Add 'does not contain' to Extract By Attribute
2017-03-22 07:37:56 +10:00
Nyall Dawson
aad182fdc0 Merge pull request #4274 from nyalldawson/scroll_timer
A different approach to avoiding accidently scroll changes
2017-03-22 06:23:55 +10:00
lbartoletti
fb3d07f3f5 [FEATURE] New class for triangle
Adds a new geometry class for Triangle geometries

Methods include orthocenter, bisectors, medians, medial, circumscribed (center,
radius), inscribed (center, radius)

Also adds make_triangle expression function for creating triangles
2017-03-21 18:50:47 +10:00
jdugge
45f2cd5583 Fix duplicate QgsRectangle.toString methods
Condenses the 2 duplicate methods to a single method which is usable from the Python bindings.
2017-03-21 15:58:39 +10:00
Nyall Dawson
b54fe1e3a5 Use a clearer marker for main canvas position in view windows 2017-03-21 15:49:42 +10:00
Nyall Dawson
77706a6447 Avoid multiple map/legend renders while loading compositions 2017-03-21 10:32:53 +10:00
Nyall Dawson
041129d507 Fix loading composition triggers render of all composer maps
Also cleanup some more unused API methods
2017-03-21 10:32:53 +10:00
Nyall Dawson
54d1a93c17 Add missing TransferThis annotation 2017-03-21 10:32:53 +10:00
Nyall Dawson
885269ee78 Only create composer item config widgets on demand
Instead of creating them for all items when composer window
is opened, instead just create and destroy them when
required. None are too heavy to have a noticable delay
when selecting items, but in contrast keeping them around
forever is wasteful on memory.

Also clean up a lot of duplicate composer/composition
code and remove unnecessary signals from api (use a single
itemAdded signal instead of multiple signals for every
item type)
2017-03-21 10:32:53 +10:00
Nyall Dawson
53160c7b21 [composer] Port composer manager to layout manager
Also switch to using a proper model to show/edit compositions
in the dialog.
2017-03-21 10:32:53 +10:00
Nyall Dawson
3aef32a191 [composer] Rework interface composer methods
Since composer windows are now only created on demand, and
destroyed when the window is closed, the old interface methods
no longer apply. The new interface methods openComposers(),
openComposer(), closeComposer(), composerOpened(),
composerWillBeClosed() and composerClosed() are similar, but
only apply to composer windows when they are exist (i.e.
are currently open).

To access all compositions from a project, the project's
layoutManager() should be used instead.

Additionally, the new interface methods work with
QgsComposerInterface objects instead of QgsComposerView
objects. This should allow future hooks for plugins to interact
with open composer windows in a more useful way.
2017-03-21 10:32:53 +10:00
Nyall Dawson
b408952815 Add a basic interface for composer windows
Not much there yet, but it adds an interface with stable API
which can be used by plugins and scripts to interact with
composer windows.

Could be expanded in future to add hooks for toolbars, menus,
etc, allowing plugins to extend composer functionality.
2017-03-21 10:32:53 +10:00
Nyall Dawson
148e2bcf52 Better method to autogenerate composer names 2017-03-21 10:32:53 +10:00
Nyall Dawson
b6c76186b4 Restore opening existing composers 2017-03-21 10:32:53 +10:00
Nyall Dawson
8c8ac61512 Port composer template saving and duplicating to layout manager 2017-03-21 10:32:52 +10:00
Nyall Dawson
3a1ac1a995 [composer] Attach compositions to QgsProject
This adds a new QgsLayoutManager class which is used for
storage and serializing/deserializing of compositions.

A QgsLayoutManager is attached to QgsProject. This allows
core code to access the compositions attached to a project.
The intention is to move all handling of compositions from
app to core, making it easy for server to access project
compositions without resorting to fragile xml parsing.
2017-03-21 10:32:52 +10:00
Nyall Dawson
ce7180ca64 [processing] Default to current layer in layer selection combos
Makes things easier for large projects and avoids scrolling through
a large list of layers
2017-03-21 10:26:58 +10:00
Nyall Dawson
2a80d287ac [processing] Sync features in Select by Expression with Select by Attribute
Adds new stuff like "is null"/"is not null"/"does not contain"
to the Select By Attribute algorithm.
2017-03-21 09:09:26 +10:00
Nyall Dawson
954ee20389 [FEATURE][processing] Add 'does not contain' to Extract By Attribute 2017-03-21 08:58:36 +10:00
Nyall Dawson
8e6d792710 Swap all QScrollAreas to QgsScrollAreas 2017-03-21 08:46:41 +10:00