QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgslayoutmousehandles.h
Go to the documentation of this file.
1/***************************************************************************
2 qgslayoutmousehandles.h
3 -----------------------
4 begin : September 2017
5 copyright : (C) 2017 by Nyall Dawson
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17#ifndef QGSLAYOUTMOUSEHANDLES_H
18#define QGSLAYOUTMOUSEHANDLES_H
19
20// We don't want to expose this in the public API
21#define SIP_NO_FILE
22
24#include <QPointer>
25#include <memory>
26
27#include "qgis_gui.h"
28
29class QgsLayout;
30class QGraphicsView;
31class QgsLayoutView;
32class QgsLayoutItem;
33class QInputEvent;
35
37
47class GUI_EXPORT QgsLayoutMouseHandles: public QgsGraphicsViewMouseHandles
48{
49 Q_OBJECT
50 public:
51
52 QgsLayoutMouseHandles( QgsLayout *layout, QgsLayoutView *view );
53
58 void setLayout( QgsLayout *layout ) { mLayout = layout; }
59
64 QgsLayout *layout() { return mLayout; }
65
66 void paint( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr ) override;
67
68 protected:
69
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 setItemRect( QGraphicsItem *item, QRectF rect ) override;
80 void showStatusMessage( const QString &message ) override;
81 void hideAlignItems() override;
82 QPointF snapPoint( QPointF originalPoint, SnapGuideMode mode, bool snapHorizontal = true, bool snapVertical = true ) override;
83 void createItemCommand( QGraphicsItem *item ) override;
84 void endItemCommand( QGraphicsItem *item ) override;
85 void startMacroCommand( const QString &text ) override;
86 void endMacroCommand() override;
87 public slots:
88
90 void selectionChanged();
91
92 private:
93
94 QgsLayout *mLayout = nullptr;
95 QPointer< QgsLayoutView > mView;
96
98 QGraphicsLineItem *mHorizontalSnapLine = nullptr;
99 QGraphicsLineItem *mVerticalSnapLine = nullptr;
100
101 std::unique_ptr< QgsAbstractLayoutUndoCommand > mItemCommand;
102};
103
105
106#endif // QGSLAYOUTMOUSEHANDLES_H
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.
Definition: qgslayoutview.h:50
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
Definition: qgslayout.h:49