766 Commits

Author SHA1 Message Date
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
Matthias Kuhn
bbbf8a5a27 [sip] fix editor widget bindings 2015-11-20 15:31:58 +01:00
elpaso
8c24e1e2d4 Added const to config() method 2015-11-20 12:45:23 +01:00
elpaso
7cc0a21bf8 Added config() to QgsEditorWidgetWrapper SIP wrapper 2015-11-20 10:47:57 +01:00
Matthias Kuhn
313c34ce22 [py3] Updates to sip files 2015-11-16 07:42:48 +01:00
Nyall Dawson
526b8fc635 Change some by value arguments to by reference 2015-11-16 09:55:07 +11:00
Matthias Kuhn
56ccb2b858 sipClass_Klass is deprecated for a long time: replace with sipType_Klass 2015-11-11 23:22:51 +01:00
Juergen E. Fischer
9a89408b72 indentation update 2015-11-10 20:21:10 +00:00
Nyall Dawson
719ff408a5 Add some missing SIP bindings, comment some classes as not available
in Python
2015-11-10 17:08:27 +11:00
Juergen E. Fischer
b5794b2f2d sip coverage fixes:
* make sip coverage test aware that there are less classes where QSci sip
  headers are not available
* exclude properties from members
* fix QgsFeatureIds typedef (fixes missing signal
  QgsVectorLayer.featuresDeleted and others)
* add missing notes for PyNames
* include some missing new methods in bindings
2015-11-08 19:30:39 +00:00
Nathan Woodrow
8c86aab0f4 [Expressions] Redesign expression function editor.
Add auto save
2015-11-04 21:27:00 +10:00
elpaso
35d09825bf Added new method to bindings 2015-11-04 10:37:43 +01:00
Hugo Mercier
d16cdcf449 Add more options for filtering legend elements
This introduces two new options to filter legend elements:
- filter by expression: a boolean expression can be set. Only symbols of
features that make the expression evaluated to true will be kept in the legend
- filter by polygon: only symbols of features that are inside the given
polygon will be part of the legend.

The polygon filtering is used in particular for a new option in the
composer legend that allows to filter out anything that is not included
in the current atlas polygon.
2015-11-03 10:39:09 +01:00
Alessandro Pasotti
feab3ad8ec Merge pull request #2405 from elpaso/symbol-export-select-by-group
Interactive selection by group of exported symbols
2015-10-28 18:22:40 +01:00
elpaso
a141ffb390 Interactive selection by group of exported symbols
This fixes #11681
2015-10-28 17:31:21 +01:00
Nyall Dawson
fc49f8dfa9 Add test for coverage of SIP bindings
Not perfect, but good for a quick warning if a new class or member
has been added to the public API without Python bindings. The test
only considers the name of members, since it seems to be impossible
to test for the signature of a Python member. (So adding a new
overloaded method without bindings will still unfortunately pass).

You can avoid the test where bindings are not applicable:
- for a whole class by placing "@note not available in Python bindings"
in the class' Doxygen comments
- or by placing the @note inside a member's Doxygen comments for a
specific member

Additionally, classes which aren't included in the API docs
will not be tested.
2015-10-28 09:54:27 +11:00
Nyall Dawson
fe221d54bf Don't return QStrings by reference, since they're implicitly shared
anyway
2015-10-28 09:47:44 +11:00
Nyall Dawson
f1633a1796 Change all signals to use const refs for non trivial objects 2015-10-26 22:46:25 +11:00
Nyall Dawson
70bff3f6aa Finish flipping a lot of methods to take const references for
non-trivial types
2015-10-26 22:46:14 +11:00
Matthias Kuhn
457c76d964 [sip] QgsMapCanvasSnappingUtils 2015-10-22 10:32:05 +02:00
Matthias Kuhn
ef2528bf02 Allow usage of QgsMapToolAdvancedDigitizing from python code 2015-10-22 10:32:05 +02:00
Matthias Kuhn
1132867622 Make cadDockWidget available in python
Followup efcbbfd
2015-10-19 17:47:54 +02:00
Nyall Dawson
c6df096c38 Followup c49b5b7, more fixes 2015-10-07 18:32:24 +11:00
Nyall Dawson
c49b5b777f Change a lot of arguments to const references in core/gui
Rationale:
- there was a lot of large objects passed by value, so potentially
there's a speed bump from this
- even for implicitly shared classes like QString/QList there's still
a (small) cost for copying the objects when there's no reason to
- it's the right thing to do!
2015-10-07 12:02:04 +11:00
Nathan Woodrow
216821ff38 Don't spam message bar with more of the same error 2015-09-28 17:33:13 +10:00
Nathan Woodrow
6cf2dd0a4c Fix annoying blocking Python error dialog 2015-09-28 17:14:06 +10:00
Larry Shaffer
c74ddf1eec [auth] Add widget for editing an authcfg within a data source URI 2015-09-26 01:37:49 -06:00
Nyall Dawson
228d816b3b Merge pull request #2330 from boundlessgeo/master-2_11-auth-system
Authentication configuration system with master password
2015-09-26 05:45:28 +10:00
Nyall Dawson
e9a060c62d Merge pull request #2336 from slarosa/sortfilter_fieldvalues
[FEATURE] allow filtering for field values in expression widget
2015-09-25 18:49:07 +10:00
Salvatore Larosa
d493a69069 [FEATURE] allow filtering for field values in expression widget 2015-09-25 07:45:26 +02:00
Larry Shaffer
12de332ebd [auth] Add authcfg ID edit widget and support for changing the ID 2015-09-24 23:12:05 -06:00
mhugent
8cec2c935f Merge pull request #2302 from manisandro/geometry_plugins
Geometry Checker and Geometry Snapper plugins
2015-09-25 02:39:50 +02:00
Larry Shaffer
0975c9f7aa [auth] Redesign Authentication section of Options
- Separate management options from auth config table
- Add standalone certificate manager
- Add installed auth method plugin dialog, indicating usage per plugin
2015-09-24 13:05:49 -06:00
Larry Shaffer
c894357a94 [auth system] Python bindings for core and gui classes 2015-09-21 08:51:19 -06:00
Larry Shaffer
e65aa99ae7 [FEATURE] Authentication configuration system with master password
- Main C++ core and gui classes and desktop app integration
- Support for authentication method plugins
- Does not contain any integration with service connections
2015-09-21 08:51:18 -06:00
Martin Dobias
50d4e720a7 [FEATURE] Mutually exclusive layer tree groups (only one child may be checked at a time)
The feature can be toggled individually for groups - in layer tree view context menu.

This code has been funded by Tuscany Region (Italy) - SITA (CIG: 63526840AE) and commissioned to Gis3W s.a.s.
2015-09-21 19:30:15 +08:00
Sandro Mani
e9e638f6f4 Geometry Checker and Geometry Snapper plugins 2015-09-21 10:03:24 +02:00
Nyall Dawson
a77935f491 Use actual map canvas variables & values for symbology widgets 2015-09-17 20:34:51 +10:00
Nyall Dawson
a62c6a917a Give symbol widgets optional access to a map canvas
This allows symbol widgets to fetch properties from the main map
canvas, for instance fetching the current scale from the map.
2015-09-16 21:57:27 +10:00
Matthias Kuhn
3831668f2e Sip bindings for editing and cad map tools 2015-09-11 12:02:25 +02:00
Matthias Kuhn
efcbbfdaeb Move maptools from app->gui 2015-09-11 12:02:25 +02:00
Nyall Dawson
94badce431 Avoid use of QString("") 2015-09-08 06:55:13 +10:00
Nyall Dawson
9e57e3d7ea Add ability to set expression context variables for map canvas 2015-09-07 20:24:56 +10:00
Nyall Dawson
096d46464d Allow setting expression context for symbol widgets and dialogs
This means that symbol selectors can be aware of the correct variable
scope and values for both populating expression builder widgets and
for symbol previews.
2015-09-03 22:46:37 +10:00