File indexing completed on 2024-05-19 04:26:30
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_visitor.h" 0008 0009 #include <KoUpdater.h> 0010 #include <KoProgressUpdater.h> 0011 #include "kis_node_progress_proxy.h" 0012 #include "kis_node.h" 0013 #include <KLocalizedString> 0014 #include <QTimer> 0015 0016 KisProcessingVisitor::ProgressHelper::ProgressHelper(const KisNode *node) 0017 { 0018 KIS_ASSERT(node); 0019 KisNodeProgressProxy *progressProxy = node->nodeProgressProxy(); 0020 0021 if(progressProxy) { 0022 m_progressUpdater = new KoProgressUpdater(progressProxy); 0023 m_progressUpdater->setObjectName("ProgressHelper::m_progressUpdater"); 0024 m_progressUpdater->start(100, i18n("Processing")); 0025 m_progressUpdater->moveToThread(node->thread()); 0026 } 0027 else { 0028 m_progressUpdater = 0; 0029 } 0030 } 0031 0032 KisProcessingVisitor::ProgressHelper::~ProgressHelper() 0033 { 0034 if (m_progressUpdater) { 0035 m_progressUpdater->deleteLater(); 0036 } 0037 } 0038 0039 KoUpdater* KisProcessingVisitor::ProgressHelper::updater() const 0040 { 0041 return m_progressUpdater ? m_progressUpdater->startSubtask() : 0; 0042 } 0043 0044 void KisProcessingVisitor::ProgressHelper::cancel() 0045 { 0046 if (m_progressUpdater) { 0047 QTimer::singleShot(0, m_progressUpdater, &KoProgressUpdater::cancel); 0048 } 0049 } 0050 0051 KisProcessingVisitor::~KisProcessingVisitor() 0052 { 0053 } 0054 0055 KUndo2Command *KisProcessingVisitor::createInitCommand() 0056 { 0057 return 0; 0058 }