File indexing completed on 2024-05-12 15:56:59
0001 /* 0002 * SPDX-FileCopyrightText: 2014 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "kis_thread_safe_signal_compressor.h" 0008 0009 #include <QApplication> 0010 0011 0012 KisThreadSafeSignalCompressor::KisThreadSafeSignalCompressor(int delay, KisSignalCompressor::Mode mode) 0013 : m_compressor(new KisSignalCompressor(delay, mode, this)) 0014 { 0015 connect(this, SIGNAL(internalRequestSignal()), m_compressor, SLOT(start()), Qt::AutoConnection); 0016 connect(this, SIGNAL(internalStopSignal()), m_compressor, SLOT(stop()), Qt::AutoConnection); 0017 connect(this, SIGNAL(internalSetDelay(int)), m_compressor, SLOT(setDelay(int)), Qt::AutoConnection); 0018 connect(m_compressor, SIGNAL(timeout()), SIGNAL(timeout())); 0019 0020 // due to this line the object *must not* be deleted explicitly! 0021 this->setObjectName("KisThreadSafeSignalCompressor"); 0022 this->moveToThread(QApplication::instance()->thread()); 0023 } 0024 0025 bool KisThreadSafeSignalCompressor::isActive() const 0026 { 0027 return m_compressor->isActive(); 0028 } 0029 0030 void KisThreadSafeSignalCompressor::setDelay(int delay) 0031 { 0032 emit internalSetDelay(delay); 0033 } 0034 0035 void KisThreadSafeSignalCompressor::start() 0036 { 0037 emit internalRequestSignal(); 0038 } 0039 0040 void KisThreadSafeSignalCompressor::stop() 0041 { 0042 emit internalStopSignal(); 0043 }