diff --git a/libs/image/CMakeLists.txt b/libs/image/CMakeLists.txt --- a/libs/image/CMakeLists.txt +++ b/libs/image/CMakeLists.txt @@ -72,6 +72,7 @@ brushengine/kis_paintop_config_widget.cpp brushengine/kis_uniform_paintop_property.cpp brushengine/kis_combo_based_paintop_property.cpp + brushengine/kis_slider_based_paintop_property.cpp brushengine/kis_standard_uniform_properties_factory.cpp commands/kis_deselect_global_selection_command.cpp commands/kis_image_change_layers_command.cpp diff --git a/libs/image/brushengine/kis_combo_based_paintop_property.h b/libs/image/brushengine/kis_combo_based_paintop_property.h --- a/libs/image/brushengine/kis_combo_based_paintop_property.h +++ b/libs/image/brushengine/kis_combo_based_paintop_property.h @@ -55,4 +55,8 @@ const QScopedPointer m_d; }; +#include "kis_callback_based_paintop_property.h" +extern template class KRITAIMAGE_EXPORT KisCallbackBasedPaintopProperty; +typedef KisCallbackBasedPaintopProperty KisComboBasedPaintOpPropertyCallback; + #endif /* __KIS_COMBO_BASED_PAINTOP_PROPERTY_H */ diff --git a/libs/image/brushengine/kis_combo_based_paintop_property.cpp b/libs/image/brushengine/kis_combo_based_paintop_property.cpp --- a/libs/image/brushengine/kis_combo_based_paintop_property.cpp +++ b/libs/image/brushengine/kis_combo_based_paintop_property.cpp @@ -37,6 +37,17 @@ { } +KisComboBasedPaintOpProperty::KisComboBasedPaintOpProperty(Type type, + const QString &id, + const QString &name, + KisPaintOpSettingsSP settings, + QObject *parent) + : KisUniformPaintOpProperty(Combo, id, name, settings, parent), + m_d(new Private) +{ + KIS_ASSERT_RECOVER_RETURN(type == Combo); +} + KisComboBasedPaintOpProperty::~KisComboBasedPaintOpProperty() { } @@ -61,4 +72,4 @@ m_d->icons = list; } - +template class KisCallbackBasedPaintopProperty; diff --git a/libs/image/brushengine/kis_slider_based_paintop_property.h b/libs/image/brushengine/kis_slider_based_paintop_property.h --- a/libs/image/brushengine/kis_slider_based_paintop_property.h +++ b/libs/image/brushengine/kis_slider_based_paintop_property.h @@ -51,6 +51,21 @@ { } + KisSliderBasedPaintOpProperty(const QString &id, + const QString &name, + KisPaintOpSettingsSP settings, + QObject *parent) + : KisUniformPaintOpProperty(Int, id, name, settings, parent), + m_min(T(0)), + m_max(T(100)), + m_singleStep(T(1)), + m_pageStep(T(10)), + m_exponentRatio(1.0), + m_decimals(2) + { + qFatal("Should have never been called!"); + } + T min() const { return m_min; } @@ -110,12 +125,19 @@ QString m_suffix; }; +#include "kis_callback_based_paintop_property.h" + +extern template class KRITAIMAGE_EXPORT KisSliderBasedPaintOpProperty; +extern template class KRITAIMAGE_EXPORT KisSliderBasedPaintOpProperty; +extern template class KRITAIMAGE_EXPORT KisCallbackBasedPaintopProperty>; +extern template class KRITAIMAGE_EXPORT KisCallbackBasedPaintopProperty>; + typedef KisSliderBasedPaintOpProperty KisIntSliderBasedPaintOpProperty; typedef KisSliderBasedPaintOpProperty KisDoubleSliderBasedPaintOpProperty; -#include "kis_callback_based_paintop_property.h" +typedef KisCallbackBasedPaintopProperty> KisIntSliderBasedPaintOpPropertyCallback; +typedef KisCallbackBasedPaintopProperty> KisDoubleSliderBasedPaintOpPropertyCallback; + -typedef KisCallbackBasedPaintopProperty KisIntSliderBasedPaintOpPropertyCallback; -typedef KisCallbackBasedPaintopProperty KisDoubleSliderBasedPaintOpPropertyCallback; #endif /* __KIS_SLIDER_BASED_PAINTOP_PROPERTY_H */ diff --git a/libs/image/brushengine/kis_slider_based_paintop_property.cpp b/libs/image/brushengine/kis_slider_based_paintop_property.cpp new file mode 100644 --- /dev/null +++ b/libs/image/brushengine/kis_slider_based_paintop_property.cpp @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2016 Dmitry Kazakov + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "kis_slider_based_paintop_property.h" + +#include "kis_paintop_settings.h" + +template class KisSliderBasedPaintOpProperty; +template class KisSliderBasedPaintOpProperty; + +template class KisCallbackBasedPaintopProperty>; +template class KisCallbackBasedPaintopProperty>; diff --git a/libs/image/brushengine/kis_uniform_paintop_property.h b/libs/image/brushengine/kis_uniform_paintop_property.h --- a/libs/image/brushengine/kis_uniform_paintop_property.h +++ b/libs/image/brushengine/kis_uniform_paintop_property.h @@ -43,6 +43,10 @@ const QString &name, KisPaintOpSettingsSP settings, QObject *parent); + KisUniformPaintOpProperty(const QString &id, + const QString &name, + KisPaintOpSettingsSP settings, + QObject *parent); ~KisUniformPaintOpProperty(); QString id() const; @@ -80,4 +84,8 @@ typedef QSharedPointer KisUniformPaintOpPropertySP; typedef QWeakPointer KisUniformPaintOpPropertyWSP; +#include "kis_callback_based_paintop_property.h" +extern template class KRITAIMAGE_EXPORT KisCallbackBasedPaintopProperty; +typedef KisCallbackBasedPaintopProperty KisUniformPaintOpPropertyCallback; + #endif /* __KIS_UNIFORM_PAINT_OP_PROPERTY_H */ diff --git a/libs/image/brushengine/kis_uniform_paintop_property.cpp b/libs/image/brushengine/kis_uniform_paintop_property.cpp --- a/libs/image/brushengine/kis_uniform_paintop_property.cpp +++ b/libs/image/brushengine/kis_uniform_paintop_property.cpp @@ -56,6 +56,15 @@ { } +KisUniformPaintOpProperty::KisUniformPaintOpProperty(const QString &id, + const QString &name, + KisPaintOpSettingsSP settings, + QObject *parent) + : QObject(parent), + m_d(new Private(Bool, id, name, settings)) +{ +} + KisUniformPaintOpProperty::~KisUniformPaintOpProperty() { } @@ -127,3 +136,4 @@ { } +template class KisCallbackBasedPaintopProperty; diff --git a/plugins/paintops/colorsmudge/kis_colorsmudgeop_settings.cpp b/plugins/paintops/colorsmudge/kis_colorsmudgeop_settings.cpp --- a/plugins/paintops/colorsmudge/kis_colorsmudgeop_settings.cpp +++ b/plugins/paintops/colorsmudge/kis_colorsmudgeop_settings.cpp @@ -41,8 +41,6 @@ #include "kis_curve_option_uniform_property.h" #include "kis_smudge_radius_option.h" -typedef KisCallbackBasedPaintopProperty KisComboBasedPaintOpPropertyCallback; - QList KisColorSmudgeOpSettings::uniformProperties() { QList props = diff --git a/plugins/paintops/curvebrush/kis_curve_paintop_settings.cpp b/plugins/paintops/curvebrush/kis_curve_paintop_settings.cpp --- a/plugins/paintops/curvebrush/kis_curve_paintop_settings.cpp +++ b/plugins/paintops/curvebrush/kis_curve_paintop_settings.cpp @@ -43,7 +43,6 @@ #include "kis_paintop_settings_update_proxy.h" #include "kis_curve_line_option.h" #include "kis_standard_uniform_properties_factory.h" -typedef KisCallbackBasedPaintopProperty KisUniformPaintOpPropertyCallback; QList KisCurvePaintOpSettings::uniformProperties() diff --git a/plugins/paintops/defaultpaintops/duplicate/kis_duplicateop_settings.cpp b/plugins/paintops/defaultpaintops/duplicate/kis_duplicateop_settings.cpp --- a/plugins/paintops/defaultpaintops/duplicate/kis_duplicateop_settings.cpp +++ b/plugins/paintops/defaultpaintops/duplicate/kis_duplicateop_settings.cpp @@ -165,12 +165,10 @@ #include -#include #include "kis_paintop_preset.h" #include "kis_paintop_settings_update_proxy.h" #include "kis_duplicateop_option.h" #include "kis_standard_uniform_properties_factory.h" -typedef KisCallbackBasedPaintopProperty KisUniformPaintOpPropertyCallback; QList KisDuplicateOpSettings::uniformProperties() diff --git a/plugins/paintops/deform/kis_deform_paintop_settings.cpp b/plugins/paintops/deform/kis_deform_paintop_settings.cpp --- a/plugins/paintops/deform/kis_deform_paintop_settings.cpp +++ b/plugins/paintops/deform/kis_deform_paintop_settings.cpp @@ -91,8 +91,6 @@ #include "kis_brush_size_option.h" #include "kis_deform_option.h" #include "kis_standard_uniform_properties_factory.h" -typedef KisCallbackBasedPaintopProperty KisUniformPaintOpPropertyCallback; -typedef KisCallbackBasedPaintopProperty KisComboBasedPaintOpPropertyCallback; QList KisDeformPaintOpSettings::uniformProperties() diff --git a/plugins/paintops/dynadraw/kis_dyna_paintop_settings.cpp b/plugins/paintops/dynadraw/kis_dyna_paintop_settings.cpp --- a/plugins/paintops/dynadraw/kis_dyna_paintop_settings.cpp +++ b/plugins/paintops/dynadraw/kis_dyna_paintop_settings.cpp @@ -58,9 +58,6 @@ #include "kis_standard_uniform_properties_factory.h" -typedef KisCallbackBasedPaintopProperty KisComboBasedPaintOpPropertyCallback; - - QList KisDynaPaintOpSettings::uniformProperties() { QList props = diff --git a/plugins/paintops/experiment/kis_experiment_paintop_settings.cpp b/plugins/paintops/experiment/kis_experiment_paintop_settings.cpp --- a/plugins/paintops/experiment/kis_experiment_paintop_settings.cpp +++ b/plugins/paintops/experiment/kis_experiment_paintop_settings.cpp @@ -69,7 +69,6 @@ #include "kis_paintop_settings_update_proxy.h" #include "kis_experimentop_option.h" #include "kis_standard_uniform_properties_factory.h" -typedef KisCallbackBasedPaintopProperty KisUniformPaintOpPropertyCallback; QList KisExperimentPaintOpSettings::uniformProperties() diff --git a/plugins/paintops/gridbrush/kis_grid_paintop_settings.cpp b/plugins/paintops/gridbrush/kis_grid_paintop_settings.cpp --- a/plugins/paintops/gridbrush/kis_grid_paintop_settings.cpp +++ b/plugins/paintops/gridbrush/kis_grid_paintop_settings.cpp @@ -65,7 +65,6 @@ #include "kis_paintop_preset.h" #include "kis_paintop_settings_update_proxy.h" #include "kis_gridop_option.h" -typedef KisCallbackBasedPaintopProperty KisUniformPaintOpPropertyCallback; QList KisGridPaintOpSettings::uniformProperties() diff --git a/plugins/paintops/libpaintop/kis_brush_based_paintop_settings.cpp b/plugins/paintops/libpaintop/kis_brush_based_paintop_settings.cpp --- a/plugins/paintops/libpaintop/kis_brush_based_paintop_settings.cpp +++ b/plugins/paintops/libpaintop/kis_brush_based_paintop_settings.cpp @@ -221,8 +221,6 @@ #include "kis_paintop_preset.h" #include "kis_paintop_settings_update_proxy.h" -typedef KisCallbackBasedPaintopProperty KisUniformPaintOpPropertyCallback; - QList KisBrushBasedPaintOpSettings::uniformProperties() { QList props = diff --git a/plugins/paintops/spray/kis_spray_paintop_settings.cpp b/plugins/paintops/spray/kis_spray_paintop_settings.cpp --- a/plugins/paintops/spray/kis_spray_paintop_settings.cpp +++ b/plugins/paintops/spray/kis_spray_paintop_settings.cpp @@ -82,7 +82,6 @@ #include "kis_paintop_settings_update_proxy.h" #include "kis_sprayop_option.h" #include "kis_standard_uniform_properties_factory.h" -typedef KisCallbackBasedPaintopProperty KisUniformPaintOpPropertyCallback; QList KisSprayPaintOpSettings::uniformProperties()