20 Commits

Author SHA1 Message Date
Nyall Dawson
ffaa40edc4 Refactor properties
Remove QgsAbstractProperty and subclasses, and instead use a single
QgsProperty class which covers the use of QgsAbstractProperty
and its subclasses. This simplifies the API and avoids pointer
handling. QgsProperty is implicitly shared for memory efficiency
and inexpensive copies.
2017-01-23 12:45:21 +10:00
Nyall Dawson
ad2324021d Port symbology and composer to properties framework 2017-01-23 12:45:21 +10:00
Nyall Dawson
44289084e9 Optimise passing of variables by ref/value 2016-10-24 10:36:23 +10:00
Nyall Dawson
eb5cc0c731 Add method to reset vector layer for data defined button 2016-08-17 10:56:51 +10:00
Matthias Kuhn
58ea21124e Streamline expression context generation (#3350)
* Save more data to QML

 * Virtual fields
 * Map tips
 * Display expression
 * Read only flag

* Streamline expression context generation

Whenever an object is able to generate an expression context it
implements the method createExpressionContext() declared in
QgsExpressionContextGenerator.

This makes a cleaner API and allows using QgsFieldExpressionWidget and
QgsDataDefinedButton from python because standard OO programming
approaches are used instead of callbacks and void pointers.

* Colorize output of doc and sip tests

* Fix build

* Fix sip complaints

* Fix rebase problems

* Workaround failing bindings test
2016-08-10 19:44:30 +02: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
Nyall Dawson
a77935f491 Use actual map canvas variables & values for symbology widgets 2015-09-17 20:34:51 +10:00
Nyall Dawson
94badce431 Avoid use of QString("") 2015-09-08 06:55:13 +10:00
Nyall Dawson
a7d8519c7f Ensure context is available to builders from data defined buttons 2015-08-22 19:01:42 +10:00
Nyall Dawson
084c4558b6 Make size assistant more prominent in dd buttons, allow control of
assistant menu text
2015-06-15 07:21:27 +10:00
Nyall Dawson
ef0d413819 Data defined font marker character 2015-05-22 20:00:19 +10:00
vmora
1e46196937 [FEATURE] add expressions at the symbollist level
Size and Rotation can be defined by an expression for all symbols
composing a marker. Width can be defined by an expression for all
symbols composing a line.

For markers, a legend is generated for varying sizes. This allows
multivariate analysis legend in the case of classified/graduated colors.

The offset is now set along with size to maintain the relative position
of symbols composing a marker.

An asistant, with preview, is accessible through the data defined button
to help the user define the size expression. Three methods are
available: Frannery, Area and Radius.

Added a widget for use in categorized/classified symbology gui to set
the expression if needed. The assistant is also available from it.
2015-05-20 19:30:18 +10:00
Nyall Dawson
d970daafa3 Add a method for creating a QgsDataDefined from a QgsDataDefinedButton 2015-05-08 16:25:04 +10:00
Nyall Dawson
6ad2f9f091 Some improvements to QgsDataDefined and QgsDataDefinedButton:
- enhanced methods for storing/retrieving QgsDataDefined in a
  string map
- add method to QgsDataDefinedButton to update parameters for a
  QgsDataDefined
- deprecate an unused method
- const correctness
2015-05-06 18:35:59 +10:00
vmora
6a8526f91c Add assistant support to QgsDataDefinedButton 2015-04-27 18:22:57 +10:00
Nyall Dawson
3c71498c3e Add some missing /TransferThis/ to sip bindings for QObject parents 2015-02-18 17:35:47 +11:00
Nyall Dawson
6d7e3960de Deprecate QgsDataDefinedSymbolDialog, no longer used
Move help descriptions to QgsDataDefinedButton and consolidate
with existing descriptions.
2015-01-23 16:54:58 +11:00
Denis Rouzaud
5b1a516f2e more flag operators declaration in SIP, better use of flags in data defined button 2014-09-01 10:51:06 +02:00
Juergen E. Fischer
45c0be1059 sip: remove enum constants 2014-06-02 21:52:02 +02:00
Juergen E. Fischer
99f998aa30 - add missing sip bindings
- port widgets_tree.py to QtXml and update customization.xml (fixes #5752 and  #8054)
2013-06-22 19:41:34 +02:00