File indexing completed on 2024-05-12 16:01:52

0001 /*
0002  *  SPDX-FileCopyrightText: 2018 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "KisNodeDisplayModeAdapter.h"
0008 #include "kis_config.h"
0009 #include "kis_config_notifier.h"
0010 
0011 
0012 KisNodeDisplayModeAdapter::KisNodeDisplayModeAdapter(QObject *parent)
0013     : QObject(parent)
0014 {
0015     connect(KisConfigNotifier::instance(), SIGNAL(configChanged()),
0016             SLOT(slotSettingsChanged()));
0017 
0018     slotSettingsChangedImpl(true);
0019 }
0020 
0021 bool KisNodeDisplayModeAdapter::showRootNode() const
0022 {
0023     return m_showRootNode;
0024 }
0025 
0026 void KisNodeDisplayModeAdapter::setShowRootNode(bool value)
0027 {
0028     KisConfig cfg(false);
0029     cfg.setShowRootLayer(value);
0030     slotSettingsChanged();
0031 }
0032 
0033 bool KisNodeDisplayModeAdapter::showGlobalSelectionMask() const
0034 {
0035     return m_showGlobalSelectionMask;
0036 }
0037 
0038 void KisNodeDisplayModeAdapter::setShowGlobalSelectionMask(bool value)
0039 {
0040     KisConfig cfg(false);
0041     cfg.setShowGlobalSelection(value);
0042     slotSettingsChanged();
0043 }
0044 
0045 void KisNodeDisplayModeAdapter::slotSettingsChanged()
0046 {
0047     slotSettingsChangedImpl(false);
0048 }
0049 
0050 void KisNodeDisplayModeAdapter::slotSettingsChangedImpl(bool suppressSignals)
0051 {
0052     KisConfig cfg(true);
0053 
0054     if (m_showGlobalSelectionMask != cfg.showGlobalSelection() ||
0055         m_showRootNode != cfg.showRootLayer()) {
0056 
0057         m_showGlobalSelectionMask = cfg.showGlobalSelection();
0058         m_showRootNode = cfg.showRootLayer();
0059 
0060         if (!suppressSignals) {
0061             emit sigNodeDisplayModeChanged(m_showRootNode, m_showGlobalSelectionMask);
0062         }
0063     }
0064 }