18#include "backupelement.h"
22#include "layerbitmap.h"
23#include "layervector.h"
25#include "selectionmanager.h"
26#include "layermanager.h"
28void BackupBitmapElement::restore(
Editor* editor)
30 Layer* layer = editor->object()->findLayerById(this->layerId);
32 if (editor->currentFrame() != this->frame) {
33 editor->scrubTo(this->frame);
36 editor->layers()->setCurrentLayer(layer);
38 if (this->frame > 0 && layer->getKeyFrameAt(this->frame) ==
nullptr)
46 if (layer->type() == Layer::BITMAP)
48 auto bitmapLayer =
static_cast<LayerBitmap*
>(layer);
49 *bitmapLayer->getLastBitmapImageAtFrame(this->frame, 0) = bitmapImage;
54 auto selectMan = editor->select();
55 selectMan->setSelection(mySelection,
true);
56 selectMan->setTransformAnchor(selectionAnchor);
57 selectMan->setRotation(rotationAngle);
58 selectMan->setScale(scaleX, scaleY);
59 selectMan->setTranslation(translation);
61 selectMan->calculateSelectionTransformation();
66void BackupVectorElement::restore(
Editor* editor)
68 Layer* layer = editor->object()->findLayerById(this->layerId);
69 for (
int i = 0; i < editor->object()->getLayerCount(); i++)
71 Layer* layer = editor->object()->getLayer(i);
72 if (layer->type() == Layer::VECTOR)
75 if (vectorImage !=
nullptr)
77 vectorImage->modification();
82 if (editor->currentFrame() != this->frame) {
83 editor->scrubTo(this->frame);
86 editor->layers()->setCurrentLayer(layer);
88 if (this->frame > 0 && layer->getKeyFrameAt(this->frame) ==
nullptr)
96 if (layer->type() == Layer::VECTOR)
98 auto pVectorImage =
static_cast<LayerVector*
>(layer);
99 *pVectorImage->getLastVectorImageAtFrame(this->frame, 0) = this->vectorImage;
104 auto selectMan = editor->select();
105 selectMan->setSelection(mySelection,
false);
106 selectMan->setTransformAnchor(selectionAnchor);
107 selectMan->setRotation(rotationAngle);
108 selectMan->setScale(scaleX, scaleY);
109 selectMan->setTranslation(translation);
110 selectMan->calculateSelectionTransformation();
116void BackupSoundElement::restore(
Editor* editor)
118 Layer* layer = editor->object()->findLayerById(this->layerId);
120 editor->layers()->setCurrentLayer(layer);
122 if (editor->currentFrame() != this->frame) {
123 editor->scrubTo(this->frame);
128 if (this->frame > 0 && layer->getKeyFrameAt(this->frame) ==
nullptr)
130 editor->restoreKey();
void frameModified(int frameNumber)
This should be emitted after modifying the frame content.