10#include <QMutexLocker>
19 Private(
int frameId,
bool needsRegeneration)
30 bool needsRegeneration,
34 m_d(new
Private(frameId, needsRegeneration))
36 m_d->interface = interface;
37 m_d->undoAdapter = undoAdapter;
53 const int frameId =
m_d->token->fetchTime();
55 if (frameId ==
m_d->interface->currentTime())
return;
57 const int oldTime =
m_d->interface->currentTime();
58 m_d->interface->explicitlySetCurrentTime(frameId);
60 if (
m_d->undoAdapter) {
65 m_d->undoAdapter->addCommand(cmd);
70 Q_UNUSED(levelOfDetail);
95 Private(
int _time,
bool _needsRegeneration)
109 : m_d(new
Private(initialTime, needsRegeneration))
119 QMutexLocker l(&
m_d->mutex);
123 (
m_d->needsRegeneration || !needsRegeneration);
134 QMutexLocker l(&
m_d->mutex);
137 m_d->isCompleted =
true;
void enableJob(JobType type, bool enable=true, KisStrokeJobData::Sequentiality sequentiality=KisStrokeJobData::SEQUENTIAL, KisStrokeJobData::Exclusivity exclusivity=KisStrokeJobData::NORMAL)
void setClearsRedoOnStart(bool value)
void setRequestsOtherStrokesToEnd(bool value)
KisSwitchTimeStrokeStrategy(int frameId, bool needsRegeneration, KisImageAnimationInterface *interface, KisPostExecutionUndoAdapter *undoAdapter)
const QScopedPointer< Private > m_d
KisStrokeStrategy * createLodClone(int levelOfDetail) override
void initStrokeCallback() override
~KisSwitchTimeStrokeStrategy() override
SharedTokenSP token() const
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
KUndo2MagicString kundo2_i18n(const char *text)
KisPostExecutionUndoAdapter * undoAdapter
Private(int frameId, bool needsRegeneration)
Private(int _time, bool _needsRegeneration)
bool tryResetDestinationTime(int time, bool needsRegeneration)
SharedToken(int initialTime, bool needsRegeneration)