2718 Commits

Author SHA1 Message Date
Matthias Kuhn
9c3fa187fa Fix map themes in combination w/ offline editing 2017-03-02 11:00:16 +01:00
Nyall Dawson
3b56b79f6d Don't block when canceling canvas render jobs
In some cases canceling render jobs can take a long time. Eg when
using database layers over a sloooooow connection, canceling a job
can be blocked by minutes while waiting for the first batch of feature
fetching to finish. (Since eg postgres features are fetched in batches
of 2000 with no opportunity to abort mid-way through this).

This meant that while the first render allows the GUI to remain
responsive, any subsequent render operations which occured before
the first render completes locks up the whole ui until the first
render can finish cancellation.

With this change, the render cancelation happens with blocking.
It means that you can pan and zoom around a map over of slow
connection without any ui locks.
2017-03-02 12:39:57 +10:00
Nyall Dawson
8094cf996b Remove support for setting map units in QgsMapSettings, QgsMapCanvas and QgsDxfExport
In a post-OTF-disabled world these are no longer required. The
map units are dictated by the map units for the destination
CRS.

It's dangerous to separate these two properties as setting
the incorrect map units for a given CRS will result in
incorrect scale calculations.
2017-03-01 07:29:35 +10:00
Nyall Dawson
20c07a58e6 Remove support for disabling OTF reprojection
Because
- OTF reprojection is mature and stable
- Should be no cost when not required - transforms are shortcut
when not required
- Reduces code complexity
- Canvas OTF support was being incorrectly used as a flag for
whether measurements should be made in ellipsoidal mode. Instead
the project's ellipsoid setting should be checked for this.
- Should simplify behavior for new users
2017-03-01 07:29:35 +10:00
Matthias Kuhn
bb617a1d96 Add QgsUnitTypes::toAbbreviatedString 2017-02-28 18:43:17 +01:00
Denis Rouzaud
5176ecf597 [needs-docs] keyboard shortcut to toggle snapping (S)
Pressing the key "S" will toggle snapping. This helps to quickly
enable/disable snapping while digitizing.
2017-02-28 12:13:41 +01:00
Matthias Kuhn
520e3c082e Move QgsVector to its own header 2017-02-24 16:02:25 +01:00
Matthias Kuhn
10f50ee68a Remove protected API from non-inherited class 2017-02-24 09:13:48 +01:00
Martin Dobias
fd616ae94e A bit of const-correctness and new convenience methods for edit tools 2017-02-24 11:27:45 +08:00
Alessandro Pasotti
e1ede700a8 [feature] QgsSettings QGIS QSettings replacement (#4160)
* [feature] QgsSettings QGIS QSettings replacement

This is the new QgsSettings class that adds an (optional)
Global Settings additional ini file where a system administrator
can store default values for the settings and provide
pre-configuration.

If an ini file named qgis_global_settings.ini is found
in the pkgDataPath directory it is automatically loaded,
this path can be overriden by a command line argument
( --globalsettingsfile path ) and through an environment
variable (QGIS_GLOBAL_SETTINGS_FILE).
2017-02-22 20:22:10 +10:00
Nyall Dawson
47683fca4f [needs-docs] Rename Outline and Border -> Stroke
This change is being driven by:

- need for consistent terminology in the api. Currently there's
a confusing mix of border/outline used
- need for consistent terminology in the gui - we have a mix
of "border"/"outline"/"pen"
- bringing QGIS into line with the standard terminology used
in other graphic editing programs
2017-02-22 19:22:45 +10:00
Nyall Dawson
4790035efa Add method to remove feature from a QgsExpressionContextScope 2017-02-22 13:58:11 +10:00
Nyall Dawson
abc6129b60 Optimise expression context storage/retrieval of features
Shaves ~10% rendering time off a 1 million point layer
2017-02-22 13:45:35 +10:00
Nyall Dawson
5c42c7636b [FEATURE] Show a histogram for values behind curve editor
in property assistant

Makes it easier to set suitable curves. Populated in the
background for a nice reponsive widget!
2017-02-22 11:16:54 +10:00
Nyall Dawson
0faf7c395f Allow value fetching and histogram calculation to be canceled 2017-02-22 11:16:54 +10:00
Nyall Dawson
dcf6104753 Allow QgsPropertyTransformers to have an associated QgsCurveTransform 2017-02-22 11:16:54 +10:00
Nyall Dawson
5c3198daea Implement a photoshop-esque curve transformer
Handles scaling of input values to output values by using
a curve created from smoothly joining a number of set
control points.

This assists in creation of curve type transforms, typically
seen in raster image editing software (eg the curves dialog
in GIMP or Photoshop). Transforms are created by passing a
number of set control points through which the transform curve
must pass. The curve is guaranteed to exactly pass through
these control points. Between control points the curve is
smoothly interpolated so that no disjoint sections or
"corners" are present.
2017-02-22 11:16:54 +10:00
Denis Rouzaud
7812d4fb17 remove the-prefix from source code
this might result in variables having the same name as some methods
2017-02-21 18:14:58 +01:00
Juergen E. Fischer
72342557c3 use constant for raster iterator default (followup baa5d90, f924578) 2017-02-21 13:46:11 +01:00
Nyall Dawson
4ad077e391 Merge pull request #4163 from nyalldawson/clang_tidyu
Fix a bunch of suggestions from clang-tidy
2017-02-21 10:38:24 +10:00
Juergen E. Fischer
baa5d90ddc [FEATURE] allow to configure maximum request size for WMS requests (fixes #16182)
Hardwired setting was 2000, which is still default.
2017-02-21 01:01:29 +01:00
Nyall Dawson
7daa4b591e Fix a bunch of suggestions from clang-tidy
And add a new CLANG_TIDY_EXE cmake option. If this is set to the
path to the clang_tidy executable then a bunch of clang-tidy
checks will be run during compilation.
2017-02-21 08:49:29 +10:00
Matthias Kuhn
741e11df97 Add missing sip bindings 2017-02-20 09:06:02 +01:00
Matthias Kuhn
7e6695b0a0 Expose QgsRelation to QML
API changes for consistency:
  - setRelationName has been renamed to QgsRelation::setName
  - setRelationId has been renamed to QgsRelation::setId
2017-02-20 08:45:54 +01:00
Matthias Kuhn
382b213ed1 Remove "the"-prefix from method signatures 2017-02-20 08:45:54 +01:00
Martin Dobias
5f5c1ddb15 Use a path resolver class instead of QgsProject::instance() in map layers
A new class QgsPathResolver is introduced for conversion between absolute
and relative paths when reading/writing XML.

Cleaned up code in layer definition file support (.qlr) to better handle
relative/absolute path conversion.
2017-02-16 09:56:11 +08:00
Juergen E. Fischer
d2a2b18f95 QgsFeature: add pythonic notes to api doc and add QgsFeature.attribute(fieldIdx) binding 2017-02-15 00:08:27 +01:00
lbartoletti
3703bf7396 Move midpoint to QgsGeometryUtils 2017-02-15 08:48:12 +10:00
lbartoletti
e851b68c53 Add some utils functions for QgsPointV2 (distance3D, midpoint) 2017-02-15 08:48:08 +10:00
Nyall Dawson
3215173692 Fix failing equality operator test 2017-02-14 13:48:11 +10:00
Nyall Dawson
3ca0b90a97 Update sip bindings 2017-02-14 13:48:11 +10:00
Nyall Dawson
c4ec256dc2 Tweaked numeric assistant for rotation properties 2017-02-14 13:48:11 +10:00
Nyall Dawson
76e27818a5 [FEATURE] Interactive color assistant for data defined colors 2017-02-14 13:48:11 +10:00
Nyall Dawson
a380bda68b Show size assistant for stroke width properties 2017-02-14 13:48:11 +10:00
Nyall Dawson
d457a894b3 Remove QgsDataDefined
Now completely replaced by QgsProperty and the properties framework
2017-02-14 13:48:11 +10:00
Nyall Dawson
1b5bf1d289 Deprecate QgsScaleExpression
Has now been completely replaced by QgsSizeScalePropertyTransformer
2017-02-14 13:48:11 +10:00
Nyall Dawson
b376ae103c Adds methods which attempt to parse expression based properties
as property transformers
2017-02-14 13:48:11 +10:00
Nyall Dawson
edb30a2191 Merge pull request #4134 from nyalldawson/save_task
[FEATURE] Background saving of vector layers
2017-02-14 13:39:23 +10:00
Nyall Dawson
fbf99afd01 Add method to retrieve all valid srs ids from CRS databases 2017-02-14 05:49:23 +10:00
Nyall Dawson
f2ac60ab54 Merge pull request #4111 from nyalldawson/refresh_layers
[FEATURE] Allow layers to be automatically refreshed at a specified interval
2017-02-14 05:48:41 +10:00
Vincent Mora
77bf999094 Merge pull request #3905 from nextgis/25d_enhancement
[FEATURE] QGIS setting to choose default Z value
2017-02-13 09:11:27 +01:00
Nyall Dawson
35bb5c611f Flip task manager to use weak layer pointers instead of layer ids 2017-02-13 08:55:55 +10:00
Nyall Dawson
8182ec2d3d QgsFeedback can handle report progress reports 2017-02-13 08:30:29 +10:00
Nyall Dawson
95d000f662 [FEATURE] Background saving of vector layers
Switches the vector layer save operation to a background task
using the task manager framework. Allows layers to saved without
blocking the interface.
2017-02-13 08:30:29 +10:00
Nyall Dawson
38f87a624e [FEATURE] Allow layers to be automatically refreshed at a specified interval
This allows users to set a timer interval in layer properties
for individual layers. These layers will be automatically refreshed
at a matching interval.

Canvas updates are deferred in order to avoid refreshing multiple
times if more than one layer has an auto update interval set.

Additionally, logic has been added to skip any auto redraws of
the canvas while the canvas is already being redrawn. This avoids
issues caused by setting a layer auto refresh to a shorter time than
is required to redraw the canvas.
2017-02-13 08:28:39 +10:00
Nyall Dawson
04d392b5a3 Allow QgsMapLayer::triggerRepaint to defer updates
By calling QgsMapLayer::triggerRepaint( true ) any cached
version of the layer will be invalidated, but a map canvas
refresh won't automatically be triggered

This allows invalidation of cached images while deferring
the actual map update until the next canvas refresh.
2017-02-13 08:27:01 +10:00
Juergen E. Fischer
92091c536b dxf export: consider layer styles (fixes #15946) 2017-02-12 20:20:12 +01:00
Nyall Dawson
767e7a53c6 Expose QgsGeometryUtils to python bindings
Has some handy functions and there's no strong reason anymore
why these shouldn't be part of stable API
2017-02-12 13:01:24 +10:00
Nyall Dawson
9ceb6c67e8 Merge pull request #4109 from nyalldawson/db
Rename "Db"/"DB" in API to "Database"
2017-02-12 08:34:19 +10:00
Nyall Dawson
a08137f101 Add unit tests for map renderer label caching 2017-02-07 11:24:30 +10:00