|
Krita Source Code Documentation
|
#include <KoSelection.h>
Inheritance diagram for KoSelection:Classes | |
| class | Private |
Signals | |
| void | currentLayerChanged (const KoShapeLayer *layer) |
| emitted when the current layer is changed | |
| void | selectionChanged () |
| emitted when the selection is changed | |
Public Member Functions | |
| KoShapeLayer * | activeLayer () const |
| QRectF | boundingRect () const override |
| Get the bounding box of the shape. | |
| int | count () const |
| return the selection count, i.e. the number of all selected shapes | |
| void | deselect (KoShape *shape) |
| void | deselectAll () |
| clear the selections list | |
| KoShape * | firstSelectedShape () const |
| bool | hitTest (const QPointF &position) const override |
| Check if the shape is hit on position. | |
| bool | isSelected (const KoShape *shape) const |
| return true if the shape is selected | |
| KoSelection (QObject *parent=0) | |
| void | notifyShapeChanged (ChangeType type, KoShape *shape) override |
| QRectF | outlineRect () const override |
| void | paint (QPainter &painter) const override |
Paint the shape fill The class extending this one is responsible for painting itself. painter is expected to be preconfigured to work in "document" pixels. | |
| void | select (KoShape *shape) |
| const QList< KoShape * > | selectedEditableShapes () const |
| const QList< KoShape * > | selectedEditableShapesAndDelegates () const |
| const QList< KoShape * > | selectedShapes () const |
| const QList< KoShape * > | selectedVisibleShapes () const |
| void | setActiveLayer (KoShapeLayer *layer) |
| void | setSize (const QSizeF &size) override |
| Resize the shape. | |
| QSizeF | size () const override |
| Get the size of the shape in pt. | |
| ~KoSelection () override | |
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. | |
| virtual KoShape * | cloneShape () const |
| creates a deep copy of the shape or shape's subtree | |
| 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 | update () const |
| virtual void | updateAbsolute (const QRectF &rect) const |
| KoShapeUserData * | userData () const |
| virtual void | waitUntilReady (bool asynchronous=true) const |
| qint16 | zIndex () const |
| virtual | ~KoShape () |
| Destructor. | |
Public Member Functions inherited from KoShape::ShapeChangeListener | |
| virtual | ~ShapeChangeListener () |
Protected Member Functions | |
| KoSelection (const KoSelection &rhs) | |
Protected Member Functions inherited from KoShape | |
| KoShape (const KoShape &rhs) | |
| QList< ShapeChangeListener * > | listeners () const |
| void | setSizeImpl (const QSizeF &size) const |
| virtual void | shapeChanged (ChangeType type, KoShape *shape=0) |
| void | shapeChangedPriv (KoShape::ChangeType type) |
| QTransform | transform () const |
| return the current matrix that contains the rotation/scale/position of this shape | |
Private Attributes | |
| QSharedDataPointer< Private > | d |
A selection is a shape that contains a number of references to shapes. That means that a selection can be manipulated in the same way as a single shape.
Note that a single shape can be selected in one view, and not in another, and that in a single view, more than one selection can be present. So selections should not be seen as singletons, or as something completely transient.
A selection, however, should not be selectable. We need to think a little about the interaction here.
Definition at line 37 of file KoSelection.h.
| KoSelection::KoSelection | ( | QObject * | parent = 0 | ) |
Definition at line 22 of file KoSelection.cpp.
References connect(), d, and selectionChanged().
|
override |
Definition at line 37 of file KoSelection.cpp.
|
protected |
Definition at line 30 of file KoSelection.cpp.
| KoShapeLayer * KoSelection::activeLayer | ( | ) | const |
Returns a currently active layer.
Definition at line 225 of file KoSelection.cpp.
References d.
|
overridevirtual |
Get the bounding box of the shape.
This includes the line width and the shadow of the shape
Reimplemented from KoShape.
Definition at line 74 of file KoSelection.cpp.
References KoShape::boundingRect(), and selectedVisibleShapes().
| int KoSelection::count | ( | ) | const |
return the selection count, i.e. the number of all selected shapes
Definition at line 142 of file KoSelection.cpp.
References d.
|
signal |
emitted when the current layer is changed
Removes a selected shape.
If the shape is a KoShapeGroup all of its child shapes are automatically removed from the selection. If the shape has no parent or is not a KoShapeGroup, only the given shape is removed from the selection. If the given shape is a child of a KoShapeGroup and recursive selection is enabled the all parents and their child shape up to the toplevel KoShapeGroup are removed from the selection.
| shape | the shape to remove from the selection |
Definition at line 110 of file KoSelection.cpp.
References d, KoShape::removeShapeChangeListener(), and KoShape::setTransformation().
| void KoSelection::deselectAll | ( | ) |
clear the selections list
Definition at line 125 of file KoSelection.cpp.
References d, KoShape::removeShapeChangeListener(), and KoShape::setTransformation().
| KoShape * KoSelection::firstSelectedShape | ( | ) | const |
Return the first selected shape, or 0 if there is nothing selected.
Definition at line 214 of file KoSelection.cpp.
References d.
|
overridevirtual |
Check if the shape is hit on position.
| position | the position where the user clicked. |
Reimplemented from KoShape.
Definition at line 147 of file KoSelection.cpp.
References d, KoShape::hitTest(), KoShape::isVisible(), and KoShape::position().
| bool KoSelection::isSelected | ( | const KoShape * | shape | ) | const |
return true if the shape is selected
Definition at line 201 of file KoSelection.cpp.
References d, and KoShape::parent().
|
overridevirtual |
Implements KoShape::ShapeChangeListener.
Definition at line 230 of file KoSelection.cpp.
References KoShape::addShapeChangeListener(), KoShape::Deleted, and deselect().
|
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 57 of file KoSelection.cpp.
References KoShape::absoluteTransformation(), boundingRect(), KoShape::outlineRect(), selectedVisibleShapes(), and KoShape::transformation().
|
overridevirtual |
Paint the shape fill The class extending this one is responsible for painting itself. painter is expected to be preconfigured to work in "document" pixels.
| painter | used for painting the shape |
Implements KoShape.
Definition at line 41 of file KoSelection.cpp.
Adds a shape to the selection.
If the shape is a KoShapeGroup all of its child shapes are automatically added to the selection. If the shape has no parent or is not a KoShapeGroup, only the given shape is added to the selection. If the given shape is a child of a KoShapeGroup and recursive selection is enabled the all parents and their child shapes up to the toplevel KoShapeGroup are added to the selection.
| shape | the shape to add to the selection |
Definition at line 79 of file KoSelection.cpp.
References KoShape::absoluteTransformation(), KoShape::addShapeChangeListener(), d, KoShape::isSelectable(), isSelected(), KoShape::isVisible(), KIS_SAFE_ASSERT_RECOVER_RETURN, KoShape::parent(), and KoShape::setTransformation().
Same as selectedShapes() but only for editable shapes. Used by the algorithms that modify the image
Definition at line 174 of file KoSelection.cpp.
References KritaUtils::filterContainer(), KoShape::isShapeEditable(), and selectedShapes().
Same as selectedEditableShapes() but also includes shapes delegates. Used for
Definition at line 185 of file KoSelection.cpp.
References selectedShapes(), and KoShape::toolDelegates().
Return the list of selected shapes
Definition at line 158 of file KoSelection.cpp.
References d.
Same as selectedShapes() but only for shapes in visible state. Used by the algorithms that draw shapes on the image
Definition at line 163 of file KoSelection.cpp.
References KritaUtils::filterContainer(), KoShape::isVisible(), and selectedShapes().
|
signal |
emitted when the selection is changed
| void KoSelection::setActiveLayer | ( | KoShapeLayer * | layer | ) |
Sets the currently active layer.
| layer | the new active layer |
Definition at line 219 of file KoSelection.cpp.
References currentLayerChanged(), and d.
|
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 46 of file KoSelection.cpp.
References size().
|
overridevirtual |
Get the size of the shape in pt.
The size is in shape coordinates.
Reimplemented from KoShape.
Definition at line 52 of file KoSelection.cpp.
References outlineRect().
|
private |
Definition at line 149 of file KoSelection.h.