File indexing completed on 2024-06-09 04:21:53

0001 /*
0002  *  SPDX-FileCopyrightText: 2011 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "kis_processing_command.h"
0008 #include "kis_node.h"
0009 #include "kis_processing_visitor.h"
0010 
0011 
0012 KisProcessingCommand::KisProcessingCommand(KisProcessingVisitorSP visitor, KisNodeSP node, KUndo2Command *parent)
0013     : KUndo2Command(kundo2_noi18n("processing_command"), parent),
0014       m_visitor(visitor),
0015       m_node(node),
0016       m_visitorExecuted(false)
0017 {
0018 }
0019 
0020 void KisProcessingCommand::redo()
0021 {
0022     if(!m_visitorExecuted) {
0023         m_node->accept(*m_visitor, &m_undoAdapter);
0024         m_visitorExecuted = true;
0025         m_visitor = 0;
0026     }
0027     else {
0028         m_undoAdapter.redoAll();
0029     }
0030 }
0031 
0032 void KisProcessingCommand::undo()
0033 {
0034     m_undoAdapter.undoAll();
0035 }