2855 Commits

Author SHA1 Message Date
Nyall Dawson
77e7693c48 Fix spelling errors in processing algorithm help 2017-03-25 16:23:29 +10:00
Nyall Dawson
5360b79174 [FEATURE] New API QgsGeometry::densifyByCount
Densifies a geometry by adding a specified number of vertices
to each segment
2017-03-25 15:07:16 +10:00
Nyall Dawson
02b4f6c770 Spell check: accurancy->accuracy 2017-03-24 09:36:46 +10:00
Matthias Kuhn
baa4c86262 Fix tests 2017-03-23 15:29:12 +01:00
Matthias Kuhn
f33aabd90a Completely move layer order to core 2017-03-23 15:29:12 +01:00
Nyall Dawson
634d5ffb8a Mark QgsRasterRenderer::legendSymbologyItems as /Out/ in sip 2017-03-23 10:15:30 +10:00
Nyall Dawson
7c79803cc3 Add missing dynamic cast for QgsTriangle to sip bindings 2017-03-22 10:20:01 +10:00
Nyall Dawson
b7d2b9fd72 Merge pull request #4283 from nyalldawson/filterrect
Remove QgsFeatureRequest::FilterRect
2017-03-22 07:38:53 +10:00
lbartoletti
fb3d07f3f5 [FEATURE] New class for triangle
Adds a new geometry class for Triangle geometries

Methods include orthocenter, bisectors, medians, medial, circumscribed (center,
radius), inscribed (center, radius)

Also adds make_triangle expression function for creating triangles
2017-03-21 18:50:47 +10:00
jdugge
45f2cd5583 Fix duplicate QgsRectangle.toString methods
Condenses the 2 duplicate methods to a single method which is usable from the Python bindings.
2017-03-21 15:58:39 +10:00
Nyall Dawson
77706a6447 Avoid multiple map/legend renders while loading compositions 2017-03-21 10:32: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
Nyall Dawson
54d1a93c17 Add missing TransferThis annotation 2017-03-21 10:32:53 +10:00
Nyall Dawson
885269ee78 Only create composer item config widgets on demand
Instead of creating them for all items when composer window
is opened, instead just create and destroy them when
required. None are too heavy to have a noticable delay
when selecting items, but in contrast keeping them around
forever is wasteful on memory.

Also clean up a lot of duplicate composer/composition
code and remove unnecessary signals from api (use a single
itemAdded signal instead of multiple signals for every
item type)
2017-03-21 10:32:53 +10:00
Nyall Dawson
53160c7b21 [composer] Port composer manager to layout manager
Also switch to using a proper model to show/edit compositions
in the dialog.
2017-03-21 10:32:53 +10:00
Nyall Dawson
148e2bcf52 Better method to autogenerate composer names 2017-03-21 10:32:53 +10:00
Nyall Dawson
b6c76186b4 Restore opening existing composers 2017-03-21 10:32:53 +10:00
Nyall Dawson
8c8ac61512 Port composer template saving and duplicating to layout manager 2017-03-21 10:32:52 +10:00
Nyall Dawson
3a1ac1a995 [composer] Attach compositions to QgsProject
This adds a new QgsLayoutManager class which is used for
storage and serializing/deserializing of compositions.

A QgsLayoutManager is attached to QgsProject. This allows
core code to access the compositions attached to a project.
The intention is to move all handling of compositions from
app to core, making it easy for server to access project
compositions without resorting to fragile xml parsing.
2017-03-21 10:32:52 +10:00
Alessandro Pasotti
5adbc641d4 QgsSettings: added Auth, App and Providers sections
That should be all we need for namespaced settings.
2017-03-20 16:09:34 +01:00
Nyall Dawson
f3e1772bb9 Remove QgsFeatureRequest::FilterRect
This enum value has not been in use since filter rects were
separated from other filter types. Leaving it in API is confusing
and leads to incorrect use.
2017-03-20 15:03:10 +10:00
Matthias Kuhn
6f430a60a7 Move QgsAnimatedIcon to a generic implementation (#4272) 2017-03-19 12:52:35 +01:00
Denis Rouzaud
e2d7181289 spelling 2017-03-15 08:23:05 +01:00
Nyall Dawson
ae45d8d490 Move composer title to composition name
Allows the name to be retrieved from core code
2017-03-15 15:19:13 +10:00
Nyall Dawson
2cba52846e If no project layer order set, use layer tree layer order
for QgsMapThemeCollection::masterVisibleLayers()
2017-03-13 14:42:22 +10:00
Nyall Dawson
452abb2484 Add method to QgsMapThemeCollection to retrieve ordered list of
visible layers for the project
2017-03-13 13:40:48 +10:00
Nyall Dawson
9faa628f8b Layer order in map themes must always respect project layer order 2017-03-13 12:52:55 +10:00
Nyall Dawson
6cfc6a1b98 Allow retrieval of project layer order through QgsProject
Previously this was only accessible through app
2017-03-13 12:52:55 +10:00
Matthias Kuhn
0170580019 Save QgsProperty related objects via QVariants 2017-03-09 20:54:44 +01:00
Matthias Kuhn
91da1f5817 [feature] Add support for square centimeters / square millimeter units
Note for documentation writers, centimers / millimeters support has been
added as well in a previous commit.
2017-03-08 11:36:28 +01:00
Matthias Kuhn
56163e2810 Modularize distance and area formatting 2017-03-08 11:36:28 +01:00
Nyall Dawson
74381b85fa Add signal when a map theme changes, add tests 2017-03-08 16:56:05 +10:00
Matthias Kuhn
7dbe4943d6 Notify about QgsProject::crs changes 2017-03-06 18:06:11 +01:00
Alessandro Pasotti
99f859e2ac QgsSettings: removed lower(), now it's case sensistive 2017-03-06 10:51:54 +01:00
Juergen E. Fischer
c77172ed3d fix more flake8 warnings 2017-03-05 10:21:24 +01:00
Nyall Dawson
dadd6133e0 Ensure both attribute table cache & master model request respect
geometry fetching

If request needs geometry but cache isn't fetching it then cache
is bypassed. This is a performance hit, so ensure that cache
and request are always in sync wrt to fetching geoms.

On behalf of Faunalia, sponsored by ENEL
2017-03-05 12:01:46 +10:00
Juergen E. Fischer
a10c890383 More QgsSettings updates:
* revives WMS
* QgsSettings::clear() added
* section added to QgsSettings::contains()
* type parameter added to sip binding of QgsSettings.value()
* TODO: customization & evis
2017-03-04 02:37:59 +01:00
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