99 Commits

Author SHA1 Message Date
Juergen E. Fischer
39c4409c6a remove deprecated stuff from QgsVectorLayer and editor widgets 2016-08-10 12:12:28 +02:00
Juergen E. Fischer
0688621046 scripts/replacev2.sh run 2016-08-10 12:08:52 +02:00
Denis Rouzaud
275736de92 removed V2 from QgsSymbolV2* 2016-08-05 08:22:21 +02:00
Matthias Kuhn
bb79d13e82 Remove deprecated Qgis::WKBType and API cleanup (#3325)
* Remove deprecated Qgis::WKBType and API cleanup

Renames QgsWKBTypes to QgsWkbTypes

Replaces usage of the enums:

* Qgis::WKBType with QgsWkbTypes::Type
* Qgis::GeometryType with QgsWkbTypes::GeometryType

Their values should be forward compatible (a fact that was already
explited up to now by casting between the types)

Renames some SSLxxx to SslXxx and URIxxx to UriXxx

* Fix build warnings and simplify type handling

* Add a fixer to rewrite imports

* The forgotten rebase conflictThe forgotten rebase conflicts

* QgsDataSourcURI > QgsDataSourceUri

* QgsWKBTypes > QgsWkbTypes

* Qgis.WKBGeom > QgsWkbTypes.Geom

* Further python fixes

* Guess what... Qgis::wkbDimensions != QgsWkbTypes::wkbDimensions

* Fix tests

* Python 3 updates

* [travis] pull request caching cannot be disabled

so at least use it in r/w mode

* Fix python3 print in plugins
2016-08-04 09:10:08 +02:00
Nyall Dawson
f6b09eaee1 Add Distance*, Area*, Angle* prefixes to QgsUnitTypes enum values 2016-07-26 08:29:24 +10:00
Nyall Dawson
f6f5010131 Move QGis::UnitType to QgsUnitTypes::DistanceUnit
This change consolidates more unit handling and conversion into
QgsUnitTypes.

Additionally, UnknownUnit was renamed to UnknownDistanceUnit.
All methods which accepted QGis::UnitType parameters have been
updated to take QgsUnitTypes::DistanceUnit instead.

ALso remove the unit handling methods toLiteral, fromLiteral, tr,
fromTr, and fromUnitToUnitFactor from QGis. Their corresponding
counterparts in QgsUnitTypes should be used instead.
2016-07-25 14:47:16 +10:00
Nyall Dawson
1a2231f10c Rename QGis class to Qgis, for capitalisation consistency 2016-07-21 22:01:38 +10:00
Matthias Kuhn
c8c623ecee Add methods to vectorlayercache and tests 2016-07-19 10:47:14 +02:00
Nyall Dawson
16eb1e14d0 Classifications on joined fields should only consider values which
are matched to layer's features (fix #9051)
2016-06-13 13:43:46 +10:00
Nyall Dawson
0e03115d33 Add support for field renaming in QgsVectorLayer and edit buffer 2016-06-02 17:09:46 +10:00
Nyall Dawson
23a3a7717e Cleaner API for selecting features in QgsVectorLayer
- add selectByRect( QgsRectangle&, SelectBehaviour) and
selectByIds( QgsFeatureIds, SelectBehaviour) for selecting
by rect and ids respectively, with options to add to selection/
remove from selection/intersect with current selection
- deprecate select( QgsRectangle ) and setSelectedFeatures in
favour of new methods
- add unit tests
2016-05-19 12:30:32 +10:00
Nyall Dawson
b951d5a54d [FEATURE] new method QgsVectorLayer::selectByExpression(...)
Makes it simple for scripts to select by expression. The method
also accepts a parameter which dictates whether matching features
are added to an existing selection, removed from the selection
or intersected with the current selection.

The existing code from the select by expression dialog has been
moved to QgsVectorLayer, and optimised for maximum possible speed.

Also added unit tests.
2016-05-19 09:11:00 +10:00
Nyall Dawson
307aabd66a [FEATURE] Aggregates for expressions
This commit adds a number of different forms of aggregates to
the expression engine.

1. Aggregates within the current layer, eg sum("passengers")
Supports sub expressions (ie sum("passengers"/2) ), group by
( sum("passengers", group_by:="line_segment") ), and optional
filters ( sum("passengers", filter:= "station_class" > 3 ) )

2. Relational aggregates, which calculate an aggregate over
all matching child features from a relation, eg
relation_aggregate( 'my_relation', 'mean', "some_child_field" )

3. A summary aggregate function, for calculating aggregates
on other layers. Eg aggregate('rail_station_layer','sum',"passengers")
The summary aggregate function supports an optional filter,
making it possible to calculate things like:

aggregate('rail_stations','sum',"passengers",
  intersects(@atlas_geometry, $geometry ) )

for calculating the total number of passengers for the stations
inside the current atlas feature

In all cases the calculations are cached inside the expression
context, so they only need to be calculated once for each
set of expression evaluations.

Sponsored by Kanton of Zug, Switzerland
2016-05-17 10:53:25 +10:00
Nyall Dawson
dcc047af49 Add possibility to handle aggregate calculation at data provider
(not implemented for any providers yet)
2016-05-17 10:53:24 +10:00
Nyall Dawson
3340d8ea70 Fix feature fields does not include virtual or joined fields when
feature is requested using a QgsFeatureRequest with FilterFid
2016-05-10 17:04:37 +10:00
Matthias Kuhn
c1687abc80 Replace calls to deprecated assertEquals method 2016-05-03 09:18:27 +02:00
Denis Rouzaud
8071acd064 move PyQt compat folder to python/qgis 2016-04-29 14:10:26 +02:00
Matthias Kuhn
3e300f2966 Manual next fixes 2016-04-15 09:20:39 +02:00
Matthias Kuhn
c268f7e996 Run next_call fixer on tests 2016-04-15 09:20:39 +02:00
Matthias Kuhn
18cdad9956 Convert print function to py3 style in tests 2016-03-31 17:20:53 +02:00
Matthias Kuhn
f669af06fa Fix indentation 2016-03-24 06:48:23 +01:00
Matthias Kuhn
a46efeea69 Some style improvements for test 2016-03-23 23:33:03 +01:00
Juergen E. Fischer
f41304637c switch tests to pyqt wrappers 2016-03-21 17:00:26 +01:00
Juergen E. Fischer
c6d921729e python fixes:
* issues identified by pyflakes (star and unused imports)
* pyqtwrapper: add QtSvg
* some exceptions e.message => unicode(e)
* some translations tr("..." % foo) => tr("...") % foo
* TODO:
  python/console/console_sci.py:547 QsciScintillaCompat?
  python/plugins/db_manager/dlg_query_builder.py:304 pop_up_error?
2016-03-15 17:25:23 +01:00
Matthias Kuhn
5676430050 Rewrite some signals to new-style 2016-03-14 08:52:06 +01:00
Nyall Dawson
a1672da17c Fix some test failures, warnings in nightlies
Add more tolerance to distance area tests, fix doxygen param option
2016-02-22 13:48:10 +11:00
Nyall Dawson
4094bae960 Respect project ellipsoid and unit settings in virtual fields
Fix #12622, #4252
2016-02-16 12:12:40 +11:00
Matthias Kuhn
c21889f945 Add qgis.testing module for generic qgis test helpers 2016-02-04 13:36:13 +01:00
Matthias Kuhn
b9f0c0625a More use of implicit sharing of QgsExpression 2015-12-18 18:36:26 +01:00
Matthias Kuhn
353c0db745 Add test for filter expression on non provider fields 2015-11-02 10:13:31 +01:00
Juergen E. Fischer
b39055b39c indentation update (now including autopep8) 2015-08-22 14:29:41 +02:00
Matthias Kuhn
264c0ec32a Add unit tests for virtual fields 2015-03-27 14:12:03 +01:00
Juergen E. Fischer
956c155e8f fix python pep8 warnings and fix some revealed errors
pep8 --ignore=E111,E128,E201,E202,E203,E211,E221,E222,E225,E226,E227,E231,E241,E261,E265,E272,E302,E303,E501,E701 \
     --exclude="ui_*.py,debian/*,python/ext-libs/*" \
     .
2015-02-01 20:46:47 +01:00
Matthias Kuhn
0bdebed2c0 Test for non-custom prefix join name 2015-01-22 17:47:07 +01:00
Matthias Kuhn
7f97c31fc0 Add test for custom prefix on joins 2015-01-22 17:45:39 +01:00
Hugo Mercier
bf076a0c1f Emit a signal when layer symbology changes 2013-10-04 09:59:18 +02:00
Alexander Bruy
ab4fc785e8 fix PyQgsVectorLayer test 2013-07-18 11:18:46 +03:00
Juergen E. Fischer
15539f34ce more Quantum GIS => QGIS updates 2013-05-30 16:19:19 +02:00
Martin Dobias
082c6bae7d Fixed PyQgsVectorLayer test 2013-04-08 00:34:45 +02:00
Alexander Bruy
e7f8c5ff41 fix typo Python test for QgsVectorLayer 2013-04-04 14:54:30 +04:00
Tim Sutton
6c3f418988 Use ~.qgis2 and ~/.config/QuantumGIS/QGIS2.conf for settings for QGIS 2. Added unit test for memory provider. 2013-04-01 13:15:09 +02:00
Martin Dobias
fb7c596fad Fixed QgsVectorLayer tests 2013-03-19 23:21:54 +01:00
Juergen E. Fischer
cb7f7bfd8b indentation update 2013-02-07 01:09:39 +01:00
Martin Dobias
5f304b34a1 Merge remote-tracking branch 'origin/master' into new_vector_api
Conflicts:
	python/core/qgsvectordataprovider.sip
	src/app/legend/qgslegendlayer.cpp
	src/app/qgisapp.cpp
	src/app/qgsmergeattributesdialog.cpp
	src/core/qgsvectordataprovider.cpp
	src/core/qgsvectordataprovider.h
	src/core/qgsvectorlayer.cpp
	src/gui/qgssearchquerybuilder.cpp
	src/providers/postgres/qgspostgresprovider.cpp
	src/providers/wfs/CMakeLists.txt
2013-01-23 23:46:56 +01:00
Martin Dobias
648bcc09c1 Checking of invalid values when calling edit buffer operations 2012-12-19 21:07:15 +01:00
Martin Dobias
31f6ce07c3 Changed data structure for added features from list to map to allow efficient lookups 2012-12-19 00:28:04 +01:00
Martin Dobias
81b0930498 QgsVectorLayer: large internal refactoring
Most important changes:
- introduced feature iterator for QgsVectorLayer
- vector editing moved to QgsVectorEditBuffer
- complete rework of undo/redo commands for vector layers
- geometry cache separated from editing (QgsVectorLayerCache)
- non-essential editing functionality moved to QgsVectorLayerEditUtils
2012-12-17 21:22:42 +01:00
Tim Sutton
705719cfb2 Revision and refactor of python unit tests: Pep8 and 257 formatting. Use helper to import unittest so that unittest2 and unittest are seemless. 3 tests currently fail - will review those tomorrow. 2012-10-05 03:43:13 +02:00
Tim Sutton
2e8d82fd3e Added simple python vector layer test 2012-09-08 00:06:57 +02:00