24#include "pencilerror.h"
27#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
28Q_MOC_INCLUDE(
"colormanager.h")
29Q_MOC_INCLUDE("toolmanager.h")
30Q_MOC_INCLUDE("layermanager.h")
31Q_MOC_INCLUDE("playbackmanager.h")
32Q_MOC_INCLUDE("viewmanager.h")
33Q_MOC_INCLUDE("preferencemanager.h")
34Q_MOC_INCLUDE("selectionmanager.h")
35Q_MOC_INCLUDE("soundmanager.h")
36Q_MOC_INCLUDE("overlaymanager.h")
37Q_MOC_INCLUDE("clipboardmanager.h")
102 Object* object()
const {
return mObject.get(); }
103 Status openObject(
const QString& strFilePath,
const std::function<
void(
int)>& progressChanged,
const std::function<
void(
int)>& progressRangeChanged);
108 void setScribbleArea(
ScribbleArea* pScirbbleArea) { mScribbleArea = pScirbbleArea; }
109 ScribbleArea* getScribbleArea() {
return mScribbleArea; }
111 int currentFrame()
const;
113 void setFps(
int fps);
115 int currentLayerIndex()
const {
return mCurrentLayerIndex; }
116 void setCurrentLayerIndex(
int i);
118 void scrubTo(
int frameNumber);
124 LayerVisibility layerVisibility();
126 qreal viewScaleInversed();
127 void deselectAll()
const;
128 void selectAll()
const;
130 void clipboardChanged();
147 void selectedFramesChanged();
149 void updateTimeLine()
const;
150 void updateTimeLineCached();
151 void updateLayerCount();
156 void fpsChanged(
int fps);
160 void needDisplayInfoNoTitle(
const QString& body);
162 void canCopyChanged(
bool enabled);
163 void canPasteChanged(
bool enabled);
172 void setModified(
int layerNumber,
int frameNumber);
174 void clearCurrentFrame();
177 Status importAnimatedImage(
const QString& filePath,
int frameSpacing,
const std::function<
void (
int)>& progressChanged,
const std::function<
bool ()>& wasCanceled);
180 void scrubNextKeyFrame();
181 void scrubPreviousKeyFrame();
183 void scrubBackward();
188 void switchVisibilityOfLayer(
int layerNumber);
189 void swapLayers(
int i,
int j);
190 bool canSwapLayers(
int layerIndexLeft,
int layerIndexRight)
const;
192 void backup(
const QString& undoText);
193 bool backup(
int layerNumber,
int frameNumber,
const QString& undoText);
206 void onCurrentLayerWillChange(
int index);
212 void pasteFromPreviousFrame();
215 bool canCopy()
const;
216 bool canPaste()
const;
218 void increaseLayerVisibilityIndex();
219 void decreaseLayerVisibilityIndex();
220 void flipSelection(
bool flipVertical);
221 void repositionImage(
QPoint transform,
int frame);
223 void clearTemporary();
226 void settingUpdated(SETTING);
228 void dontAskAutoSave(
bool b) { mAutosaveNeverAskAgain = b; }
229 bool autoSaveNeverAskAgain()
const {
return mAutosaveNeverAskAgain; }
230 void resetAutoSaveCounter();
236 void pasteToCanvas(
BitmapImage* bitmapImage,
int frameNumber);
237 void pasteToCanvas(
VectorImage* vectorImage,
int frameNumber);
238 void pasteToFrames();
240 bool canCopyBitmapImage(
BitmapImage* bitmapImage)
const;
241 bool canCopyFrames(
const Layer* layer)
const;
242 bool canCopyVectorImage(
const VectorImage* vectorImage)
const;
245 std::unique_ptr<Object> mObject;
248 int mCurrentLayerIndex = 0;
263 std::vector< BaseManager* > mAllManagers;
265 bool mIsAutosave =
true;
266 int mAutosaveNumber = 12;
267 int mAutosaveCounter = 0;
268 bool mAutosaveNeverAskAgain =
false;
270 void makeConnections();
271 KeyFrame* addKeyFrame(
int layerNumber,
int frameNumber);
276 void clearUndoStack();
277 void updateAutoSaveCounter();
278 int mLastModifiedFrame = -1;
279 int mLastModifiedLayer = -1;
ActiveFramePool implemented a LRU cache to keep tracking the most recent accessed key frames A key fr...
void framesModified()
This should be emitted after modifying multiple frames.
void frameModified(int frameNumber)
This should be emitted after modifying the frame content.
void updateFrame()
Will call update() and update the canvas Only call this directly If you need the cache to be intact a...
void scrubbed(int frameNumber)
This should be emitted after scrubbing.
void sanitizeBackupElementsAfterLayerDeletion(int layerIndex)
Restores integrity of the backup elements after a layer has been deleted.
void setLayerVisibility(LayerVisibility visibility)
The visibility value should match any of the VISIBILITY enum values.
QObject * parent() const const