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 }