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_update_command.h"
0008 
0009 #include "kis_image_interfaces.h"
0010 #include "kis_node.h"
0011 
0012 
0013 KisUpdateCommand::KisUpdateCommand(KisNodeSP node, QRect dirtyRect,
0014                                    KisUpdatesFacade *updatesFacade,
0015                                    bool needsFullRefresh)
0016     : KUndo2Command(kundo2_noi18n("UPDATE_COMMAND")),
0017       m_node(node),
0018       m_dirtyRect(dirtyRect),
0019       m_updatesFacade(updatesFacade),
0020       m_needsFullRefresh(needsFullRefresh)
0021 {
0022 }
0023 
0024 KisUpdateCommand::~KisUpdateCommand()
0025 {
0026 }
0027 
0028 void KisUpdateCommand::undo()
0029 {
0030     KUndo2Command::undo();
0031     update();
0032 }
0033 
0034 void KisUpdateCommand::redo()
0035 {
0036     KUndo2Command::redo();
0037     update();
0038 }
0039 
0040 void KisUpdateCommand::update()
0041 {
0042     if(m_needsFullRefresh) {
0043         m_updatesFacade->refreshGraphAsync(m_node, m_dirtyRect);
0044     }
0045     else {
0046         m_node->setDirty(m_dirtyRect);
0047     }
0048 }