|
Krita Source Code Documentation
|
#include <KoShapeGroup.h>
Inheritance diagram for KoShapeGroup:Classes | |
| class | Private |
Public Member Functions | |
| QRectF | boundingRect () const override |
| a group's boundingRect | |
| KoShape * | cloneShape () const override |
| creates a deep copy of the shape or shape's subtree | |
| bool | hitTest (const QPointF &position) const override |
| always returns false since the group itself can't be selected or hit | |
| KoShapeGroup () | |
| Constructor. | |
| QRectF | outlineRect () const override |
| void | paintComponent (QPainter &painter) const override |
| This implementation is empty since a group is itself not visible. | |
| void | setSize (const QSizeF &size) override |
| Resize the shape. | |
| QSizeF | size () const override |
| Get the size of the shape in pt. | |
| ~KoShapeGroup () override | |
| destructor | |
Public Member Functions inherited from KoShapeContainer | |
| void | addShape (KoShape *shape) |
| bool | inheritsTransform (const KoShape *shape) const |
| bool | isClipped (const KoShape *child) const |
| KoShapeContainer (KoShapeContainerModel *model=0) | |
| KoShapeContainerModel * | model () const |
| void | paint (QPainter &painter) const override |
| reimplemented | |
| Private (const Private &rhs, KoShapeContainer *q) | |
| Private (KoShapeContainer *q) | |
| void | removeShape (KoShape *shape) |
| void | setClipped (const KoShape *child, bool clipping) |
| void | setInheritsTransform (const KoShape *shape, bool inherit) |
| int | shapeCount () const |
| ShapeInterface * | shapeInterface () |
| QList< KoShape * > | shapes () const |
| virtual void | update () const |
| void | update () const override |
| reimplemented | |
| ~KoShapeContainer () override | |
| virtual | ~Private () |
Public Member Functions inherited from KoShape | |
| QRectF | absoluteOutlineRect () const |
| QPointF | absolutePosition (KoFlake::AnchorPosition anchor=KoFlake::Center) const |
| QTransform | absoluteTransformation () const |
| bool | addDependee (KoShape *shape) |
| QString | additionalAttribute (const QString &name) const |
| void | addShapeChangeListener (ShapeChangeListener *listener) |
| KoShapeAnchor * | anchor () const |
| void | applyAbsoluteTransformation (const QTransform &matrix) |
| void | applyTransformation (const QTransform &matrix) |
| virtual QSharedPointer< KoShapeBackground > | background () const |
| virtual ChildZOrderPolicy | childZOrderPolicy () |
| KoClipMask * | clipMask () const |
| Returns the currently set clip mask or 0 if there is no clip mask set. | |
| KoClipPath * | clipPath () const |
| Returns the currently set clip path or 0 if there is no clip path set. | |
| KoShape * | cloneShapeAndBakeAbsoluteTransform () const |
creates a deep copy of the shape/shapes tree and bakes the absolute transform of this into the resulting shape. | |
| void | copySettings (const KoShape *shape) |
| QList< KoShape * > | dependees () const |
| Returns list of shapes depending on this shape. | |
| QPointF | documentToShape (const QPointF &point) const |
| Transforms point from document coordinates to shape coordinates. | |
| QRectF | documentToShape (const QRectF &rect) const |
| Transform rect from document coordinates to shape coordinates. | |
| KoFilterEffectStack * | filterEffectStack () const |
| bool | hasAdditionalAttribute (const QString &name) const |
| bool | hasCommonParent (const KoShape *shape) const |
| bool | hasDependee (KoShape *shape) const |
| Returns if the given shape is dependent on this shape. | |
| virtual bool | hasTransparency () const |
| QString | hyperLink () const |
| bool | inheritBackground () const |
| inheritBackground shows if the shape inherits background from its parent | |
| bool | inheritPaintOrder () const |
| inheritPaintOrder | |
| bool | inheritsTransformFromAny (const QList< KoShape * > ancestorsInQuestion) const |
inheritsTransformFromAny checks if the shape inherits transformation from any of the shapes listed in ancestorsInQuestion. The inheritance is checked in recursive way. | |
| bool | inheritStroke () const |
| inheritStroke shows if the shape inherits the stroke from its parent | |
| bool | isContentProtected () const |
| bool | isGeometryProtected () const |
| bool | isPrintable () const |
| bool | isSelectable () const |
| virtual bool | isShapeEditable (bool recursive=true) const |
| checks recursively if the shape or one of its parents is not visible or locked | |
| bool | isVisible (bool recursive=true) const |
| bool | keepAspectRatio () const |
| KoShape () | |
| Constructor. | |
| qreal | minimumHeight () const |
| QString | name () const |
| void | notifyChanged () |
| virtual QPainterPath | outline () const |
| virtual void | paintMarkers (QPainter &painter) const |
| paintStroke paints the shape's markers | |
| virtual QVector< PaintOrder > | paintOrder () const |
| paintOrder | |
| virtual void | paintStroke (QPainter &painter) const |
| paintStroke paints the shape's stroked outline | |
| KoShapeContainer * | parent () const |
| QPointF | position () const |
| Get the position of the shape in pt. | |
| void | removeAdditionalAttribute (const QString &name) |
| void | removeAdditionalStyleAttribute (const char *name) |
| void | removeDependee (KoShape *shape) |
| void | removeShapeChangeListener (ShapeChangeListener *listener) |
| void | rotate (qreal angle) |
| Rotate the shape (relative) | |
| qreal | rotation () const |
| int | runThrough () const |
| void | scale (qreal sx, qreal sy) |
| Scale the shape using the zero-point which is the top-left corner. | |
| void | setAbsolutePosition (const QPointF &newPosition, KoFlake::AnchorPosition anchor=KoFlake::Center) |
| void | setAdditionalAttribute (const QString &name, const QString &value) |
| void | setAdditionalStyleAttribute (const char *name, const QString &value) |
| void | setAnchor (KoShapeAnchor *anchor) |
| virtual void | setBackground (QSharedPointer< KoShapeBackground > background) |
| void | setClipMask (KoClipMask *clipMask) |
| Sets a new clip mask, removing the old one. The mask is owned by the shape. | |
| void | setClipPath (KoClipPath *clipPath) |
| Sets a new clip path, removing the old one. | |
| void | setContentProtected (bool protect) |
| void | setFilterEffectStack (KoFilterEffectStack *filterEffectStack) |
| Sets the new filter effect stack, removing the old one. | |
| void | setGeometryProtected (bool on) |
| void | setHyperLink (const QString &hyperLink) |
| void | setInheritBackground (bool value) |
| setInheritBackground marks a shape as inheriting the background from the parent shape. NOTE: The currently selected background is destroyed. | |
| void | setInheritPaintOrder (bool value) |
| setInheritPaintOrder set inherit paint order. | |
| void | setInheritStroke (bool value) |
| setInheritStroke marks a shape as inheriting the stroke from the parent shape. NOTE: The currently selected stroke is destroyed. | |
| void | setKeepAspectRatio (bool keepAspect) |
| void | setMinimumHeight (qreal height) |
| void | setName (const QString &name) |
| virtual void | setPaintOrder (PaintOrder first, PaintOrder second) |
| setPaintOrder set the paint order. As there's only three entries in any given paintorder, you only need to have the first and second entry to set it. | |
| void | setParent (KoShapeContainer *parent) |
| virtual void | setPosition (const QPointF &position) |
| Set the position of the shape in pt. | |
| void | setPrintable (bool on) |
| virtual void | setResolution (qreal xRes, qreal yRes) |
| virtual void | setRunThrough (short int runThrough) |
| void | setSelectable (bool selectable) |
| void | setShadow (KoShapeShadow *shadow) |
| Sets the new shadow, removing the old one. | |
| void | setShapeId (const QString &id) |
| virtual void | setStroke (KoShapeStrokeModelSP stroke) |
| void | setTextRunAroundContour (TextRunAroundContour contour) |
| void | setTextRunAroundDistanceBottom (qreal distance) |
| void | setTextRunAroundDistanceLeft (qreal distance) |
| void | setTextRunAroundDistanceRight (qreal distance) |
| void | setTextRunAroundDistanceTop (qreal distance) |
| void | setTextRunAroundSide (TextRunAroundSide side, RunThroughLevel runThrough=Background) |
| void | setTextRunAroundThreshold (qreal threshold) |
| void | setToolDelegates (const QSet< KoShape * > &delegates) |
| void | setTransformation (const QTransform &matrix) |
| void | setTransparency (qreal transparency) |
| void | setUserData (KoShapeUserData *userData) |
| void | setVisible (bool on) |
| void | setZIndex (qint16 zIndex) |
| KoShapeShadow * | shadow () const |
| Returns the currently set shadow or 0 if there is no shadow set. | |
| virtual QPainterPath | shadowOutline () const |
| QString | shapeId () const |
| QPointF | shapeToDocument (const QPointF &point) const |
| Transforms point from shape coordinates to document coordinates. | |
| QRectF | shapeToDocument (const QRectF &rect) const |
| Transforms rect from shape coordinates to document coordinates. | |
| void | shear (qreal sx, qreal sy) |
| Shear the shape The shape will be sheared using the zero-point which is the top-left corner. | |
| virtual KoSnapData | snapData () const |
| Returns additional snap data the shape wants to have snapping to. | |
| virtual KoShapeStrokeModelSP | stroke () const |
| KoInsets | strokeInsets () const |
| TextRunAroundContour | textRunAroundContour () const |
| qreal | textRunAroundDistanceBottom () const |
| qreal | textRunAroundDistanceLeft () const |
| qreal | textRunAroundDistanceRight () const |
| qreal | textRunAroundDistanceTop () const |
| TextRunAroundSide | textRunAroundSide () const |
| qreal | textRunAroundThreshold () const |
| QSet< KoShape * > | toolDelegates () const |
| QTransform | transformation () const |
| Returns the shapes local transformation matrix. | |
| qreal | transparency (bool recursive=false) const |
| virtual void | updateAbsolute (const QRectF &rect) const |
| KoShapeUserData * | userData () const |
| virtual void | waitUntilReady (bool asynchronous=true) const |
| qint16 | zIndex () const |
| virtual | ~KoShape () |
| Destructor. | |
Private Member Functions | |
| void | invalidateSizeCache () |
| Invalidate the size cache of the group. | |
| KoShapeGroup (const KoShapeGroup &rhs) | |
| void | shapeChanged (ChangeType type, KoShape *shape=0) override |
| void | tryUpdateCachedSize () const |
Private Attributes | |
| QScopedPointer< Private > | d |
Friends | |
| class | ShapeGroupContainerModel |
Provide grouping for shapes. The group shape allows you to add children which will then be grouped in selections and actions.
If you have a set of shapes that together make up a bigger shape it is often useful to group them together so the user will perceive the different shapes as actually being one. This means that if the user clicks on one shape, all shapes in the group will be selected at once, making the tools that works on selections alter all of them at the same time.
Note that while this object is also a shape, it is not actually visible and the user can't interact with it.
WARNING: this class is NOT threadsafe, it caches the size in an unsafe way
Definition at line 34 of file KoShapeGroup.h.
| KoShapeGroup::KoShapeGroup | ( | ) |
Constructor.
Definition at line 88 of file KoShapeGroup.cpp.
References KoShapeContainer::setModelInit(), and ShapeGroupContainerModel.
|
override |
destructor
HACK alert: model will use KoShapeGroup::invalidateSizeCache(), which uses KoShapeGroup's d-pointer. We have to manually remove child shapes from the model in the destructor of KoShapeGroup as the instance d is no longer accessible since ~KoShapeGroup() is executed
Definition at line 104 of file KoShapeGroup.cpp.
References KoShapeContainerModel::deleteOwnedShapes(), and KoShapeContainer::model.
|
private |
Definition at line 95 of file KoShapeGroup.cpp.
References KIS_ASSERT_RECOVER_RETURN, KoShapeContainer::model, KoShapeContainer::setModelInit(), and ShapeGroupContainerModel.
|
overridevirtual |
a group's boundingRect
Reimplemented from KoShape.
Definition at line 169 of file KoShapeGroup.cpp.
References KoInsets::bottom, KoShape::boundingRect(), KoShapeShadow::insets(), KoInsets::left, KoInsets::right, KoShape::shadow(), KoShapeContainer::shapes(), and KoInsets::top.
|
overridevirtual |
creates a deep copy of the shape or shape's subtree
Reimplemented from KoShape.
Definition at line 115 of file KoShapeGroup.cpp.
References KoShapeGroup().
|
overridevirtual |
always returns false since the group itself can't be selected or hit
Reimplemented from KoShape.
Definition at line 125 of file KoShapeGroup.cpp.
References KoShape::position().
|
private |
Invalidate the size cache of the group.
The group shape caches the size of itself as it can be quite expensive to recalculate the size if there are a lot of subshapes. This function is called when the cache needs to be invalidated.
Definition at line 195 of file KoShapeGroup.cpp.
References d.
|
overridevirtual |
returns the outline of the shape in the form of a rect. The outlineRect returned will always be relative to the position() of the shape, so moving the shape will not alter the result. The outline is used to calculate the boundingRect.
Reimplemented from KoShape.
Definition at line 163 of file KoShapeGroup.cpp.
References d, and tryUpdateCachedSize().
|
overridevirtual |
This implementation is empty since a group is itself not visible.
Implements KoShapeContainer.
Definition at line 120 of file KoShapeGroup.cpp.
|
overridevirtual |
Resize the shape.
| size | the new size of the shape. This is different from scaling as scaling is a so called secondary operation which is comparable to zooming in instead of changing the size of the basic shape. Easiest example of this difference is that using this method will not distort the size of pattern-fills and strokes. |
Reimplemented from KoShape.
Definition at line 150 of file KoShapeGroup.cpp.
References KoShape::scale(), KoShape::setSize(), KoShape::setTransformation(), KoShapeContainer::shapeCount(), size(), and KoShape::transformation().
|
overrideprivatevirtual |
A hook that allows inheriting classes to do something after a KoShape property changed This is called whenever the shape, position rotation or scale properties were altered.
| type | an indicator which type was changed. |
| shape | the shape. |
Reimplemented from KoShapeContainer.
Definition at line 181 of file KoShapeGroup.cpp.
References invalidateSizeCache(), KoShapeContainer::shapeChanged(), and KoShape::StrokeChanged.
|
overridevirtual |
Get the size of the shape in pt.
The size is in shape coordinates.
Reimplemented from KoShape.
Definition at line 144 of file KoShapeGroup.cpp.
References KoShape::size(), and tryUpdateCachedSize().
|
private |
Definition at line 131 of file KoShapeGroup.cpp.
References d, KoShape::outlineRect(), KoShape::setSizeImpl(), KoShapeContainer::shapes(), and KoShape::transformation().
|
friend |
Definition at line 55 of file KoShapeGroup.h.
|
private |
Definition at line 75 of file KoShapeGroup.h.