mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-28 00:17:30 -05:00
191 lines
6.9 KiB
Plaintext
191 lines
6.9 KiB
Plaintext
/** \ingroup core
|
|
* A base class for objects which belong to a map composition.
|
|
*/
|
|
class QgsComposerObject : QObject, QgsExpressionContextGenerator
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgscomposerobject.h>
|
|
%End
|
|
|
|
public:
|
|
|
|
/** Data defined properties for different item types
|
|
*/
|
|
enum DataDefinedProperty
|
|
{
|
|
NoProperty = 0, /*!< no property */
|
|
AllProperties, /*!< all properties for item */
|
|
TestProperty, /*!< dummy property with no effect on item*/
|
|
//composer page properties
|
|
PresetPaperSize, /*!< preset paper size for composition */
|
|
PaperWidth, /*!< paper width */
|
|
PaperHeight, /*!< paper height */
|
|
NumPages, /*!< number of pages in composition */
|
|
PaperOrientation, /*!< paper orientation */
|
|
//general composer item properties
|
|
PageNumber, /*!< page number for item placement */
|
|
PositionX, /*!< x position on page */
|
|
PositionY, /*!< y position on page */
|
|
ItemWidth, /*!< width of item */
|
|
ItemHeight, /*!< height of item */
|
|
ItemRotation, /*!< rotation of item */
|
|
Transparency, /*!< item transparency */
|
|
Opacity,
|
|
BlendMode, /*!< item blend mode */
|
|
ExcludeFromExports, /*!< exclude item from exports */
|
|
FrameColor, //!< Item frame color
|
|
BackgroundColor, //!< Item background color
|
|
//composer map
|
|
MapRotation, /*!< map rotation */
|
|
MapScale, /*!< map scale */
|
|
MapXMin, /*!< map extent x minimum */
|
|
MapYMin, /*!< map extent y minimum */
|
|
MapXMax, /*!< map extent x maximum */
|
|
MapYMax, /*!< map extent y maximum */
|
|
MapAtlasMargin, /*!< map atlas margin*/
|
|
MapLayers, /*!< map layer set*/
|
|
MapStylePreset, /*!< layer and style visibility preset */
|
|
//composer picture
|
|
PictureSource, /*!< picture source url */
|
|
PictureSvgBackgroundColor, //!< SVG background color
|
|
PictureSvgStrokeColor, //!< SVG stroke color
|
|
PictureSvgStrokeWidth, //!< SVG stroke width
|
|
//html item
|
|
SourceUrl /*!< html source url */
|
|
//legend item
|
|
LegendTitle, //!< Legend title
|
|
LegendColumnCount, //!< Legend column count
|
|
ScalebarFillColor, //!< Scalebar fill color
|
|
ScalebarFillColor2, //!< Scalebar secondary fill color
|
|
ScalebarLineColor, //!< Scalebar line color
|
|
ScalebarLineWidth, //!< Scalebar line width
|
|
};
|
|
|
|
/**
|
|
* Returns the composer object property definitions.
|
|
* @note added in QGIS 3.0
|
|
*/
|
|
static const QgsPropertiesDefinition &propertyDefinitions();
|
|
|
|
/** Specifies whether the value returned by a function should be the original, user
|
|
* set value, or the current evaluated value for the property. This may differ if
|
|
* a property has a data defined expression active.
|
|
*/
|
|
enum PropertyValueType
|
|
{
|
|
EvaluatedValue = 0, /*!< return the current evaluated value for the property */
|
|
OriginalValue /*!< return the original, user set value */
|
|
};
|
|
|
|
/** Constructor
|
|
* @param composition parent composition
|
|
*/
|
|
QgsComposerObject( QgsComposition *composition );
|
|
virtual ~QgsComposerObject();
|
|
|
|
/** Returns the composition the item is attached to.
|
|
* @returns QgsComposition for item.
|
|
*/
|
|
const QgsComposition *composition() const;
|
|
|
|
//! @note not available in python bindings
|
|
// QgsComposition* composition() { return mComposition; }
|
|
|
|
/** Stores item state in DOM element
|
|
* @param elem is DOM element corresponding to item tag
|
|
* @param doc is the DOM document
|
|
*/
|
|
virtual bool writeXml( QDomElement &elem, QDomDocument &doc ) const;
|
|
|
|
/** Sets item state from DOM element
|
|
* @param itemElem is DOM node corresponding to item tag
|
|
* @param doc is DOM document
|
|
*/
|
|
virtual bool readXml( const QDomElement &itemElem, const QDomDocument &doc );
|
|
|
|
/** Returns a reference to the object's property collection, used for data defined overrides.
|
|
* @note added in QGIS 3.0
|
|
* @see setDataDefinedProperties()
|
|
*/
|
|
QgsPropertyCollection &dataDefinedProperties();
|
|
|
|
/** Returns a reference to the object's property collection, used for data defined overrides.
|
|
* @note added in QGIS 3.0
|
|
* @see setDataDefinedProperties()
|
|
*/
|
|
//const QgsPropertyCollection &dataDefinedProperties() const;
|
|
|
|
/** Sets the objects's property collection, used for data defined overrides.
|
|
* @param collection property collection. Existing properties will be replaced.
|
|
* @note added in QGIS 3.0
|
|
* @see dataDefinedProperties()
|
|
*/
|
|
void setDataDefinedProperties( const QgsPropertyCollection &collection );
|
|
|
|
/** Set a custom property for the object.
|
|
* @param key property key. If a property with the same key already exists it will be overwritten.
|
|
* @param value property value
|
|
* @see customProperty()
|
|
* @see removeCustomProperty()
|
|
* @see customProperties()
|
|
* @note added in QGIS 2.12
|
|
*/
|
|
void setCustomProperty( const QString &key, const QVariant &value );
|
|
|
|
/** Read a custom property from the object.
|
|
* @param key property key
|
|
* @param defaultValue default value to return if property with matching key does not exist
|
|
* @returns value of matching property
|
|
* @see setCustomProperty()
|
|
* @see removeCustomProperty()
|
|
* @see customProperties()
|
|
* @note added in QGIS 2.12
|
|
*/
|
|
QVariant customProperty( const QString &key, const QVariant &defaultValue = QVariant() ) const;
|
|
|
|
/** Remove a custom property from the object.
|
|
* @param key property key
|
|
* @see setCustomProperty()
|
|
* @see customProperty()
|
|
* @see customProperties()
|
|
* @note added in QGIS 2.12
|
|
*/
|
|
void removeCustomProperty( const QString &key );
|
|
|
|
/** Return list of keys stored in custom properties for the object.
|
|
* @see setCustomProperty()
|
|
* @see customProperty()
|
|
* @see removeCustomProperty()
|
|
* @note added in QGIS 2.12
|
|
*/
|
|
QStringList customProperties() const;
|
|
|
|
/** Creates an expression context relating to the objects' current state. The context includes
|
|
* scopes for global, project and composition properties.
|
|
* @note added in QGIS 2.12
|
|
*/
|
|
virtual QgsExpressionContext createExpressionContext() const;
|
|
|
|
public slots:
|
|
|
|
/** Triggers a redraw for the item*/
|
|
virtual void repaint();
|
|
|
|
/** Refreshes a data defined property for the item by reevaluating the property's value
|
|
* and redrawing the item with this new value.
|
|
* @param property data defined property to refresh. If property is set to
|
|
* QgsComposerItem::AllProperties then all data defined properties for the item will be
|
|
* refreshed.
|
|
* @param context expression context for evaluating data defined expressions
|
|
* @note this method was added in version 2.5
|
|
*/
|
|
virtual void refreshDataDefinedProperty( const DataDefinedProperty property = AllProperties, const QgsExpressionContext *context = 0 );
|
|
|
|
signals:
|
|
/** Emitted when the item changes. Signifies that the item widgets must update the
|
|
* gui elements.
|
|
*/
|
|
void itemChanged();
|
|
|
|
};
|