1#ifndef SIMPLEDRAWINGSCENE_H
2#define SIMPLEDRAWINGSCENE_H
3#include <QGraphicsScene>
46 inline void setColor(
const QColor& color) { currentColor = color; }
52 inline QColor
getColor()
const {
return currentColor; }
58 inline void setPenWidth(
const short penWidth) { this->penWidth = penWidth; }
117 QGraphicsItem* create_from_types(QPen& pen);
123 void process_drawing_moving(
const QPointF& currentPos);
126 QPainterPath currentPath;
129 QGraphicsPathItem* pathItem =
nullptr;
138 QGraphicsItem* tempItem {
nullptr };
150 QList<QGraphicsItem*> itemsStack;
153 QList<QGraphicsItem*> redoStack;
A QGraphicsScene subclass that provides simple drawing capabilities.
Definition SimpleDrawingScene.h:13
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Handles mouse press events for drawing.
Definition SimpleDrawingScene.cpp:40
short getPenWidth() const
Gets the current pen width.
Definition SimpleDrawingScene.h:64
void setPenWidth(const short penWidth)
Sets the pen width for drawing.
Definition SimpleDrawingScene.h:58
void redo()
Redoes the last undone operation.
Definition SimpleDrawingScene.cpp:161
QImage exportImage()
Exports the current scene as an image.
Definition SimpleDrawingScene.cpp:30
void setColor(const QColor &color)
Sets the current drawing color.
Definition SimpleDrawingScene.h:46
void setMode(const DrawingMode m)
Sets the interaction mode.
Definition SimpleDrawingScene.cpp:14
DrawingMode
Defines the interaction modes for the scene.
Definition SimpleDrawingScene.h:19
@ DrawingMode
Default mode for creating new items.
@ EditMode
Mode for selecting and modifying existing items.
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Handles mouse release events for drawing.
Definition SimpleDrawingScene.cpp:76
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
Handles mouse move events for drawing.
Definition SimpleDrawingScene.cpp:62
QColor getColor() const
Gets the current drawing color.
Definition SimpleDrawingScene.h:52
void undo()
Undoes the last drawing operation.
Definition SimpleDrawingScene.cpp:153
void setItemType(const SupportItemItem i)
Sets the current drawing item type.
Definition SimpleDrawingScene.h:70
SupportItemItem
The types of drawable shapes supported by the scene.
Definition SimpleDrawingScene.h:28
@ FreeHand
Free-form drawing with mouse movement.
@ Ellipse
Ellipse or circle shape.
@ Line
Straight line between two points.