2503 Commits

Author SHA1 Message Date
Matthias Kuhn
9fd0802939 Remove QgsEditorWidgetConfig
This is replaced with a QVariantMap. It was never really more than this in the
past and with the switch to QgsConfigurationProperties, there is really no
longer any reason to assume that this will change.
2016-12-20 01:20:08 +01:00
Matthias Kuhn
ab0dccf1d5 Rename vl parameters to layer 2016-12-20 01:20:08 +01:00
Matthias Kuhn
826c44092b Python bindings 2016-12-20 01:20:08 +01:00
Matthias Kuhn
f15284ec3d Save and load new-style widget configuration 2016-12-20 01:20:08 +01:00
Matthias Kuhn
80b3bfdf18 Add QgsConfigurationProperty class
This class holds a QVariantMap to manage key-value-pairs where each
value can be a string, bool, int, double or itself a map and can be
stored to and restored from XML.
2016-12-20 01:20:08 +01:00
Denis Rouzaud
9c4be41441 [spelling] labelling -> labeling 2016-12-19 23:58:29 +01:00
Even Rouault
792873af5c Merge pull request #3871 from rouault/auto_stretch
[FEATURE] Implement raster auto-stretching when updating canvas
2016-12-16 13:53:54 +01:00
Even Rouault
532eb58d1f [FEATURE] Implement raster auto-stretching when updating canvas
This commit implements the improvements described at:
https://lists.osgeo.org/pipermail/qgis-developer/2016-September/044393.html

The QgsRasterMinMaxWidget now offers a seetting to specify that the statistics
should be computed each time the canvas extent changes.

Other changes:
- the content of the QgsRasterMinMaxWidget is now persistant.
- there is no longer any Load button. The global Apply / OK button of the raster
  properties dialog has this effect.
- the default "limits" for single band raster is now MinMax and not CumulativeCut
- the default "limits" can be configured for single band, multi band single byte and
  multi band multi byte
- "Strech using current extent" honours the "limits" instead of forcing min/max.
2016-12-16 12:36:06 +01:00
Denis Rouzaud
2ffe1a764b spelling fixes 2016-12-15 15:26:36 +01:00
Denis Rouzaud
90fc0bb226 use Travis to look for spelling errors
use silver searcher for faster search (instead of grep)
2016-12-15 15:26:36 +01:00
Martin Dobias
8e5fb436b7 Remove QgsLabelingEngineInterface base class and implementation in QgsPalLabeling
It was ready to go for some time, just waiting for QgsMapRender that still used it.
2016-12-15 18:15:12 +08:00
nirvn
f02e4ad98f [FEATURE][raster] transparency support for paletted renderer 2016-12-14 14:24:02 +07:00
Mathieu Pellerin
a8b9723cbc [FEATURE] allow customization of line spacing for legend item labels (#3632)
* [FEATURE] allow customization of line spacing for legend item labels
* add test for legend line spacing and update control images
2016-12-13 12:09:13 +07:00
rldhont
7028eee198 Merge pull request #3809 from pblottiere/render
replace QgsMapRenderer
2016-12-12 14:07:37 +01:00
Nyall Dawson
caa0d500af Fix spelling of orthoganilize 2016-12-12 17:47:12 +10:00
Blottiere Paul
f3a5c98178 remove QgsMapRenderer 2016-12-12 07:50:22 +01:00
Martin Dobias
5228cc5fb4 One more fix for doc test 2016-12-12 10:34:03 +08:00
Martin Dobias
556582979a Rename QgsLegendModelV2 to QgsLegendModel 2016-12-12 03:27:14 +08:00
Martin Dobias
c783be1d04 Rename QgsComposerLegendStyle to QgsLegendStyle 2016-12-12 03:23:02 +08:00
Martin Dobias
3efc28d07b Remove legacy class QgsComposerLegendItem and subclasses 2016-12-12 02:42:04 +08:00
Martin Dobias
57ff36bc01 Make it possible to use project as non-singleton
This is just a first step - it will be a long way to get rid of all
the usages of singleton instance in QGIS code.
2016-12-11 17:49:24 +08:00
Martin Dobias
5fc10d6207 Migrate QgsMapThemeCollection away from using layer IDs 2016-12-10 23:23:18 +08:00
Martin Dobias
c143be7a73 QgsMapSettings and QgsComposerMap store layers for rendering as weak pointers
... instead of using layer IDs which need to be resolved using QgsProject
2016-12-10 18:50:52 +08:00
Martin Dobias
64f1356cf3 Added missing api docs 2016-12-10 16:18:03 +08:00
Martin Dobias
d56a97d4fe Merge QgsMapLayerRegistry into QgsProject
All methods/signals of QgsMapLayerRegistry moved verbatim to QgsProject.
2016-12-10 15:18:12 +08:00
Nyall Dawson
4b6f3a3ee5 [FEATURE][processing] New algorithm to orthagonalize geometries
Adds a new QgsGeometry::orthagonalize method which tries to make
angles in geometries either right angles or straight lines

Also adds a processing algorithm exposing this feature.
2016-12-09 09:41:56 +10:00
Nyall Dawson
379e7a42e6 Add some more QgsVector operators, allow use of QgsVector with QgsPointV2 2016-12-09 08:13:48 +10:00
Nyall Dawson
77a8e18ec1 Add methods to add/subtract QgsVectors 2016-12-09 08:13:48 +10:00
Nyall Dawson
37edb69c21 Merge pull request #3843 from nyalldawson/oriented
Port minimum oriented bounding box to QgsGeometry
2016-12-08 05:52:59 +10:00
Nyall Dawson
c975764c12 Port processing oriented minimum bounding box alg to QgsGeometry 2016-12-07 20:13:29 +10:00
Harrissou Sant-anna
f9578bf60b Replace selectedFeaturesIds by selectedFeatureIds 2016-12-07 00:19:11 +01:00
Nyall Dawson
adff069d5a Cleanup QgsTask API for dependent layers 2016-12-06 20:02:34 +10:00
Nyall Dawson
b1b647349a Merge pull request #3004 from nyalldawson/task_manager
[FEATURE] Task manager
2016-12-05 17:47:38 +10:00
Nyall Dawson
cc702c9c81 Remove (probably unnecessary) copy_func usage 2016-12-05 16:46:10 +10:00
Nyall Dawson
d03d0a5b47 Add some python docstrings to QgsTask.fromFunction 2016-12-05 14:08:12 +10:00
Nyall Dawson
feb3219852 Update doxygen 2016-12-05 14:08:12 +10:00
Nyall Dawson
e35420a8d9 Force QgsTask::run() to fully complete
Remove support for signal based completion/termination

Also unfortunately disable a lot of the test suite as a result,
since it's not easily translatable
2016-12-05 14:08:12 +10:00
Nyall Dawson
268e5127f2 Make QgsTask::start private
Only allow starting tasks to be done by QgsTaskManager
2016-12-05 14:08:12 +10:00
Nyall Dawson
297b5724df QgsTask is no longer a QRunnable
Instead use a private wrapper class to make QgsTask compatible
with QThreadPool
2016-12-05 14:08:12 +10:00
Nyall Dawson
29f310c070 Convert QgsTask.fromFunction to a static method 2016-12-05 14:08:11 +10:00
Nyall Dawson
619381c0ad Call QgsTaskWrapper.on_finished with exception rather than result 2016-12-05 14:08:11 +10:00
Nyall Dawson
fded1a1f39 Don't explode returned values in QgsTaskWrapper
Breaks returning list values
2016-12-05 14:08:11 +10:00
Nyall Dawson
0dcff4491e Respect QgsTask::CanCancel flag in gui 2016-12-05 14:08:11 +10:00
Nyall Dawson
466b0b96b7 Tasks are treated as progressless until they first report a progress 2016-12-05 14:08:11 +10:00
Nyall Dawson
4dc3dd9077 Allow task priority to be specified 2016-12-05 14:08:11 +10:00
Nyall Dawson
5216220872 Fix more racy conditions
Switch from QtConcurrent::run to QThreadPool::start

QtConcurrent doesn't give us anyway to cancel queued but not
started tasks. QThreadPool does (and also allows us to specify
task priority)
2016-12-05 14:08:11 +10:00
Nyall Dawson
14b6b3f6ee Harden everything up
And finally fix a racy condition which has been plaguing me for
ages
2016-12-05 14:08:11 +10:00
Nyall Dawson
32a9e1e9d6 QgsTasks can have subtasks
Now, a QgsTask can have subtask QgsTasks set by calling
QgsTask::addSubTask. Sub tasks can have their own set of
dependent tasks.

Subtasks are not visible to users, and users only see the overall
progress and status of the parent task.

This allows creation of tasks which are themselves built off
many smaller component tasks. The task manager will still handle
firing up and scheduling the subtasks, so eg subtasks can run
in parallel (if their dependancies allow this).

Subtasks can themselves have subtasks.

This change is designed to allow the processing concept of
algorithms and modeller algorithms to be translatable
directly to the task manager architecture.
2016-12-05 14:08:11 +10:00
Nyall Dawson
3999a3710f Remove QgsTaskManager singleton, and instead attach an instance
to QgsApplication.

ie instead of QgsTaskManager.instance(), use
QgsApplication.taskManager()
2016-12-05 14:08:11 +10:00
Nyall Dawson
b6b7a7f8c6 Remove delete* methods from QgsTaskManager API
On further consideration allowing external control of task
deletion is a bad idea.
2016-12-05 14:08:11 +10:00