QGIS API Documentation
2.2.0-Valmiera
|
A composer items that draws common shapes (ellipse, triangle, rectangle) More...
#include <qgscomposershape.h>
Public Types | |
enum | Shape { Ellipse, Rectangle, Triangle } |
Public Types inherited from QgsComposerItem | |
enum | ItemType { ComposerItem = UserType + 100, ComposerArrow, ComposerItemGroup, ComposerLabel, ComposerLegend, ComposerMap, ComposerPaper, ComposerPicture, ComposerScaleBar, ComposerShape, ComposerTable, ComposerAttributeTable, ComposerTextTable, ComposerFrame } |
enum | MouseMoveAction { MoveItem, ResizeUp, ResizeDown, ResizeLeft, ResizeRight, ResizeLeftUp, ResizeRightUp, ResizeLeftDown, ResizeRightDown, NoAction } |
Describes the action (move or resize in different directon) to be done during mouse move. More... | |
enum | ItemPositionMode { UpperLeft, UpperMiddle, UpperRight, MiddleLeft, Middle, MiddleRight, LowerLeft, LowerMiddle, LowerRight } |
Public Slots | |
void | refreshSymbol () |
Should be called after the shape's symbol is changed. | |
Public Slots inherited from QgsComposerItem | |
virtual void | setRotation (double r) |
Sets the item rotation. | |
virtual void | setItemRotation (double r, bool adjustPosition=false) |
Sets the item rotation. | |
void | repaint () |
Public Member Functions | |
QgsComposerShape (QgsComposition *composition) | |
QgsComposerShape (qreal x, qreal y, qreal width, qreal height, QgsComposition *composition) | |
~QgsComposerShape () | |
virtual int | type () const |
return correct graphics item type. | |
void | paint (QPainter *painter, const QStyleOptionGraphicsItem *itemStyle, QWidget *pWidget) |
Reimplementation of QCanvasItem::paint - draw on canvas. | |
bool | writeXML (QDomElement &elem, QDomDocument &doc) const |
stores state in Dom element | |
bool | readXML (const QDomElement &itemElem, const QDomDocument &doc) |
sets state from Dom document | |
QgsComposerShape::Shape | shapeType () const |
void | setShapeType (QgsComposerShape::Shape s) |
void | setCornerRadius (double radius) |
Sets radius for rounded rectangle corners. | |
double | cornerRadius () const |
Returns the radius for rounded rectangle corners. | |
void | setShapeStyleSymbol (QgsFillSymbolV2 *symbol) |
Sets the QgsFillSymbolV2 used to draw the shape. | |
QgsFillSymbolV2 * | shapeStyleSymbol () |
Returns the QgsFillSymbolV2 used to draw the shape. | |
void | setUseSymbolV2 (bool useSymbolV2) |
Controls whether the shape should be drawn using a QgsFillSymbolV2. | |
Public Member Functions inherited from QgsComposerItem | |
QgsComposerItem (QgsComposition *composition, bool manageZValue=true) | |
Constructor. | |
QgsComposerItem (qreal x, qreal y, qreal width, qreal height, QgsComposition *composition, bool manageZValue=true) | |
Constructor with box position and composer object. | |
virtual | ~QgsComposerItem () |
virtual void | setSelected (bool s) |
Set selected, selected item should be highlighted. | |
virtual bool | selected () const |
Is selected. | |
virtual bool | writeSettings () |
stores state in project | |
virtual bool | readSettings () |
read state from project | |
virtual bool | removeSettings () |
delete settings from project file | |
void | move (double dx, double dy) |
Moves item in canvas coordinates. | |
virtual void | moveContent (double dx, double dy) |
Move Content of item. | |
virtual void | zoomContent (int delta, double x, double y) |
Zoom content of item. | |
void | setItemPosition (double x, double y, ItemPositionMode itemPoint=UpperLeft) |
Moves the item to a new position (in canvas coordinates) | |
void | setItemPosition (double x, double y, double width, double height, ItemPositionMode itemPoint=UpperLeft, bool posIncludesFrame=false) |
Sets item position and width / height in one go. | |
ItemPositionMode | lastUsedPositionMode () |
Returns item's last used position mode. | |
virtual void | setSceneRect (const QRectF &rectangle) |
Sets this items bound in scene coordinates such that 1 item size units corresponds to 1 scene size unit. | |
bool | _writeXML (QDomElement &itemElem, QDomDocument &doc) const |
Writes parameter that are not subclass specific in document. | |
bool | _readXML (const QDomElement &itemElem, const QDomDocument &doc) |
Reads parameter that are not subclass specific in document. | |
bool | hasFrame () const |
Whether this item has a frame or not. | |
void | setFrameEnabled (bool drawFrame) |
Set whether this item has a frame drawn around it or not. | |
virtual void | setFrameOutlineWidth (double outlineWidth) |
Sets frame outline width. | |
virtual QRectF | rectWithFrame () const |
Returns the item's rectangular bounds, including any bleed caused by the item's frame. | |
bool | hasBackground () const |
Whether this item has a Background or not. | |
void | setBackgroundEnabled (bool drawBackground) |
Set whether this item has a Background drawn around it or not. | |
QColor | backgroundColor () const |
Gets the background color for this item. | |
void | setBackgroundColor (const QColor &backgroundColor) |
Sets the background color for this item. | |
QPainter::CompositionMode | blendMode () const |
Returns the item's composition blending mode. | |
void | setBlendMode (QPainter::CompositionMode blendMode) |
Sets the item's composition blending mode. | |
int | transparency () const |
Returns the item's transparency. | |
void | setTransparency (int transparency) |
Sets the item's transparency. | |
bool | effectsEnabled () const |
Returns true if effects (eg blend modes) are enabled for the item. | |
void | setEffectsEnabled (bool effectsEnabled) |
Sets whether effects (eg blend modes) are enabled for the item. | |
virtual void | addItem (QgsComposerItem *item) |
Composite operations for item groups do nothing per default. | |
virtual void | removeItems () |
const QgsComposition * | composition () const |
QgsComposition * | composition () |
virtual void | beginItemCommand (const QString &text) |
void | beginCommand (const QString &commandText, QgsComposerMergeCommand::Context c=QgsComposerMergeCommand::Unknown) |
Starts new composer undo command. | |
virtual void | endItemCommand () |
void | endCommand () |
Finish current command and push it onto the undo stack. | |
void | cancelCommand () |
void | drawText (QPainter *p, double x, double y, const QString &text, const QFont &font) const |
Draws Text. | |
void | drawText (QPainter *p, const QRectF &rect, const QString &text, const QFont &font, Qt::AlignmentFlag halignment=Qt::AlignLeft, Qt::AlignmentFlag valignment=Qt::AlignTop) const |
Like the above, but with a rectangle for multiline text. | |
double | textWidthMillimeters (const QFont &font, const QString &text) const |
Returns the font width in millimeters (considers upscaling and downscaling with FONT_WORKAROUND_SCALE. | |
double | fontHeightCharacterMM (const QFont &font, const QChar &c) const |
Returns the font height of a character in millimeters. | |
double | fontAscentMillimeters (const QFont &font) const |
Returns the font ascent in Millimeters (considers upscaling and downscaling with FONT_WORKAROUND_SCALE. | |
double | fontDescentMillimeters (const QFont &font) const |
Returns the font ascent in Millimeters (considers upscaling and downscaling with FONT_WORKAROUND_SCALE. | |
double | pixelFontSize (double pointSize) const |
Calculates font to from point size to pixel size. | |
QFont | scaledFontPixelSize (const QFont &font) const |
Returns a font where size is in pixel and font size is upscaled with FONT_WORKAROUND_SCALE. | |
void | setPositionLock (bool lock) |
Locks / unlocks the item position for mouse drags. | |
bool | positionLock () const |
Returns position lock for mouse drags (true means locked) | |
double | itemRotation () const |
Returns the rotation for the composer item. | |
double | rotation () const |
Returns the rotation for the composer item. | |
virtual void | updateItem () |
Updates item, with the possibility to do custom update for subclasses. | |
QString | id () const |
Get item's id (which is not necessarly unique) | |
virtual void | setId (const QString &id) |
Set item's id (which is not necessarly unique) | |
QString | uuid () const |
Get item identification name. |
Protected Member Functions | |
virtual void | drawFrame (QPainter *p) |
Draw black frame around item. | |
virtual void | drawBackground (QPainter *p) |
Draw background. | |
virtual double | estimatedFrameBleed () const |
reimplement estimatedFrameBleed, since frames on shapes are drawn using symbology rather than the item's pen | |
Protected Member Functions inherited from QgsComposerItem | |
virtual void | drawSelectionBoxes (QPainter *p) |
Draw selection boxes around item. | |
void | drawArrowHead (QPainter *p, double x, double y, double angle, double arrowHeadWidth) const |
Draws arrowhead. | |
double | angle (const QPointF &p1, const QPointF &p2) const |
Returns angle of the line from p1 to p2 (clockwise, starting at N) | |
double | rectHandlerBorderTolerance () const |
Returns the current (zoom level dependent) tolerance to decide if mouse position is close enough to the item border for resizing. | |
double | lockSymbolSize () const |
Returns the size of the lock symbol depending on the composer zoom level and the item size. | |
double | horizontalViewScaleFactor () const |
Returns the zoom factor of the graphics view. | |
bool | imageSizeConsideringRotation (double &width, double &height, double rotation) const |
Calculates width and hight of the picture (in mm) such that it fits into the item frame with the given rotation. | |
bool | imageSizeConsideringRotation (double &width, double &height) const |
Calculates width and hight of the picture (in mm) such that it fits into the item frame with the given rotation. | |
QRectF | largestRotatedRectWithinBounds (QRectF originalRect, QRectF boundsRect, double rotation) const |
Calculates the largest scaled version of originalRect which fits within boundsRect, when it is rotated by a specified amount. | |
bool | cornerPointOnRotatedAndScaledRect (double &x, double &y, double width, double height, double rotation) const |
Calculates corner point after rotation and scaling. | |
bool | cornerPointOnRotatedAndScaledRect (double &x, double &y, double width, double height) const |
Calculates corner point after rotation and scaling. | |
void | sizeChangedByRotation (double &width, double &height, double rotation) |
Calculates width / height of the bounding box of a rotated rectangle. | |
void | sizeChangedByRotation (double &width, double &height) |
Calculates width / height of the bounding box of a rotated rectangle. | |
void | rotate (double angle, double &x, double &y) const |
Rotates a point / vector. | |
QGraphicsLineItem * | hAlignSnapItem () |
Return horizontal align snap item. | |
void | deleteHAlignSnapItem () |
QGraphicsLineItem * | vAlignSnapItem () |
Return vertical align snap item. | |
void | deleteVAlignSnapItem () |
void | deleteAlignItems () |
Private Member Functions | |
void | drawShape (QPainter *p) |
void | drawShapeUsingSymbol (QPainter *p) |
void | createDefaultShapeStyleSymbol () |
QPointF | pointOnLineWithDistance (const QPointF &startPoint, const QPointF &directionPoint, double distance) const |
Returns a point on the line from startPoint to directionPoint that is a certain distance away from the starting point. |
Private Attributes | |
Shape | mShape |
Ellipse, rectangle or triangle. | |
double | mCornerRadius |
bool | mUseSymbolV2 |
QgsFillSymbolV2 * | mShapeStyleSymbol |
Additional Inherited Members | |
Signals inherited from QgsComposerItem | |
void | itemRotationChanged (double newRotation) |
Is emitted on item rotation change. | |
void | itemChanged () |
Used e.g. | |
void | sizeChanged () |
Emitted if the rectangle changes. | |
void | frameChanged () |
Emitted if the item's frame style changes. | |
Protected Attributes inherited from QgsComposerItem | |
QgsComposition * | mComposition |
QgsComposerItem::MouseMoveAction | mCurrentMouseMoveAction |
QPointF | mMouseMoveStartPos |
Start point of the last mouse move action (in scene coordinates) | |
QPointF | mLastMouseEventPos |
Position of the last mouse move event (in scene coordinates) | |
QGraphicsRectItem * | mBoundingResizeRectangle |
Rectangle used during move and resize actions. | |
QGraphicsLineItem * | mHAlignSnapItem |
QGraphicsLineItem * | mVAlignSnapItem |
bool | mFrame |
True if item fram needs to be painted. | |
bool | mBackground |
True if item background needs to be painted. | |
QColor | mBackgroundColor |
Background color. | |
bool | mItemPositionLocked |
True if item position and size cannot be changed with mouse move. | |
double | mLastValidViewScaleFactor |
Backup to restore item appearance if no view scale factor is available. | |
double | mItemRotation |
Item rotation in degrees, clockwise. | |
QPainter::CompositionMode | mBlendMode |
Composition blend mode for item. | |
bool | mEffectsEnabled |
QgsComposerEffect * | mEffect |
int | mTransparency |
Item transparency. | |
ItemPositionMode | mLastUsedPositionMode |
The item's position mode. |
A composer items that draws common shapes (ellipse, triangle, rectangle)
Definition at line 28 of file qgscomposershape.h.
Definition at line 33 of file qgscomposershape.h.
QgsComposerShape::QgsComposerShape | ( | QgsComposition * | composition | ) |
Definition at line 24 of file qgscomposershape.cpp.
References createDefaultShapeStyleSymbol(), and QgsComposerItem::setFrameEnabled().
QgsComposerShape::QgsComposerShape | ( | qreal | x, |
qreal | y, | ||
qreal | width, | ||
qreal | height, | ||
QgsComposition * | composition | ||
) |
Definition at line 34 of file qgscomposershape.cpp.
References createDefaultShapeStyleSymbol(), QgsComposerItem::setFrameEnabled(), and QgsComposerItem::setSceneRect().
QgsComposerShape::~QgsComposerShape | ( | ) |
Definition at line 46 of file qgscomposershape.cpp.
References mShapeStyleSymbol.
|
inline |
Returns the radius for rounded rectangle corners.
Definition at line 69 of file qgscomposershape.h.
|
private |
Definition at line 71 of file qgscomposershape.cpp.
References QgsFillSymbolV2::createSimple(), and mShapeStyleSymbol.
Referenced by QgsComposerShape().
|
protectedvirtual |
Draw background.
Reimplemented from QgsComposerItem.
Definition at line 241 of file qgscomposershape.cpp.
References drawShape(), QgsComposerItem::mBackground, and mUseSymbolV2.
Referenced by paint().
|
protectedvirtual |
Draw black frame around item.
Reimplemented from QgsComposerItem.
Definition at line 230 of file qgscomposershape.cpp.
References drawShape(), QgsComposerItem::mFrame, and mUseSymbolV2.
Referenced by paint().
|
private |
Definition at line 101 of file qgscomposershape.cpp.
References drawShapeUsingSymbol(), Ellipse, mCornerRadius, mShape, mUseSymbolV2, Rectangle, and Triangle.
Referenced by drawBackground(), and drawFrame().
|
private |
Definition at line 140 of file qgscomposershape.cpp.
References QgsComposition::atlasComposition(), QgsComposition::atlasMode(), QgsComposition::AtlasOff, QgsAtlasComposition::currentFeature(), Ellipse, QgsAtlasComposition::enabled(), QgsSymbolLayerV2Utils::estimateMaxSymbolBleed(), QgsComposerItem::horizontalViewScaleFactor(), QgsComposerItem::mComposition, mCornerRadius, mShape, mShapeStyleSymbol, QgsComposition::plotStyle(), QgsComposition::Preview, QgsComposition::printResolution(), Rectangle, QgsFillSymbolV2::renderPolygon(), QgsRenderContext::setPainter(), QgsRenderContext::setRasterScaleFactor(), QgsRenderContext::setScaleFactor(), QgsSymbolV2::startRender(), QgsSymbolV2::stopRender(), and Triangle.
Referenced by drawShape().
|
protectedvirtual |
reimplement estimatedFrameBleed, since frames on shapes are drawn using symbology rather than the item's pen
Reimplemented from QgsComposerItem.
Definition at line 252 of file qgscomposershape.cpp.
References QgsSymbolLayerV2Utils::estimateMaxSymbolBleed(), and mShapeStyleSymbol.
void QgsComposerShape::paint | ( | QPainter * | painter, |
const QStyleOptionGraphicsItem * | itemStyle, | ||
QWidget * | pWidget | ||
) |
Reimplementation of QCanvasItem::paint - draw on canvas.
Definition at line 83 of file qgscomposershape.cpp.
References drawBackground(), drawFrame(), and QgsComposerItem::drawSelectionBoxes().
|
private |
Returns a point on the line from startPoint to directionPoint that is a certain distance away from the starting point.
|
virtual |
sets state from Dom document
itemElem | is Dom node corresponding to item tag |
doc | is Dom document |
Implements QgsComposerItem.
Definition at line 270 of file qgscomposershape.cpp.
References QgsComposerItem::_readXML(), QgsFillSymbolV2::createSimple(), QgsSymbolLayerV2Utils::encodeColor(), QgsComposerItem::hasBackground(), QgsComposerItem::hasFrame(), QgsComposerItem::itemChanged(), QgsSymbolLayerV2Utils::loadSymbol(), mCornerRadius, mShape, mShapeStyleSymbol, and QgsComposerItem::setItemRotation().
Referenced by QgsComposition::addItemsFromXML().
|
slot |
Should be called after the shape's symbol is changed.
Redraws the shape and recalculates its selection bounds. Note: added in version 2.1
Definition at line 65 of file qgscomposershape.cpp.
References QgsComposerItem::frameChanged().
void QgsComposerShape::setCornerRadius | ( | double | radius | ) |
Sets radius for rounded rectangle corners.
Added in v2.1
Definition at line 327 of file qgscomposershape.cpp.
References mCornerRadius.
void QgsComposerShape::setShapeStyleSymbol | ( | QgsFillSymbolV2 * | symbol | ) |
Sets the QgsFillSymbolV2 used to draw the shape.
Must also call setUseSymbolV2( true ) to enable drawing with a symbol. Note: added in version 2.1
Definition at line 57 of file qgscomposershape.cpp.
References QgsComposerItem::frameChanged(), and mShapeStyleSymbol.
|
inline |
Definition at line 64 of file qgscomposershape.h.
Referenced by QgsComposerView::addShape().
void QgsComposerShape::setUseSymbolV2 | ( | bool | useSymbolV2 | ) |
Controls whether the shape should be drawn using a QgsFillSymbolV2.
Note: Added in v2.1
Definition at line 51 of file qgscomposershape.cpp.
References mUseSymbolV2, and QgsComposerItem::setFrameEnabled().
Referenced by QgsComposition::addItemsFromXML(), and QgsComposerView::addShape().
|
inline |
Returns the QgsFillSymbolV2 used to draw the shape.
Note: added in version 2.1
Definition at line 77 of file qgscomposershape.h.
|
inline |
Definition at line 63 of file qgscomposershape.h.
|
inlinevirtual |
return correct graphics item type.
Added in v1.7
Reimplemented from QgsComposerItem.
Definition at line 45 of file qgscomposershape.h.
References QgsComposerItem::ComposerShape.
|
virtual |
stores state in Dom element
elem | is Dom element corresponding to 'Composer' tag |
doc | write template file |
Implements QgsComposerItem.
Definition at line 257 of file qgscomposershape.cpp.
References QgsComposerItem::_writeXML(), mCornerRadius, mShape, mShapeStyleSymbol, and QgsSymbolLayerV2Utils::saveSymbol().
|
private |
Definition at line 102 of file qgscomposershape.h.
Referenced by drawShape(), drawShapeUsingSymbol(), readXML(), setCornerRadius(), and writeXML().
|
private |
Ellipse, rectangle or triangle.
Definition at line 100 of file qgscomposershape.h.
Referenced by drawShape(), drawShapeUsingSymbol(), readXML(), and writeXML().
|
private |
Definition at line 106 of file qgscomposershape.h.
Referenced by createDefaultShapeStyleSymbol(), drawShapeUsingSymbol(), estimatedFrameBleed(), readXML(), setShapeStyleSymbol(), writeXML(), and ~QgsComposerShape().
|
private |
Definition at line 104 of file qgscomposershape.h.
Referenced by drawBackground(), drawFrame(), drawShape(), and setUseSymbolV2().