44 m_initCommand(rhs.m_initCommand),
45 m_finishCommand(rhs.m_finishCommand),
46 m_undoFacade(rhs.m_undoFacade),
51 "After the stroke has been started, no copying must happen");
123 Data *d =
dynamic_cast<Data*
>(data);
127 if (d->shouldGoToHistory) {
142 if (!command)
return;
163 warnKrita <<
"WARNING: KisStrokeStrategyUndoCommandBased::setCommandExtraData():"
164 <<
"the extra data is set while the stroke has already been started!"
165 <<
"The result is undefined, continued actions may not work!";
float value(const T *src, size_t ch)
void setExtraData(KUndo2CommandExtraData *data)
void addMacro(KisSavedMacroCommand *macro)
KisSavedMacroCommand * createMacro(const KUndo2MagicString ¯oName)
KisRunnableStrokeJobsInterface * runnableJobsInterface() const
void doStrokeCallback(KisStrokeJobData *data) override
void getCommandExecutionJobs(QVector< KisStrokeJobData * > *jobs, bool undo, bool shouldGoToHistory=true) const
void addCommand(KUndo2CommandSP command, KisStrokeJobData::Sequentiality sequentiality=KisStrokeJobData::SEQUENTIAL, KisStrokeJobData::Exclusivity exclusivity=KisStrokeJobData::NORMAL)
void setMacroId(int value)
void enableJob(JobType type, bool enable=true, KisStrokeJobData::Sequentiality sequentiality=KisStrokeJobData::SEQUENTIAL, KisStrokeJobData::Exclusivity exclusivity=KisStrokeJobData::NORMAL)
virtual void postProcessToplevelCommand(KUndo2Command *command)
Applies some modifications (e.g. assigning extra data) to the toplevel command.
void setMacroId(int value)
void cancelStrokeCallback() override
void initStrokeCallback() override
KUndo2CommandSP m_initCommand
void setUsedWhileUndoRedo(bool value)
void setCommandExtraData(KUndo2CommandExtraData *data)
QScopedPointer< KUndo2CommandExtraData > m_commandExtraData
void notifyCommandDone(KUndo2CommandSP command, KisStrokeJobData::Sequentiality sequentiality, KisStrokeJobData::Exclusivity exclusivity)
void runAndSaveCommand(KUndo2CommandSP command, KisStrokeJobData::Sequentiality sequentiality, KisStrokeJobData::Exclusivity exclusivity)
KisStrokeStrategyUndoCommandBased(const KUndo2MagicString &name, bool undo, KisStrokeUndoFacade *undoFacade, KUndo2CommandSP initCommand=KUndo2CommandSP(0), KUndo2CommandSP finishCommand=KUndo2CommandSP(0))
void finishStrokeCallback() override
void doStrokeCallback(KisStrokeJobData *data) override
KisStrokeUndoFacade * m_undoFacade
KisStrokeUndoFacade * undoFacade() const
void executeCommand(KUndo2CommandSP command, bool undo)
void cancelStrokeCallbackImpl(QVector< KisStrokeJobData * > &mutatedJobs)
KisSavedMacroCommand * m_macroCommand
KUndo2CommandSP m_finishCommand
void setAsynchronouslyCancellable(bool value)
void addMutatedJobs(const QVector< KisStrokeJobData * > list)
void setClearsRedoOnStart(bool value)
KUndo2MagicString name() const
virtual KisPostExecutionUndoAdapter * postExecutionUndoAdapter() const =0
#define KIS_ASSERT_RECOVER_NOOP(cond)