diff --git a/plugins/paintops/hairy/KisHairyBristleOptionWidget.cpp b/plugins/paintops/hairy/KisHairyBristleOptionWidget.cpp index 37c3f81314e..d86a87f5dc5 100644 --- a/plugins/paintops/hairy/KisHairyBristleOptionWidget.cpp +++ b/plugins/paintops/hairy/KisHairyBristleOptionWidget.cpp @@ -93,8 +93,3 @@ void KisHairyBristleOptionWidget::readOptionSetting(const KisPropertiesConfigura data.read(setting.data()); m_d->model.optionData.set(data); } - -lager::reader KisHairyBristleOptionWidget::lodLimitationsReader() const -{ - return m_d->model.optionData.map(&KisHairyBristleOptionData::lodLimitations); -} diff --git a/plugins/paintops/hairy/KisHairyBristleOptionWidget.h b/plugins/paintops/hairy/KisHairyBristleOptionWidget.h index 5162fc48b39..de76021ec0b 100644 --- a/plugins/paintops/hairy/KisHairyBristleOptionWidget.h +++ b/plugins/paintops/hairy/KisHairyBristleOptionWidget.h @@ -23,9 +23,6 @@ class KisHairyBristleOptionWidget : public KisPaintOpOption void writeOptionSetting(KisPropertiesConfigurationSP setting) const override; void readOptionSetting(const KisPropertiesConfigurationSP setting) override; -protected: - lager::reader lodLimitationsReader() const override; - private: struct Private; const QScopedPointer m_d; diff --git a/plugins/paintops/hairy/kis_hairy_paintop_settings_widget.cpp b/plugins/paintops/hairy/kis_hairy_paintop_settings_widget.cpp index 358ed9b1876..3b4917769f2 100644 --- a/plugins/paintops/hairy/kis_hairy_paintop_settings_widget.cpp +++ b/plugins/paintops/hairy/kis_hairy_paintop_settings_widget.cpp @@ -21,7 +21,7 @@ KisHairyPaintOpSettingsWidget:: KisHairyPaintOpSettingsWidget(QWidget* parent) : KisBrushBasedPaintopOptionWidget(KisBrushOptionWidgetFlag::None, parent) { namespace kpowu = KisPaintOpOptionWidgetUtils; - addPaintOpOption(kpowu::createOptionWidget()); + addPaintOpOption(kpowu::createOptionWidgetWithLodLimitations()); addPaintOpOption(kpowu::createOptionWidget()); addPaintOpOption(kpowu::createOptionWidget()); addPaintOpOption(kpowu::createOpacityOptionWidget()); diff --git a/plugins/paintops/libpaintop/KisPaintOpOptionWidgetUtils.h b/plugins/paintops/libpaintop/KisPaintOpOptionWidgetUtils.h index 1a5e5f2c660..f0c38db9771 100644 --- a/plugins/paintops/libpaintop/KisPaintOpOptionWidgetUtils.h +++ b/plugins/paintops/libpaintop/KisPaintOpOptionWidgetUtils.h @@ -156,6 +156,27 @@ Widget* createOptionWidget() return createOptionWidget(typename Widget::data_type{}); } +/** + * Creates an option widget and lager::store for its \p Data + * type. + * + * This override `typename Widget::data_type` to + * default-construct the data and pass it to the + * widget. If widget does not provide this type, + * compilation will fail. + * + * Same as normal createOptionWidget(), but creates a widget that fetches lod + * limitations directly from the \p Data object by calling + * Data::lodLimitations(). + */ +template +Widget* createOptionWidgetWithLodLimitations() +{ + static_assert(detail::has_type_data_type::value, "Widget must have 'data_type' member type defined to use the default construction method"); + return createOptionWidgetWithLodLimitations(typename Widget::data_type{}); +} + + /** * Creates an instance of KisCurveOptionWidget and a * lager::store for its \p Data type. diff --git a/plugins/paintops/sketch/KisSketchOpOptionWidget.cpp b/plugins/paintops/sketch/KisSketchOpOptionWidget.cpp index 894a6c5b892..da2c52bcd0c 100644 --- a/plugins/paintops/sketch/KisSketchOpOptionWidget.cpp +++ b/plugins/paintops/sketch/KisSketchOpOptionWidget.cpp @@ -93,8 +93,3 @@ void KisSketchOpOptionWidget::readOptionSetting(const KisPropertiesConfiguration data.read(setting.data()); m_d->model.optionData.set(data); } - -lager::reader KisSketchOpOptionWidget::lodLimitationsReader() const -{ - return m_d->model.optionData.map(&KisSketchOpOptionData::lodLimitations); -} diff --git a/plugins/paintops/sketch/KisSketchOpOptionWidget.h b/plugins/paintops/sketch/KisSketchOpOptionWidget.h index f44e1da83e8..4208335f422 100644 --- a/plugins/paintops/sketch/KisSketchOpOptionWidget.h +++ b/plugins/paintops/sketch/KisSketchOpOptionWidget.h @@ -23,9 +23,6 @@ class KisSketchOpOptionWidget : public KisPaintOpOption void writeOptionSetting(KisPropertiesConfigurationSP setting) const override; void readOptionSetting(const KisPropertiesConfigurationSP setting) override; -protected: - lager::reader lodLimitationsReader() const override; - private: struct Private; const QScopedPointer m_d; diff --git a/plugins/paintops/sketch/KisSketchStandardOptionData.h b/plugins/paintops/sketch/KisSketchStandardOptionData.h index f03c6a1051a..1b2e2ade07e 100644 --- a/plugins/paintops/sketch/KisSketchStandardOptionData.h +++ b/plugins/paintops/sketch/KisSketchStandardOptionData.h @@ -13,7 +13,7 @@ struct KisOffsetScaleOptionData : KisCurveOptionData KisOffsetScaleOptionData() : KisCurveOptionData( KoID("Offset scale", i18n("Offset scale")), - true, false, false, + true, false, 0.0, 1.0) {} }; @@ -23,7 +23,7 @@ struct KisLineWidthOptionData : KisCurveOptionData KisLineWidthOptionData() : KisCurveOptionData( KoID("Line width", i18n("Line width")), - true, false, false, + true, false, 0.0, 1.0) {} }; @@ -33,7 +33,7 @@ struct KisDensityOptionData : KisCurveOptionData KisDensityOptionData() : KisCurveOptionData( KoID("Density", i18n("Density")), - true, false, false, + true, false, 0.0, 1.0) {} }; diff --git a/plugins/paintops/sketch/kis_sketch_paintop_settings_widget.cpp b/plugins/paintops/sketch/kis_sketch_paintop_settings_widget.cpp index c38077b8a24..138ef68c166 100644 --- a/plugins/paintops/sketch/kis_sketch_paintop_settings_widget.cpp +++ b/plugins/paintops/sketch/kis_sketch_paintop_settings_widget.cpp @@ -25,7 +25,7 @@ KisSketchPaintOpSettingsWidget::KisSketchPaintOpSettingsWidget(QWidget* parent) { namespace kpowu = KisPaintOpOptionWidgetUtils; - addPaintOpOption(kpowu::createOptionWidget()); + addPaintOpOption(kpowu::createOptionWidgetWithLodLimitations()); addPaintOpOption(kpowu::createOptionWidget()); addPaintOpOption(kpowu::createOpacityOptionWidget()); addPaintOpOption(kpowu::createOptionWidget());