12 Commits

Author SHA1 Message Date
Nyall Dawson
fa26b45736 Crazy fix to avoid shared data getting corrupted in sip bindings
Without this (should be unnecessary) virtual destructor the
shared data member for QgsProperty gets filled with garbage if
a QgsProperty is created from python code.

I can't explain it...!
2017-01-23 12:45:22 +10:00
Nyall Dawson
f0f01709bc Fix failing test 2017-01-23 12:45:22 +10:00
Nyall Dawson
0d9b223856 Fix unused variable warning 2017-01-23 12:45:22 +10:00
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
90e80c1353 Stronger definitions of properties in collections
Instead of defining the suitable field types and values for
properties when registering them to a data defined button,
now properties are fully defined when the valid
property keys are defined.
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
43bbf68943 Port labeling to properties framework 2017-01-23 12:45:21 +10:00
Nyall Dawson
93db66ed1f Allow properties/collections to be prepared in advance 2017-01-23 12:45:21 +10:00
Nyall Dawson
ef3f61fc17 Fix sip subclassing for properties 2017-01-23 12:45:21 +10:00
Nyall Dawson
53ba1a1f10 Add a common interface for QgsPropertyCollection/QgsPropertyCollectionStack 2017-01-23 12:45:21 +10:00
Nyall Dawson
c23de083ce Setting a property to null in collections removes property 2017-01-23 12:45:21 +10:00
Nyall Dawson
f1c1589550 Initial implementation of property system 2017-01-23 12:45:21 +10:00