2014-09-21 00:38:18 +10:00
|
|
|
/** \ingroup MapComposer
|
|
|
|
* \class QgsComposerMapItem
|
|
|
|
* \brief An item which is drawn inside a QgsComposerMap, eg a grid or map overview.
|
|
|
|
*/
|
|
|
|
class QgsComposerMapItem : QgsComposerObject
|
|
|
|
{
|
|
|
|
%TypeHeaderCode
|
|
|
|
#include <qgscomposermapitem.h>
|
|
|
|
%End
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
/**Constructor for QgsComposerMapItem.
|
|
|
|
* @param name friendly display name for item
|
|
|
|
* @param map QgsComposerMap the item is attached to
|
|
|
|
*/
|
|
|
|
QgsComposerMapItem( const QString& name, QgsComposerMap* map );
|
|
|
|
|
|
|
|
virtual ~QgsComposerMapItem();
|
|
|
|
|
|
|
|
/**Draws the item on to a painter
|
|
|
|
* @param painter destination QPainter
|
|
|
|
*/
|
2014-10-03 23:11:47 +10:00
|
|
|
virtual void draw( QPainter* painter ) = 0;
|
2014-09-21 00:38:18 +10:00
|
|
|
|
|
|
|
/**Stores map item state in DOM element
|
|
|
|
* @param elem is DOM element corresponding to a 'ComposerMap' tag
|
|
|
|
* @param doc DOM document
|
|
|
|
* @see readXML
|
|
|
|
*/
|
|
|
|
virtual bool writeXML( QDomElement& elem, QDomDocument & doc ) const;
|
|
|
|
|
|
|
|
/**Sets map item state from a DOM document
|
|
|
|
* @param itemElem is DOM node corresponding to a 'ComposerMapGrid' tag
|
|
|
|
* @param doc is DOM document
|
|
|
|
* @see writeXML
|
|
|
|
*/
|
|
|
|
virtual bool readXML( const QDomElement& itemElem, const QDomDocument& doc );
|
|
|
|
|
|
|
|
/**Sets composer map for the item
|
|
|
|
* @param map composer map
|
|
|
|
* @see composerMap
|
|
|
|
*/
|
|
|
|
virtual void setComposerMap( QgsComposerMap* map );
|
|
|
|
|
|
|
|
/**Get composer map for the item
|
|
|
|
* @returns composer map
|
|
|
|
* @see setComposerMap
|
|
|
|
*/
|
|
|
|
virtual const QgsComposerMap* composerMap() const;
|
|
|
|
|
|
|
|
/**Get the unique id for the map item
|
|
|
|
* @returns unique id
|
|
|
|
*/
|
|
|
|
QString id() const;
|
|
|
|
|
|
|
|
/**Sets the friendly display name for the item
|
|
|
|
* @param name display name
|
|
|
|
* @see name
|
|
|
|
*/
|
|
|
|
virtual void setName( const QString& name );
|
|
|
|
|
|
|
|
/**Get friendly display name for the item
|
|
|
|
* @returns display name
|
|
|
|
* @see setName
|
|
|
|
*/
|
|
|
|
virtual QString name() const;
|
|
|
|
|
|
|
|
/**Controls whether the item will be drawn
|
|
|
|
* @param enabled set to true to enable drawing of the item
|
|
|
|
* @see enabled
|
|
|
|
*/
|
|
|
|
virtual void setEnabled( const bool enabled );
|
|
|
|
|
|
|
|
/**Returns whether the item will be drawn
|
|
|
|
* @returns true if item will be drawn on the map
|
|
|
|
* @see setEnabled
|
|
|
|
*/
|
|
|
|
virtual bool enabled() const;
|
|
|
|
|
|
|
|
/**Returns true if the item is drawn using advanced effects, such as blend modes.
|
|
|
|
* @returns true if item uses advanced effects
|
|
|
|
*/
|
|
|
|
virtual bool usesAdvancedEffects() const;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/**\ingroup MapComposer
|
|
|
|
* \class QgsComposerMapItemStack
|
|
|
|
* \brief A collection of map items which are drawn above the map content in a
|
|
|
|
* QgsComposerMap. The item stack controls which items are drawn and the
|
|
|
|
* order they are drawn in.
|
|
|
|
* \note added in QGIS 2.5
|
|
|
|
* \see QgsComposerMapItem
|
|
|
|
*/
|
|
|
|
class QgsComposerMapItemStack
|
|
|
|
{
|
|
|
|
%TypeHeaderCode
|
|
|
|
#include <qgscomposermapitem.h>
|
|
|
|
%End
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
/**Constructor for QgsComposerMapItemStack.
|
|
|
|
* @param map QgsComposerMap the item stack is attached to
|
|
|
|
*/
|
|
|
|
QgsComposerMapItemStack( QgsComposerMap* map );
|
|
|
|
|
|
|
|
virtual ~QgsComposerMapItemStack();
|
|
|
|
|
|
|
|
/**Returns the number of items in the stack
|
|
|
|
* @returns number of items in the stack
|
|
|
|
*/
|
|
|
|
int size() const;
|
|
|
|
|
|
|
|
/**Stores the state of the item stack in a DOM node
|
|
|
|
* @param elem is DOM element corresponding to a 'ComposerMap' tag
|
|
|
|
* @param doc DOM document
|
|
|
|
* @returns true if write was successful
|
|
|
|
* @see readXML
|
|
|
|
*/
|
|
|
|
virtual bool writeXML( QDomElement& elem, QDomDocument & doc ) const;
|
|
|
|
|
|
|
|
/**Sets the item stack's state from a DOM document
|
|
|
|
* @param elem is DOM node corresponding to 'a ComposerMap' tag
|
|
|
|
* @param doc DOM document
|
|
|
|
* @returns true if read was successful
|
|
|
|
* @see writeXML
|
|
|
|
*/
|
|
|
|
virtual bool readXML( const QDomElement& elem, const QDomDocument& doc ) = 0;
|
|
|
|
|
|
|
|
/**Draws the items from the stack on a specified painter
|
|
|
|
* @param painter destination QPainter
|
|
|
|
*/
|
|
|
|
void drawItems( QPainter* painter );
|
|
|
|
|
|
|
|
/**Returns whether any items within the stack contain advanced effects,
|
|
|
|
* such as blending modes
|
|
|
|
* @returns true if item stack contains advanced effects
|
|
|
|
*/
|
|
|
|
bool containsAdvancedEffects() const;
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
/**Adds a new map item to the stack and takes ownership of the item.
|
|
|
|
* The item will be added to the end of the stack, and rendered
|
|
|
|
* above any existing map items already present in the stack.
|
|
|
|
* @param item QgsComposerMapItem to add to the stack
|
|
|
|
* @note after adding an item to the stack update()
|
|
|
|
* should be called for the QgsComposerMap to prevent rendering artifacts
|
|
|
|
* @see removeItem
|
|
|
|
*/
|
|
|
|
void addItem( QgsComposerMapItem* item /Transfer/);
|
|
|
|
|
|
|
|
/**Removes an item from the stack and deletes the corresponding QgsComposerMapItem
|
|
|
|
* @param QgsComposerMapItem id for the QgsComposerMapItem to remove
|
|
|
|
* @note after removing an item from the stack, update()
|
|
|
|
* should be called for the QgsComposerMap to prevent rendering artifacts
|
|
|
|
* @see addItem
|
|
|
|
*/
|
|
|
|
void removeItem( const QString& itemId );
|
|
|
|
|
|
|
|
/**Moves an item up the stack, causing it to be rendered above other items
|
|
|
|
* @param itemId id for the QgsComposerMapItem to move up
|
|
|
|
* @note after moving an item within the stack, update() should be
|
|
|
|
* called for the QgsComposerMap to redraw the map with the new item stack order
|
|
|
|
* @see moveItemDown
|
|
|
|
*/
|
|
|
|
void moveItemUp( const QString& itemId );
|
|
|
|
|
|
|
|
/**Moves an item up the stack, causing it to be rendered above other items
|
|
|
|
* @param itemId id for the QgsComposerMapItem to move down
|
|
|
|
* @note after moving an item within the stack, update() should be
|
|
|
|
* called for the QgsComposerMap to redraw the map with the new item stack order
|
|
|
|
* @see moveItemUp
|
|
|
|
*/
|
|
|
|
void moveItemDown( const QString& itemId );
|
|
|
|
|
|
|
|
/**Returns a const reference to an item within the stack
|
|
|
|
* @param itemId id for the QgsComposerMapItem to find
|
|
|
|
* @returns const reference to item, if found
|
|
|
|
* @see item
|
|
|
|
*/
|
|
|
|
const QgsComposerMapItem* constItem( const QString& itemId ) const;
|
|
|
|
|
|
|
|
/**Returns a reference to an item within the stack
|
|
|
|
* @param itemId id for the QgsComposerMapItem to find
|
|
|
|
* @returns reference to item if found
|
|
|
|
* @see constItem
|
|
|
|
*/
|
|
|
|
QgsComposerMapItem* item( const QString& itemId ) const;
|
|
|
|
|
|
|
|
/**Returns a reference to an item within the stack
|
|
|
|
* @param index item position in the stack
|
|
|
|
* @returns reference to item if found
|
|
|
|
* @see constItem
|
|
|
|
*/
|
|
|
|
QgsComposerMapItem* item( const int index ) const;
|
|
|
|
|
|
|
|
/**Returns a reference to an item within the stack
|
|
|
|
* @param idx item position in the stack
|
|
|
|
* @returns reference to item if found
|
|
|
|
* @see constItem
|
|
|
|
* @see item
|
|
|
|
* @note not available in python bindings
|
|
|
|
*/
|
|
|
|
//QgsComposerMapItem &operator[]( int idx );
|
|
|
|
|
|
|
|
/**Returns a list of QgsComposerMapItems contained by the stack
|
|
|
|
* @returns list of items
|
|
|
|
*/
|
|
|
|
QList< QgsComposerMapItem* > asList() const;
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
/**Clears the item stack and deletes all QgsComposerMapItems contained
|
|
|
|
* by the stack
|
|
|
|
*/
|
|
|
|
void removeItems();
|
|
|
|
};
|
|
|
|
|