void MoveSelectionStrokeStrategy::finishStrokeCallback() { KisIndirectPaintingSupport *indirect = static_cast<KisIndirectPaintingSupport*>(m_paintLayer.data()); KisTransaction transaction(name(), m_paintLayer->paintDevice()); indirect->mergeToLayer(m_paintLayer, (KisUndoAdapter*)0, KUndo2MagicString()); runAndSaveCommand(KUndo2CommandSP(transaction.endAndTake()), KisStrokeJobData::SEQUENTIAL, KisStrokeJobData::NORMAL); indirect->setTemporaryTarget(0); QPoint selectionOffset(m_selection->x(), m_selection->y()); m_updatesFacade->blockUpdates(); runAndSaveCommand( KUndo2CommandSP(new KisSelectionMoveCommand2(m_selection, selectionOffset, selectionOffset + m_finalOffset)), KisStrokeJobData::SEQUENTIAL, KisStrokeJobData::EXCLUSIVE); m_updatesFacade->unblockUpdates(); m_selection->setVisible(true); KisStrokeStrategyUndoCommandBased::finishStrokeCallback(); }
void Module::endCommand() { if ( d->command && ! d->command->isEmpty() ) { KPlato::MacroCommand *c = new KPlato::MacroCommand( KUndo2MagicString() ); doc()->addCommand( c ); doc()->endMacro(); // executes c and enables undo/redo c->addCommand( d->command ); // this command is already exectued d->command = 0; } else { delete d->command; d->command = 0; } }
KUndo2MagicString KisSelectionFilter::name() { return KUndo2MagicString(); }