17#ifndef QGSLAYOUTMOUSEHANDLES_H
18#define QGSLAYOUTMOUSEHANDLES_H
49class GUI_EXPORT QgsLayoutMouseHandles :
public QgsGraphicsViewMouseHandles
59 void setLayout(
QgsLayout *layout ) { mLayout = layout; }
65 QgsLayout *layout() {
return mLayout; }
67 void paint( QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr )
override;
70 void setViewportCursor( Qt::CursorShape cursor )
override;
71 QList<QGraphicsItem *> sceneItemsAtPoint( QPointF scenePoint )
override;
72 QList<QGraphicsItem *> selectedSceneItems(
bool includeLockedItems =
true )
const override;
73 bool itemIsLocked( QGraphicsItem *item )
override;
74 bool itemIsGroupMember( QGraphicsItem *item )
override;
75 QRectF itemRect( QGraphicsItem *item )
const override;
76 void expandItemList(
const QList<QGraphicsItem *> &items, QList<QGraphicsItem *> &collected )
const override;
77 void expandItemList(
const QList<QgsLayoutItem *> &items, QList<QGraphicsItem *> &collected )
const;
78 void moveItem( QGraphicsItem *item,
double deltaX,
double deltaY )
override;
79 void rotateItem( QGraphicsItem *item,
double deltaDegree,
double deltaCenterX,
double deltaCenterY )
override;
80 void setItemRect( QGraphicsItem *item, QRectF rect )
override;
81 void showStatusMessage(
const QString &message )
override;
82 void hideAlignItems()
override;
83 QPointF snapPoint( QPointF originalPoint, SnapGuideMode mode,
bool snapHorizontal =
true,
bool snapVertical =
true )
override;
84 void createItemCommand( QGraphicsItem *item )
override;
85 void endItemCommand( QGraphicsItem *item )
override;
86 void startMacroCommand(
const QString &text )
override;
87 void endMacroCommand()
override;
90 void mouseDoubleClickEvent( QGraphicsSceneMouseEvent *event )
override;
95 void selectionChanged();
98 QgsLayout *mLayout =
nullptr;
99 QPointer<QgsLayoutView> mView;
102 QGraphicsLineItem *mHorizontalSnapLine =
nullptr;
103 QGraphicsLineItem *mVerticalSnapLine =
nullptr;
105 std::unique_ptr<QgsAbstractLayoutUndoCommand> mItemCommand;
Base class for commands to undo/redo layout and layout object changes.
Base class for graphical items within a QgsLayout.
A graphical widget to display and interact with QgsLayouts.
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.