File indexing completed on 2024-05-19 04:26:42

0001 /*
0002  *  SPDX-FileCopyrightText: 2017 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "KisImageConfigNotifier.h"
0008 
0009 #include <QGlobalStatic>
0010 
0011 #include <kis_debug.h>
0012 #include "kis_signal_compressor.h"
0013 
0014 Q_GLOBAL_STATIC(KisImageConfigNotifier, s_instance)
0015 
0016 struct KisImageConfigNotifier::Private
0017 {
0018     Private()
0019         : updateCompressor(300, KisSignalCompressor::FIRST_ACTIVE)
0020         , autoKeyframeUpdateCompressor(300, KisSignalCompressor::FIRST_ACTIVE)
0021     {}
0022 
0023     KisSignalCompressor updateCompressor;
0024     KisSignalCompressor autoKeyframeUpdateCompressor;
0025 };
0026 
0027 KisImageConfigNotifier::KisImageConfigNotifier()
0028     : m_d(new Private)
0029 {
0030     connect(&m_d->updateCompressor, SIGNAL(timeout()), SIGNAL(configChanged()));
0031     connect(&m_d->updateCompressor, SIGNAL(timeout()), SIGNAL(autoKeyFrameConfigurationChanged()));
0032     connect(&m_d->autoKeyframeUpdateCompressor, SIGNAL(timeout()), SIGNAL(autoKeyFrameConfigurationChanged()));
0033 }
0034 
0035 KisImageConfigNotifier::~KisImageConfigNotifier()
0036 {
0037 }
0038 
0039 KisImageConfigNotifier *KisImageConfigNotifier::instance()
0040 {
0041     return s_instance;
0042 }
0043 
0044 void KisImageConfigNotifier::notifyConfigChanged()
0045 {
0046     m_d->updateCompressor.start();
0047 }
0048 
0049 void KisImageConfigNotifier::notifyAutoKeyFrameConfigurationChanged()
0050 {
0051     m_d->autoKeyframeUpdateCompressor.start();
0052 }