File indexing completed on 2024-05-12 16:01:38
0001 /* This file is part of the KDE project 0002 * SPDX-FileCopyrightText: 2008 Boudewijn Rempt <boud@valdyas.org> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "kis_paintop_option.h" 0008 0009 #include <klocalizedstring.h> 0010 0011 #include <KisResourcesInterface.h> 0012 #include <KoCanvasResourcesInterface.h> 0013 0014 struct KisPaintOpOption::Private 0015 { 0016 public: 0017 bool checked {false}; 0018 QString label; 0019 KisPaintOpOption::PaintopCategory category; 0020 QWidget *configurationPage {nullptr}; 0021 0022 bool updatesBlocked {false}; 0023 bool isWritingSettings {false}; 0024 0025 KisResourcesInterfaceSP resourcesInterface; 0026 KoCanvasResourcesInterfaceSP canvasResourcesInterface; 0027 }; 0028 0029 KisPaintOpOption::KisPaintOpOption(const QString label, PaintopCategory category, bool checked) 0030 : m_checkable(true) 0031 , m_d(new Private()) 0032 0033 { 0034 m_d->label = label; 0035 m_d->checked = checked; 0036 m_d->category = category; 0037 } 0038 0039 KisPaintOpOption::~KisPaintOpOption() 0040 { 0041 delete m_d; 0042 } 0043 0044 void KisPaintOpOption::emitSettingChanged() 0045 { 0046 KIS_ASSERT_RECOVER_RETURN(!m_d->isWritingSettings); 0047 0048 if (!m_d->updatesBlocked) { 0049 emit sigSettingChanged(); 0050 } 0051 } 0052 0053 void KisPaintOpOption::emitCheckedChanged() 0054 { 0055 KIS_ASSERT_RECOVER_RETURN(!m_d->isWritingSettings); 0056 0057 if (!m_d->updatesBlocked) { 0058 emit sigCheckedChanged(isChecked()); 0059 } 0060 } 0061 0062 void KisPaintOpOption::startReadOptionSetting(const KisPropertiesConfigurationSP setting) 0063 { 0064 m_d->updatesBlocked = true; 0065 readOptionSetting(setting); 0066 m_d->updatesBlocked = false; 0067 } 0068 0069 void KisPaintOpOption::startWriteOptionSetting(KisPropertiesConfigurationSP setting) const 0070 { 0071 m_d->isWritingSettings = true; 0072 writeOptionSetting(setting); 0073 m_d->isWritingSettings = false; 0074 } 0075 0076 void KisPaintOpOption::lodLimitations(KisPaintopLodLimitations *l) const 0077 { 0078 Q_UNUSED(l); 0079 } 0080 0081 KisPaintOpOption::PaintopCategory KisPaintOpOption::category() const 0082 { 0083 return m_d->category; 0084 } 0085 0086 bool KisPaintOpOption::isChecked() const 0087 { 0088 return m_d->checked; 0089 } 0090 0091 bool KisPaintOpOption::isCheckable() const { 0092 return m_checkable; 0093 } 0094 0095 void KisPaintOpOption::setChecked(bool checked) 0096 { 0097 m_d->checked = checked; 0098 0099 emitCheckedChanged(); 0100 emitSettingChanged(); 0101 } 0102 0103 void KisPaintOpOption::setImage(KisImageWSP image) 0104 { 0105 Q_UNUSED(image); 0106 } 0107 0108 void KisPaintOpOption::setNode(KisNodeWSP node) 0109 { 0110 Q_UNUSED(node); 0111 } 0112 0113 void KisPaintOpOption::setResourcesInterface(KisResourcesInterfaceSP resourcesInterface) 0114 { 0115 m_d->resourcesInterface = resourcesInterface; 0116 } 0117 0118 void KisPaintOpOption::setCanvasResourcesInterface(KoCanvasResourcesInterfaceSP canvasResourcesInterface) 0119 { 0120 m_d->canvasResourcesInterface = canvasResourcesInterface; 0121 } 0122 0123 KisResourcesInterfaceSP KisPaintOpOption::resourcesInterface() const 0124 { 0125 return m_d->resourcesInterface; 0126 } 0127 0128 KoCanvasResourcesInterfaceSP KisPaintOpOption::canvasResourcesInterface() const 0129 { 0130 return m_d->canvasResourcesInterface; 0131 } 0132 0133 void KisPaintOpOption::setConfigurationPage(QWidget * page) 0134 { 0135 m_d->configurationPage = page; 0136 } 0137 0138 QWidget* KisPaintOpOption::configurationPage() const 0139 { 0140 return m_d->configurationPage; 0141 } 0142 void KisPaintOpOption::setLocked(bool value) 0143 { 0144 m_locked = value; 0145 } 0146 0147 bool KisPaintOpOption::isLocked ()const 0148 { 0149 return m_locked; 0150 } 0151 0152 QString KisPaintOpOption::label() const 0153 { 0154 return m_d->label; 0155 }