File indexing completed on 2024-05-12 15:56:57

0001 /*
0002  *  SPDX-FileCopyrightText: 2007 Adrian Page <adrian@pagenet.plus.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #include "kis_config_notifier.h"
0007 
0008 #include <QGlobalStatic>
0009 
0010 #include <kis_debug.h>
0011 #include "kis_signal_compressor.h"
0012 
0013 Q_GLOBAL_STATIC(KisConfigNotifier, s_instance)
0014 
0015 struct KisConfigNotifier::Private
0016 {
0017     Private() : dropFramesModeCompressor(300, KisSignalCompressor::FIRST_ACTIVE) {}
0018 
0019     KisSignalCompressor dropFramesModeCompressor;
0020 };
0021 
0022 KisConfigNotifier::KisConfigNotifier()
0023     : m_d(new Private)
0024 {
0025     connect(&m_d->dropFramesModeCompressor, SIGNAL(timeout()), SIGNAL(dropFramesModeChanged()));
0026 }
0027 
0028 KisConfigNotifier::~KisConfigNotifier()
0029 {
0030     dbgRegistry << "deleting KisConfigNotifier";
0031 }
0032 
0033 KisConfigNotifier *KisConfigNotifier::instance()
0034 {
0035     return s_instance;
0036 }
0037 
0038 void KisConfigNotifier::notifyConfigChanged(void)
0039 {
0040     emit configChanged();
0041 }
0042 
0043 void KisConfigNotifier::notifyDropFramesModeChanged()
0044 {
0045     m_d->dropFramesModeCompressor.start();
0046 }
0047 
0048 void KisConfigNotifier::notifyPixelGridModeChanged()
0049 {
0050     emit pixelGridModeChanged();
0051 }