Пример #1
0
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();
}
Пример #2
0
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;
    }
}
Пример #3
0
KUndo2MagicString KisSelectionFilter::name()
{
    return KUndo2MagicString();
}