3218 Commits

Author SHA1 Message Date
Nyall Dawson
b64025df5c Add python test for task manager 2016-12-05 14:08:11 +10:00
Nyall Dawson
d270b4f9c2 Improvements to task manager ui 2016-12-05 14:08:11 +10:00
Nyall Dawson
5da25136a6 New QgsFloatingWidget widget for easy creation of widgets which "float"
above a layout.

Supports setting another widget as a anchor point for the widget, eg
the floating widget could be set so that it's always placed to the
top-right of the anchor widget.
2016-12-05 14:08:11 +10:00
Nyall Dawson
f85d24e9c7 Fix some crashes 2016-12-05 14:08:11 +10:00
Nyall Dawson
55e9d32671 Add handling of dependent layers to task manager
If a task has dependent layers which are about to be removed,
the task will automatically be cancelled
2016-12-05 14:08:11 +10:00
Nyall Dawson
4c0f4ee6f0 Resolve circular dependencies 2016-12-05 14:08:11 +10:00
Nyall Dawson
4291904c8d Support for dependent tasks
Cancelling a task on which others depend leads to all these other
tasks getting cancelled as well.
2016-12-05 14:08:11 +10:00
Nyall Dawson
dcecf4476f Add support for placing queued tasks on hold 2016-12-05 14:08:10 +10:00
Nyall Dawson
cf5eeb758b API cleanups 2016-12-05 14:08:10 +10:00
Nyall Dawson
e29dd79432 Api + test cleanups 2016-12-05 14:08:10 +10:00
Nyall Dawson
6021d7806e Make QgsTaskManager handle threading of tasks 2016-12-05 14:08:10 +10:00
Nyall Dawson
ebae15f23a Framework for task manager
Adds new classes:
- QgsTask. An interface for long-running background tasks
- QgsTaskManager. Handles groups of tasks - also available as a global
instance for tracking application wide tasks
- QgsTaskManagerWidget. A list view for showing active tasks and their
progress, and for cancelling them

A new dock widget has been added with a task manager widget showing
global tasks
2016-12-05 14:08:10 +10:00
Nyall Dawson
bd8d2121dc [FEATURE] Create attribute index support for spatialite provider
Allows creation of attribute indexes for spatialite layers
2016-12-05 10:22:29 +10:00
Mathieu Pellerin
e94a352e08 [color ramp] improve invert() for discrete gradient ramps (#3833) 2016-12-04 11:34:16 +07:00
mhugent
d2e2110c58 Merge pull request #3812 from mhugent/wms_1_3_compliance
Wms 1 3 compliance
2016-12-01 17:02:44 +01:00
Marco Hugentobler
014aff729c Fix access control tests such that bbox width/height ration matches image width/height 2016-12-01 13:45:47 +01:00
Nyall Dawson
a17facf6cb Merge pull request #3816 from nyalldawson/processing_datetime
[processing][FEATURE] New unified basic stats algorithm
2016-12-01 20:37:15 +10:00
Marco Hugentobler
e6d4010eb6 Adapt expected capabilities / project settings response in server test for WMS 1.3.0 compliance 2016-12-01 10:30:04 +01:00
Mathieu Pellerin
ae75e45d80 [symbology] migrate graduated renderer color ramp widget (#3815) 2016-11-30 16:47:23 +07:00
Nyall Dawson
ecd876a561 Implement time stats for QgsDateTimeStatisticalSummary 2016-11-30 15:51:05 +10:00
Nyall Dawson
6a457c21cc Fix QgsDateTimeStatisticalSummary handling of non-datetime values 2016-11-30 15:12:03 +10:00
nirvn
a755f08ba6 add test coverage for qgscolorramp's invert() function 2016-11-30 11:02:05 +07:00
Nyall Dawson
a927d9743f Allow QgsStringStatisticalSummary to calculate mean string length 2016-11-30 12:03:32 +10:00
Nyall Dawson
57f482e2d9 Add method to QgsGeometry to remove interior rings from a polygon
With an optional area threshold
2016-11-28 12:08:21 +10:00
Nyall Dawson
7e0cd9af3d Fix QgsFields::lookupField returns bad result for empty field name
QString::isNull vs ::isEmpty strikes again!
2016-11-24 11:17:03 +10:00
Larry Shaffer
d712b49a74 Merge pull request #3790 from dakcarto/qt5py3-mac-fixes
Qt5py3 Mac fixes
2016-11-22 21:29:38 -07:00
Hugo Mercier
289423617f [virtual] disable FilterRect when no unique id is present. Should fix #15134 2016-11-22 11:56:36 +01:00
nirvn
bc130be6cb [style] improve creation of default style db
Instead of copyign a pre-existing .db shipped with QGIS, create
a new .db and import an .xml file containing our default  symbols.

On the UX front, the main benefit is being able to ship with
pre-defined tags and favorite flags for the default symbols.

On the developer side, it means we get rid of the requirement
to maintain both an .xml and a binary .db in the source tree.
We also say aurevoir to the symbol_xml2db.py script and the
need to update the (obsolete) script every time we add a new
feature to QgsStyle.
2016-11-22 14:46:35 +07:00
Nyall Dawson
20dc7fb266 [FEATURE] raster_statistic expression function for retrieving
raster band stats from a loaded layer

Allows raster band stats (eg min, max, avg) to be used in
expressions
2016-11-22 12:07:25 +10:00
Nyall Dawson
3dcf03cf54 Merge pull request #3773 from alexbruy/network-analysis
Network analysis
2016-11-22 09:03:57 +10:00
Matthias Kuhn
22dc096692 Enable WFS test with a fix to prevent crash on exit (#3774)
* Revert "Disable failing PyQgsOfflineEditingWFS test"

This reverts commit 33ee514b5dfdc1b57558cb9007df5b455a59fc17.

* Let lifetime of layers be controlled by QGIS
2016-11-21 22:07:52 +01:00
Alexander Bruy
14c930a5a8 [API][network analysis] move network analysis into analysis library to
be consistent with other analysis stuff
2016-11-21 16:47:24 +02:00
Larry Shaffer
4c2725b069 Use Qt5 non-OpenSSL define in testing for SSL support 2016-11-20 15:30:12 -07:00
nirvn
cc985c2318 use temporary memory db for style tests (avoids clash with default symbols) 2016-11-20 10:20:54 +07:00
nirvn
8fcf8345bd tests for two additional QgsStyle functions: tag() & symbolHasTag() 2016-11-18 14:14:16 +07:00
Nyall Dawson
e624518e00 Merge pull request #3755 from nirvn/style_manager_upgrade
[FEATURE] Style management re-work and upgrade
2016-11-17 12:40:52 +10:00
Nyall Dawson
1da400a99d Rename enum values for consistency 2016-11-17 09:04:19 +10:00
Nyall Dawson
9ee7873572 Allow showing additional items in QgsMapLayerComboBox
These may represent additional layers such as layers which
are not included in the map layer registry, or paths to
layers which have not yet been loaded into QGIS.
2016-11-17 09:04:19 +10:00
Nyall Dawson
ec49341f85 Allow showing CRS in QgsMapLayerComboBox 2016-11-17 09:04:19 +10:00
Nyall Dawson
959f97f682 Allow not set choice in QgsMapLayerComboBox 2016-11-17 09:04:19 +10:00
Nyall Dawson
60bbd09339 Avoid double-evaluating postgres default values 2016-11-16 14:19:24 +01:00
Nyall Dawson
249c8dca20 Prioritise provider default literals over reused values when
creating a new feature
2016-11-16 14:19:24 +01:00
Nyall Dawson
b5864cd432 [FEATURE] Improve handling of defaults (inc provider default clauses,
literal defaults, and qgis expression defaults) and automatically
handle unique value constraints on layers

Add a new method QgsVectorLayerUtils::createFeature which returns
a new feature which includes all relevant defaults. Any fields
with unique value constraints will be guaranteed to have a value
which is unique for the field.

Currently only in use by the split feature tool.

Sponsored by Canton of Zug and the QGEP project
2016-11-16 14:19:24 +01:00
Nyall Dawson
747097d43d New method QgsVectorLayerUtils::createUniqueValue
Returns a new unique attribute value for a layer. For numeric
fields this is the max attribute value + 1, for strings we
attempt to create a unique value by append _1, _2, etc to either
a specified 'seed' value, or failing that to the end of the
value of that field from the first feature in the layer.
2016-11-16 14:19:24 +01:00
Nyall Dawson
4682eaf6eb Add QgsVectorLayer::uniqueStringsMatching() to retrieve
a list of unique strings matching a substring for a field
2016-11-16 14:19:24 +01:00
Nyall Dawson
3242321aa9 [FEATURE] Add method to get list of unique strings matching
a substring from a vector data provider

Base implementation iterates through all features, but
providers can override with optimised versions. Native
implementations for postgres, spatialite and OGR included.
2016-11-16 14:19:24 +01:00
Matthias Kuhn
f18d1c3083 Rename listActions to actions and fix test 2016-11-16 09:33:19 +01:00
Matthias Kuhn
a6eb7b6281 Convert action ids to uuid 2016-11-16 09:33:19 +01:00
nirvn
5e487cfea4 [FEATURE] Style management re-work and upgrade
- A new favorite grouping system was added, which the symbols list
widget defaults to
- The selected tag / smartgroup in the symbols list widget now
persists when switching layers (and across sessions)
- The symbols list widget will update the tag / smartgroup combo
box when users add / rename / remove categories
- Users can now directly tag, as well as add to favorites, symbols
while saving those to the style database
- To streamline style management, groups have been removed and
fully replaced by tags
- Tags have been integrated into the import/export user interface
2016-11-16 14:12:19 +07:00
Nyall Dawson
6727ea78bd Merge pull request #3764 from nyalldawson/cache_fix2
Cache fixes
2016-11-16 10:38:47 +10:00