313 Commits

Author SHA1 Message Date
Martin Dobias
23a7bd0fd9 Introduce QgsReadWriteContext that encapsulates QgsPathResolver
This should make the read/write methods more flexible if we need to give them extra context.
2017-05-13 18:09:26 +08:00
Nyall Dawson
b6a5cc4204 Use QgsFeedback instead of QProgressDialog for QgsVectorLayerExporter::exportLayer
And add cancelation and progress reporting to background layer export
2017-05-12 08:03:23 +10:00
Nyall Dawson
75a5d5dda1 Remove unused skipAttributeCreation option in QgsVectorLayerExporter::exportLayer 2017-05-12 08:03:23 +10:00
Nyall Dawson
384369c3c4 Rename QgsVectorLayerImport to QgsVectorLayerExporter
Since the majority of users of this class will be exporting
an existing map layer to a data provider, the QgsVectorLayerImport
name is misleading and suggests that this class is designed
just to bring layers "into" QGIS.

Explicitly naming the class "Exporter" should help API users
discover this class.

Also cleanup API and improve docs
2017-05-12 08:02:51 +10:00
Nyall Dawson
a32314d8b5 Add a new QgsRasterBandComboBox widget
And use wherever custom widgets were being created. Reduces
duplicate code and allows specialised handling for raster
band display/selection to be centralized.
2017-05-09 19:23:08 +10:00
Nyall Dawson
ac7cc12ca7 Merge pull request #4511 from nyalldawson/composer_async
Asyncronously render composer map previews
2017-05-08 20:18:16 +10:00
Nyall Dawson
29c87de679 [needs-docs][composer] Remove Render/Cache modes from composer maps
Make maps invalidate cache whenever layer order changes. Cache mode
is now identical to Render mode, so  all mode switching has been
removed from composer maps. This should greatly simplify the learning
curve and usability of composer maps.
2017-05-08 19:31:55 +10:00
Alessandro Pasotti
de03642ebb Consolidate QgsRequestHandler 2017-05-08 11:14:14 +02:00
Nyall Dawson
5e3b903955 [needs-docs][composer] Remove Rectangle mode from composer maps
No longer required - the Cache mode is now performant enough
that we don't have to rely on the old rectangle preview
when desiring responsive composers
2017-05-08 17:10:07 +10:00
Nyall Dawson
abe8ead1a5 Rework how composer map cache is invalidated
Avoids unnecessary redraws and defers cache update until
when item is actually visible
2017-05-08 17:10:02 +10:00
Alessandro Pasotti
a882a3b5fe Added server changes to API break docs 2017-05-06 09:49:31 +02:00
Nyall Dawson
1033c7b3bd Remove unused argument 2017-05-06 14:59:56 +10:00
Nyall Dawson
8d03642387 Merge pull request #4487 from nyalldawson/memory
Move memory provider to core
2017-05-06 14:13:15 +10:00
Martin Dobias
0a0c33dcf2 Remove QgsGeometryCache class
The geometry cache was only used for few geometry editing operations anyway. In earlier versions
of QGIS the geometry cache was also used by old snapping classes which have been replaced
by QgsPointLocator that also keeps a spatial index of geometries and it is not rebuilt on every re-render.

Reasons for removal:
- geometry cache was repopulated on every redraw of layers in editing mode, slowing down rendering
- data structure for the cache was a simple map with features accessed by their ID (no spatial index)
- the cache was only getting refreshed for the current view of the main map canvas (not a generic cache)
- not used for snapping anymore where caching was important to avoid roundtrips to data provider
2017-05-06 10:34:23 +08:00
Nyall Dawson
ba2fdf00ab Rename some QgsProviderRegistry methods to clarify that they are factories
- provider() was renamed to createProvider()
- selectWidget() was renamed to createSelectionWidget()
- providerLibrary() was renamed to createProviderLibrary()
2017-05-06 12:28:06 +10:00
Nyall Dawson
df1ead5ed4 [processing] Remove vector.spatialindex()
Use QgsProcessingUtils.createSpatialIndex() instead.
2017-05-02 13:39:36 +10:00
Nyall Dawson
bde1bf457b [processing] Remove unused vector.duplicateInMemory() function 2017-05-02 13:29:42 +10:00
Nyall Dawson
7eb7a7aa01 [processing] Remove vector.bufferedBoundingBox()
Use QgsRectangle.grow() instead
2017-05-02 13:27:01 +10:00
Nyall Dawson
2b1dda4c78 Update API break docs 2017-05-02 12:34:05 +10:00
Nyall Dawson
0b0ccc9e9d Rename QgsVectorLayer::selectedFeaturesIterator to getSelectedFeatures
It's more in line with QgsVectorLayer::getFeatures, hence a more
discoverable API
2017-04-27 11:16:10 +10:00
Nyall Dawson
e9f13d1ea3 Just use standard QgsMessageLog functionality instead of a dedicated
method for processing
2017-04-26 13:57:06 +10:00
Nyall Dawson
1394c28d13 [processing] Move some log handling to c++ class 2017-04-26 13:56:29 +10:00
Nyall Dawson
fea6bff707 Merge pull request #4389 from nyalldawson/scalebar
Refactor scalebar renderer, split from composer
2017-04-26 12:40:06 +10:00
Nyall Dawson
b40bc0c1f7 Refactor scale bar rendering
Move all scalebar rendering code out of composer and ensure that
all scalebar rendering is done independant of QgsComposerScaleBar

This allows scalebar rendering code to be reused by plugins
and by non-composer code.

Also rename QgsScaleBarStyle -> QgsScaleBarRenderer, (and all
subclasses too). This name better reflects what these classes do.
2017-04-26 11:46:51 +10:00
Nyall Dawson
c4578c3c1d QgsVectorLayer is a QgsFeatureSink
Also cleanup API for addFeature(s) in QgsVectorLayer, by removing
the unused extra argument from addFeature() and be removing the
makeSelected argument from addFeatures() (code should be adapted
to manually select added features after adding if desired - this
was only used in a single place in the QGIS code and I suspect
this was unintentional in any case)
2017-04-26 11:32:34 +10:00
Alessandro Pasotti
cbcd193875 [server] Add to API break and pass enum by value 2017-04-22 13:56:00 +02:00
Martin Dobias
25ed76b86e Move labeling engine config to a new class + QgsPalLabeling cleanup
Another bit to make core library independent from QgsProject::instance().
Until now labeling engine configuration was taken from project singleton.

Removed legacy methods from QgsPalLabeling - the class now does not have
any more member variables/methods, it is just a bunch of helper functions.

(PR #4384)
2017-04-21 18:04:09 +08:00
Martin Dobias
24c5b0326f Rewrite addTopologicalPoints() and remove legacy snapping code + unit test 2017-04-19 11:24:20 +08:00
Nyall Dawson
cc5b9bfe17 More QgsDistanceArea API cleanups and simplification
- setEllipsoidalMode() was removed. Ellipsoidal calculations are
now enabled whenever a valid ellipsoid() has been set. Set the
ellipsoid to 'NONE' to disable ellipsoidal calculations.

- ellipsoidalEnabled() was removed. Ellipsoidal calculations
are now enabled whenever a valid ellipsoid() is set. Check
willUseEllipsoid() to determine whether ellipsoidal
calculations will be performed.

- sourceCrs() and setSourceCrs() now always take and return
QgsCoordinateReferenceSystem objects. All string/ID based CRS
methods were removed.

- geographic() was removed. This was only used internally
in one place, so was replaced with sourceCrs().isGeographic() instead.

- some largely overlapping measurement functions were consolidated
2017-04-18 08:14:16 +10:00
Martin Dobias
7b202edf04 Remove QgsVectorLayer::snapPoint() and unused code in QgsSelectedFeature 2017-04-17 17:37:16 +08:00
Martin Dobias
316d9c3359 R.I.P. QgsSnapper and QgsMapCanvasSnapper
These classes have been replaced by more efficient and flexible classes
(see QgsPointLocator, QgsSnappingUtils, QgsMapCanvasSnappingUtils)
2017-04-17 17:08:48 +08:00
Nyall Dawson
96d5b9dae6 Implement a QGIS 3.0 TODO for QgsMessageLogViewer, cleanup docs 2017-04-17 10:55:53 +10:00
Nyall Dawson
5fb63c066f Make QgsRectangle protected members private
This class is not designed to be subclassed
2017-04-11 14:55:57 +10:00
Nyall Dawson
f2a7dcbdd7 Rename QgsMapLayer::metadata -> htmlMetadata()
Frees up metadata() for use as a structured metadata getter
2017-04-10 18:45:00 +10:00
Nyall Dawson
1128373830 Remove QgsMapLayer::invalidTransformInput slot
Calling slot does nothing and is not used anywhere
2017-04-10 17:09:43 +10:00
Nyall Dawson
fdcf04f9f3 Remove AlgorithmProvider
Totally ported to QgsProcessingProvider
2017-04-07 13:21:28 +10:00
Nyall Dawson
fb1cf1e185 Remove processing algList
All functionality has been moved to QgsProcessingRegistry
2017-04-07 13:21:28 +10:00
Nyall Dawson
4970bb4cd5 Move more algList functionality to QgsProcessingRegistry 2017-04-07 13:21:28 +10:00
Nyall Dawson
5ccc6cccef Update api break docs, sipify QgsRasterFileWriter 2017-04-07 09:21:26 +10:00
Nyall Dawson
ae59e35dac Complete daily allocation of Qt5 connect transitions 2017-04-04 09:40:25 +10:00
Juergen E. Fischer
9ac70a009c fix api break dox for QgsLayerTreeMapCanvasBridge custom layer order 2017-04-03 18:35:12 +02:00
Nyall Dawson
5813eb132b Modernise CharacterWidget API, move to sipify 2017-04-03 13:18:36 +10:00
Nyall Dawson
e8ef91ce98 Cleanup QgsRasterDataProvider/QgsRasterLayer progress reporting
Instead of progress changed signals on the provider/layer level,
instead use QgsFeedback arguments for methods which previously
emitted progress changed signals
2017-04-03 12:08:08 +10:00
Nyall Dawson
e400ab6249 Allow cancelation of raster stats/histogram operations 2017-04-03 12:08:08 +10:00
Nyall Dawson
a157db7627 Refactor QgsPalettedRasterRenderer to allow "gaps" in pixel values
Previously the renderer required that pixel values followed
sequential numerical order. This refactor allows values to
be skipped, so that only certain color index will be rendered.
2017-04-03 12:07:50 +10:00
Nyall Dawson
77e7693c48 Fix spelling errors in processing algorithm help 2017-03-25 16:23:29 +10:00
Matthias Kuhn
8cecf236df Document API breaks 2017-03-23 15:29:13 +01:00
Nyall Dawson
8593e38705 Add missing api break note 2017-03-22 11:15:40 +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
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