16#ifndef QGSMAPTOOLEXTRAITEM_H
17#define QGSMAPTOOLEXTRAITEM_H
69 void loadFeatureExtraItems();
74 void updateAttribute();
86 std::vector<QObjectUniquePtr<QgsExtraItemRubberBand>>
mExtraItems;
166 void attemptMoveBy( QGraphicsItem *item,
double deltaX,
double deltaY );
172 void attemptRotateBy( QGraphicsItem *item,
double deltaDegree,
double deltaCenterX,
double deltaCenterY );
186 void onMapCanvasExtentsChanged();
209 class QgsMapToolModifyExtraItemMouseHandles :
public QgsGraphicsViewMouseHandles
219 void paint( QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget )
override;
220 void setViewportCursor( Qt::CursorShape cursor )
override;
221 QList<QGraphicsItem *> sceneItemsAtPoint( QPointF scenePoint )
override;
222 QList<QGraphicsItem *> selectedSceneItems(
bool includeLockedItems =
true )
const override;
223 QRectF itemRect( QGraphicsItem *item )
const override;
224 void moveItem( QGraphicsItem *item,
double deltaX,
double deltaY )
override;
225 void rotateItem( QGraphicsItem *item,
double deltaDegree,
double deltaCenterX,
double deltaCenterY )
override;
226 void setItemRect( QGraphicsItem *item, QRectF rect )
override;
228 using QgsGraphicsViewMouseHandles::hoverMoveEvent;
229 using QgsGraphicsViewMouseHandles::mouseMoveEvent;
230 using QgsGraphicsViewMouseHandles::mousePressEvent;
231 using QgsGraphicsViewMouseHandles::mouseReleaseEvent;
232 using QgsGraphicsViewMouseHandles::updateHandles;
241 QList<QGraphicsItem *> mSelectedItems;
242 QList<std::tuple<double, double, double>> mCopiedItems;
244 bool mHoveringMouseHandles =
false;
245 bool mCanceled =
false;
246 bool mDragging =
false;
247 QRect mSelectionRect;
249 QPointF mCopiedItemsTopLeft;
Keeps a pointer to a QObject and deletes it whenever this object is deleted.
Rubber band for one extra item.
A mouse event which is the result of a user interaction with a QgsMapCanvas.
Base class for templated line symbols, e.g.
Represents a vector layer which manages a vector based dataset.
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features