File indexing completed on 2024-05-12 15:58:52

0001 /*
0002  *  SPDX-FileCopyrightText: 2017 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "KisRunnableStrokeJobData.h"
0008 
0009 #include <QRunnable>
0010 #include <kis_assert.h>
0011 
0012 KisRunnableStrokeJobData::KisRunnableStrokeJobData(QRunnable *runnable, KisStrokeJobData::Sequentiality sequentiality, KisStrokeJobData::Exclusivity exclusivity)
0013     : KisRunnableStrokeJobDataBase(sequentiality, exclusivity),
0014       m_runnable(runnable)
0015 {
0016 }
0017 
0018 KisRunnableStrokeJobData::KisRunnableStrokeJobData(std::function<void ()> func, KisStrokeJobData::Sequentiality sequentiality, KisStrokeJobData::Exclusivity exclusivity)
0019     : KisRunnableStrokeJobDataBase(sequentiality, exclusivity),
0020       m_func(func)
0021 {
0022 }
0023 
0024 KisRunnableStrokeJobData::~KisRunnableStrokeJobData() {
0025     if (m_runnable && m_runnable->autoDelete()) {
0026         delete m_runnable;
0027     }
0028 }
0029 
0030 void KisRunnableStrokeJobData::run() {
0031     if (m_runnable) {
0032         m_runnable->run();
0033     } else if (m_func) {
0034         m_func();
0035     }
0036 }