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 }