File indexing completed on 2024-06-16 04:17:22
0001 /* 0002 * SPDX-FileCopyrightText: 2022 Agata Cacko <cacko.azh@gmail.com> 0003 * SPDX-FileCopyrightText: 2009, 2010 Lukáš Tvrdý (lukast.dev@gmail.com) 0004 * 0005 * 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 #include "KisGridShapeOptionWidget.h" 0009 0010 #include <QButtonGroup> 0011 #include <QMetaProperty> 0012 0013 #include <lager/constant.hpp> 0014 #include "ui_wdggridbrushshapeoptions.h" 0015 0016 #include "KisGridShapeOptionModel.h" 0017 0018 namespace { 0019 0020 0021 class KisShapeOptionsWidgetUI: public QWidget, public Ui::WdgGridBrushShapeOptions 0022 { 0023 public: 0024 KisShapeOptionsWidgetUI(QWidget *parent = 0) 0025 : QWidget(parent) { 0026 setupUi(this); 0027 } 0028 }; 0029 } 0030 0031 struct KisGridShapeOptionWidget::Private 0032 { 0033 Private(lager::cursor<KisGridShapeOptionData> optionData) 0034 : model(optionData) 0035 { 0036 } 0037 0038 KisGridShapeOptionModel model; 0039 KisShapeOptionsWidgetUI* options {0}; 0040 }; 0041 0042 0043 KisGridShapeOptionWidget::KisGridShapeOptionWidget(lager::cursor<KisGridShapeOptionData> optionData) 0044 : KisPaintOpOption(i18n("Particle type"), KisPaintOpOption::GENERAL, true) 0045 , m_d(new Private(optionData)) 0046 { 0047 0048 m_d->options = new KisShapeOptionsWidgetUI(); 0049 setObjectName("KisGridShapeOption"); 0050 0051 m_checkable = false; 0052 0053 using namespace KisWidgetConnectionUtils; 0054 0055 0056 connectControl(m_d->options->shapeCBox, &m_d->model, "shape"); 0057 0058 0059 m_d->model.optionData.bind(std::bind(&KisGridShapeOptionWidget::emitSettingChanged, this)); 0060 0061 setConfigurationPage(m_d->options); 0062 } 0063 0064 KisGridShapeOptionWidget::~KisGridShapeOptionWidget() 0065 { 0066 } 0067 0068 void KisGridShapeOptionWidget::writeOptionSetting(KisPropertiesConfigurationSP setting) const 0069 { 0070 KisGridShapeOptionData data = *m_d->model.optionData; 0071 data.write(setting.data()); 0072 } 0073 0074 void KisGridShapeOptionWidget::readOptionSetting(const KisPropertiesConfigurationSP setting) 0075 { 0076 KisGridShapeOptionData data = *m_d->model.optionData; 0077 data.read(setting.data()); 0078 m_d->model.optionData.set(data); 0079 }