5 #include <QElapsedTimer>
46 void paint(QPainter *painter);
66 const QList<LayerPtr> &
layers()
const;
123 void execute(initializer_list<CmdPtr> cmds);
125 template<
typename... Args>
143 bool screen_changed_;
145 QList<LayerPtr> layers_;
146 QList<ShapePtr> selections_;
151 Layer *active_layer_;
153 QPointF mouse_pressed_screen_coord_;
155 QList<CmdPtr> undo2_stack_;
156 QList<CmdPtr> redo2_stack_;
A class template for undoable commands, along with undo() / redo() implementation.
Definition: command.h:21
Document state store for layers, shapes, document specfic settings and current view state.
Definition: document.h:19
int framesCount() const
Definition: document.cpp:261
const QList< LayerPtr > & layers() const
Definition: document.cpp:182
void groupSelections()
Definition: document.cpp:212
Document() noexcept
Definition: document.cpp:7
const LayerPtr * findLayerByName(const QString &layer_name)
Definition: document.cpp:270
void undo()
Definition: document.cpp:60
void execute(Commands::BaseCmd *cmd)
Definition: document.cpp:88
QRectF screenRect() const
Definition: document.cpp:265
void execute(const CmdPtr cmd0, Args... args)
Definition: document.h:126
Layer * activeLayer()
Definition: document.cpp:150
QPointF scroll() const
Definition: document.cpp:122
const QFont & font() const
void addLayer(LayerPtr &layer)
Definition: document.cpp:106
void dumpStack(QList< LayerPtr > &stack)
Definition: document.cpp:47
QList< ShapePtr > & selections()
Definition: document.cpp:45
void setWidth(qreal width)
Definition: document.cpp:130
void redo()
Definition: document.cpp:76
QPointF mousePressedScreenCoord() const
Definition: document.cpp:204
qreal height() const
Definition: document.cpp:128
void setScroll(QPointF scroll)
Definition: document.cpp:134
void setLayersOrder(const QList< LayerPtr > &new_order)
Definition: document.cpp:184
void setSelection(nullptr_t)
Definition: document.cpp:23
qreal width() const
Definition: document.cpp:126
void setFont(const QFont &font)
qreal scale() const
Definition: document.cpp:124
void setScreenSize(QSize size)
Definition: document.cpp:140
DocumentSettings & settings()
Definition: document.cpp:285
void setHeight(qreal height)
Definition: document.cpp:132
QPointF mousePressedCanvasCoord() const
Definition: document.cpp:200
void setScale(qreal scale)
Definition: document.cpp:145
void setMousePressedScreenCoord(QPointF screen_coord)
Definition: document.cpp:208
QPointF getCanvasCoord(QPointF window_coord) const
Definition: document.cpp:118
const Canvas * canvas() const
Definition: document.cpp:277
void setSelections(const QList< ShapePtr > &new_selections)
Definition: document.cpp:31
void setCanvas(Canvas *canvas)
Definition: document.cpp:281
void removeLayer(LayerPtr &layer)
Definition: document.cpp:112
void paint(QPainter *painter)
Definition: document.cpp:249
bool setActiveLayer(const QString &name)
Definition: document.cpp:158
ShapePtr hitTest(QPointF canvas_coord)
Definition: document.cpp:189
void ungroupSelections()
Definition: document.cpp:229
Save and load documents as binary format.
Definition: document-serializer.h:18
Definition: document-settings.h:3
Commands::CmdPtr CmdPtr
Definition: command.h:273
shared_ptr< Layer > LayerPtr
Definition: layer.h:127
shared_ptr< Shape > ShapePtr
Definition: shape.h:137