659 Commits

Author SHA1 Message Date
Nyall Dawson
c3a57434d9 Fix clazy 'pass small and trivially-copyable type by value' warnings 2016-02-02 19:47:21 +11:00
Nyall Dawson
f3c7ab61e6 Spelling fixes, updates to chkspelling.sh 2016-02-02 19:47:21 +11:00
Nyall Dawson
24d9c65494 Fix more classes which violate the rule-of-three
Also remove some empty destructors
2016-01-26 14:24:45 +11:00
Juergen E. Fischer
ae52aabd70 more spelling fixes 2016-01-24 20:16:28 +01:00
Nyall Dawson
752f6bd150 Fix classes which violate rule of three, by implementing required
copy/= operators or making them private

This revealed (and fixes) some issues, including a potential crash
using server access control (refs #13919), and a potential crash with
diagrams
2016-01-22 18:45:45 +11:00
Matthias Kuhn
8d72f13a57 [25d] Improve convertability to other layers
* Move height and angle expressions for 2.5D renderer to layer
 * Apply color based on main symbol color

This makes the transition to other renderers easy.

Fixes #14132
2016-01-21 22:37:51 +01:00
Juergen E. Fischer
00633811c9 spelling fixes 2016-01-21 10:42:25 +01:00
Martin Dobias
7a5df7ada6 Move tracing action creation to qgis app 2016-01-19 18:03:15 +01:00
mhugent
f4bdaad59f Merge pull request #2666 from mhugent/symbology_brush_transform
Symbology brush transform
2016-01-19 16:19:09 +01:00
Marco Hugentobler
aa3e550a2f Revert "Revert sipfile changes"
This reverts commit f7284651218c7ebb0eb043e98f648ee04be42f83.
2016-01-19 14:43:45 +01:00
Marco Hugentobler
f728465121 Revert sipfile changes 2016-01-18 09:14:01 +01:00
Denis Rouzaud
a1705ad652 order include in sip files 2016-01-15 15:28:03 +01:00
Matthias Kuhn
0c02f1812e [FEATURE] Add 2.5D Renderer
This adds a configuration interface and renderer that makes it easy to
put all the pieces together which are required to get a 2.5D effect.

It allow for configuring some of the styling and is meant to create an
easy-to-use setup.

Since every part of the system is built around QGIS' internal rendering
and symbology engine, there is much to fine tune. To get all the
possibilities, just change the renderer to a graduated, categorized or
single symbol renderer upon creation and you will find full access to
improve the style to your needs.

Funded by
 * Regional Council of Picardy
 * ADUGA
 * Ville de Nyon
 * Wetu GIT cc
2016-01-15 12:37:50 +01:00
Denis Rouzaud
c063838f52 rename QgsFilePickerWidget to QgsFileWidget 2016-01-15 10:08:34 +01:00
Denis Rouzaud
36157d43ac Add filters to file picker and external widget 2016-01-15 10:08:33 +01:00
Marco Hugentobler
193e9d7818 Update sip files 2016-01-14 13:46:13 +01:00
Martin Dobias
b83f6e359a Merge pull request #2665 from wonder-sk/auto-trace
[FEATURE] Tracing of features (digitizing)

Tracing can be now used in various capturing map tools (add feature, add part, ...) including reshape and split tools.

Tracing is simply a new mode for these tools - when tracing is not enabled, the tools work as usual. When tracing is enabled (by clicking the new magnet icon or pressing T key), tools switch to tracing behavior:
- first click on a vertex/edge (must be snapped!) will start tracing - moving mouse on top of the map continuously updates the trace
- next click will confirm the trace and mark start of a new trace Tracing can be enabled/disabled anytime even while digitizing one feature, so it is possible to digitize some parts of the feature with tracing enabled and other parts with tracing disabled.

Tracing respects snapping configuration for the list of traceable layers.

If there are too many features in map display, tracing is disabled to avoid potentially long tracing structure preparation and large memory overhead. After zooming in or disabling some layers the tracing is enabled again.

Internally, things work like this:
- when tracing is requested, linestrings are extracted from vector layers, then noded (using GEOSNode to resolve all intersections) and finally a simple planar graph is built (vertices + edges)
- when tracing, endpoints are temporarily added to the graph (if not equal to one of existing vertices already) and Dijkstra's algorithm is run to get shortest path

Original specs for the curious ones (the interaction with QGIS is slightly improved from what has been specified): http://www.lutraconsulting.co.uk/crowdfunding/autotrace-phase-2/specification.pdf
2016-01-13 12:18:00 +01:00
Denis Rouzaud
492f1ad18b add sip bindings 2016-01-13 11:49:25 +01:00
Sebastian Dietrich
e5f1d87506 allow zooming to multiple features by their ID
Changed QgsMapCanvas::zoomToFeatureId() to QgsMapCanvas::zoomToFeatureIds() accepting multiple IDs instead of just one.
2016-01-13 00:14:23 +01:00
mhugent
3febba279d Merge pull request #2619 from mhugent/zoom_to_feature
[FEATURE]: Zoom to feature with right-click in attribute table
2016-01-12 16:20:17 +01:00
Nyall Dawson
e29c7e519e Merge pull request #2644 from nirvn/move_save_btn
[ui] move the save symbol button
2016-01-12 21:16:13 +11:00
Martin Dobias
3883a2e5fc [tracer] added docs and sip files 2016-01-11 20:57:28 +01:00
Marco Hugentobler
fb996ae7fa Show message in message bar if feture has no geometry / empty geometry 2016-01-11 15:15:23 +01:00
Juergen E. Fischer
4e1cf3c081 add missing copyright headers 2016-01-08 21:32:11 +01:00
Nyall Dawson
38baaafd05 [FEATURE] Show recent colors in layer right click menus 2016-01-08 16:43:35 +11:00
nirvn
653a1e655f [ui] move the save symbol button 2016-01-07 12:09:35 +07:00
Nyall Dawson
9d63022e4e Merge pull request #2638 from SebDieBln/FixStyleManagerUI
Fix some UI issues in style manager
2016-01-07 11:17:58 +11:00
Sebastian Dietrich
3b30a8c630 [StyleManager] change context-menu handling to signal/slot mechanism
Both context-menus affected: Group-Tree and Item-List
2016-01-07 00:27:18 +01:00
Nyall Dawson
f76babf634 [FEATURE] Add duplicate button to symbol properties
Allows easy duplication of a symbol layer
2016-01-06 16:04:14 +11:00
Sebastian Dietrich
b32f124488 [StyleManager] enable/disable appropriate buttons and menu entries 2016-01-06 02:56:32 +01:00
Marco Hugentobler
36c628336c Add doc 2016-01-05 09:00:58 +01:00
Nyall Dawson
d10680c5fc Followup 881074 2016-01-05 12:18:02 +11:00
Nyall Dawson
881074b194 Boost coverage of SIP bindings
Now all classes and members are either exposed to bindings or marked
as "not available in Python bindings" in the docs.

Drop test thresholds to 0. Now it should be much easier to determine
what missing members have been added which are causing test
failures.
2016-01-05 11:16:15 +11:00
Marco Hugentobler
1519b3e041 Move zoomToFeature to QgsDualView and add checks for null geometries / geometryless layers 2016-01-04 16:29:49 +01:00
Marco Hugentobler
1317220a01 Update qgsmapcanvas.sip 2016-01-04 10:33:07 +01:00
Marco Hugentobler
f815ebc86b [FEATURE]: Zoom to feature with right-click in attribute table 2015-12-28 12:35:19 +01:00
Denis Rouzaud
b0bbfc7c86 Merge pull request #2584 from SebDieBln/MapCanvas_EnterLeave
UI improvement for digitizing maptools
2015-12-23 15:47:28 +01:00
Matthias Kuhn
73ba0e805a [FEATURE] Allow definition of rendering order for renderers
This allows defining the order in which features are processed by
renderers.
2015-12-22 09:12:32 +01:00
Sebastian Dietrich
e8ef77e781 Hide temporary rubberband when maptool is not active. 2015-12-16 20:19:26 +01:00
nirvn
84d2e954bc [projection selector] apply selected projection on double click 2015-12-15 08:36:59 +07:00
Sebastian Dietrich
66a83bd205 make annotations aware of crs (fixes #3618) 2015-12-13 00:22:33 +01:00
Matthias Kuhn
123a60e651 [sip, doxygen] Geometry modifier bindings
and lots of doxymentation
2015-12-10 12:33:43 +01:00
Nyall Dawson
c7c5c007be [FEATURE] Double clicking a legend node opens symbol editor directly 2015-12-09 16:07:39 +11:00
Nyall Dawson
2377688c6c Add QgsColorWidgetAction for easily inserting QgsColorWidgets in menus 2015-12-09 16:07:22 +11:00
Matthias Kuhn
be01b7eec5 [FEATURE] Add N:M relation editing possibilities
This adds the possibility to manage data on a normalized relational
database in N:M relations. On the relation editor in a form, the tools
to add, delete, link and unlink work (also) on the linking table if a
relation is visualized as N:M relation.

Configuration is done through the fields tab where on the relation a
second relation can be chosen (if there is a suitable relation in terms
of a second relation on the linking table).

Limitations
===========

QGIS is not a database management system.

It is based on assumptions about the underlying database system. In
particular it expects

 * A `ON DELETE CASCADE` or similar measure on the second relation
 * Does not take care of setting the primary key when adding features.
   Either users need to be instructed to set them manually or - if it's a
   database derived value - the layers need to be in transaction mode
   (currently only activatable through the API)
2015-12-08 15:49:01 +01:00
Nyall Dawson
9cc9d424ce Add extra check for deprecations to documentation test
This check tests that if a function has been declared deprecated
with either Q_DECL_DEPRECATED or has a @deprecated Doxygen note
then it MUST have both the Q_DECL_DEPRECATD and @deprecated note.

It's important that both are used, as Q_DECL_DEPRECATED allows
throwing a warning if that method is used in code, while the
@deprecated doxygen note gives an indication to devs/PyQGIS users
of why it's deprecated and what should be used instead.

Ideally we'd also test for SIP /Deprecated/ tags, but I can't
find any reliable way to do this.
2015-12-07 21:55:36 +11:00
Nathan Woodrow
d792f2cd8a Merge pull request #2502 from SebDieBln/RuleBasedRendererWidgetDisableButtons
enable/disable buttons in the rule based style dialog (fixes #6708)
2015-12-03 22:47:05 +10:00
Matthias Kuhn
e76949b2a0 More sip bindings 2015-12-01 11:45:44 +01:00
Matthias Kuhn
d2b506cccc Expose changed attributes in QgsFeatureAction and QgsVectorLayerTools 2015-11-30 14:19:35 +01:00
Sebastian Dietrich
b498094780 enable/disable buttons in QgsRuleBasedRendererV2Widget based on selection
also made a tooltip and a label more precise
2015-11-26 21:15:18 +01:00