[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [krita/kazakov/shift-gesture-slowdown] /: Make it compile and run again!
From:       Dmitry Kazakov <dimula73 () gmail ! com>
Date:       2016-09-15 14:33:13
Message-ID: E1bkXiz-0003zG-4W () code ! kde ! org
[Download RAW message or body]

Git commit 29669573ae64f778dde9a83d62b95c09a9dbb912 by Dmitry Kazakov.
Committed on 15/09/2016 at 11:00.
Pushed by dkazakov into branch 'kazakov/shift-gesture-slowdown'.

Make it compile and run again!

Partially implement the first step of the porting into
QSharedPointer.

M  +1    -1    libs/image/brushengine/kis_paintop_settings.cpp
M  +1    -2    libs/image/kis_properties_configuration.h
M  +3    -0    libs/image/kis_types.h
M  +1    -0    libs/ui/CMakeLists.txt
A  +47   -0    libs/ui/kis_base_option.cpp     [License: GPL (v2+)]
A  +61   -0    libs/ui/kis_base_option.h     [License: GPL (v2+)]
M  +1    -0    libs/ui/kis_paintop_option.h
M  +3    -3    plugins/paintops/chalk/kis_chalkop_option.h
M  +3    -3    plugins/paintops/curvebrush/kis_curve_line_option.h
M  +3    -3    plugins/paintops/deform/kis_brush_size_option.h
M  +1    -1    plugins/paintops/deform/kis_deform_paintop_settings_widget.cpp
M  +5    -3    plugins/paintops/dynadraw/kis_dynaop_option.h
M  +3    -3    plugins/paintops/gridbrush/kis_gridop_option.h
M  +1    -1    plugins/paintops/hairy/kis_hairy_paintop.cpp
M  +2    -2    plugins/paintops/libpaintop/kis_brush_based_paintop.cpp
M  +2    -2    plugins/paintops/libpaintop/kis_brush_based_paintop_settings.cpp
M  +13   -3    plugins/paintops/libpaintop/kis_brush_option.cpp
M  +8    -3    plugins/paintops/libpaintop/kis_brush_option.h
M  +1    -1    plugins/paintops/libpaintop/kis_brush_option_widget.cpp
M  +1    -1    plugins/paintops/sketch/kis_sketch_paintop.cpp
M  +1    -1    plugins/paintops/spray/kis_spray_paintop.cpp
M  +3    -3    plugins/paintops/spray/kis_sprayop_option.h

http://commits.kde.org/krita/29669573ae64f778dde9a83d62b95c09a9dbb912

diff --git a/libs/image/brushengine/kis_paintop_settings.cpp \
b/libs/image/brushengine/kis_paintop_settings.cpp index 0f82c05..881d3be 100644
--- a/libs/image/brushengine/kis_paintop_settings.cpp
+++ b/libs/image/brushengine/kis_paintop_settings.cpp
@@ -210,7 +210,7 @@ qreal KisPaintOpSettings::paintOpFlow()
     return proxy->getDouble("FlowValue", 1.0);
 }
 
-QString KisPaintOpSettings::paintOpCompositeOp() const
+QString KisPaintOpSettings::paintOpCompositeOp()
 {
     KisLockedPropertiesProxySP proxy(
         KisLockedPropertiesServer::instance()->createLockedPropertiesProxy(this));
diff --git a/libs/image/kis_properties_configuration.h \
b/libs/image/kis_properties_configuration.h index 2815490..0b8ba81 100644
--- a/libs/image/kis_properties_configuration.h
+++ b/libs/image/kis_properties_configuration.h
@@ -30,6 +30,7 @@ class QDomDocument;
 
 #include "kis_serializable_configuration.h"
 #include "kritaimage_export.h"
+#include "kis_types.h"
 
 
 /**
@@ -148,8 +149,6 @@ private:
     Private* const d;
 };
 
-typedef KisSharedPtr<KisPropertiesConfiguration> KisPropertiesConfigurationSP;
-
 class KRITAIMAGE_EXPORT KisPropertiesConfigurationFactory : public \
KisSerializableConfigurationFactory  {
 public:
diff --git a/libs/image/kis_types.h b/libs/image/kis_types.h
index 048969e..da265f8 100644
--- a/libs/image/kis_types.h
+++ b/libs/image/kis_types.h
@@ -254,6 +254,9 @@ typedef KisStrokeWSP KisStrokeId;
 class KisFilterConfiguration;
 typedef KisSharedPtr<KisFilterConfiguration> KisFilterConfigurationSP;
 
+class KisPropertiesConfiguration;
+typedef KisSharedPtr<KisPropertiesConfiguration> KisPropertiesConfigurationSP;
+
 class KisProjectionUpdatesFilter;
 typedef QSharedPointer<KisProjectionUpdatesFilter> KisProjectionUpdatesFilterSP;
 
diff --git a/libs/ui/CMakeLists.txt b/libs/ui/CMakeLists.txt
index 99eb30d..e884f7e 100644
--- a/libs/ui/CMakeLists.txt
+++ b/libs/ui/CMakeLists.txt
@@ -92,6 +92,7 @@ set(kritaui_LIB_SRCS
     kis_bookmarked_configurations_editor.cc
     kis_bookmarked_configurations_model.cc
     kis_bookmarked_filter_configurations_model.cc
+    kis_base_option.cpp
     kis_canvas_resource_provider.cpp
     kis_derived_resources.cpp
     kis_categories_mapper.cpp
diff --git a/libs/ui/kis_base_option.cpp b/libs/ui/kis_base_option.cpp
new file mode 100644
index 0000000..ef21624
--- /dev/null
+++ b/libs/ui/kis_base_option.cpp
@@ -0,0 +1,47 @@
+/*
+ *  Copyright (c) 2016 Dmitry Kazakov <dimula73@gmail.com>
+ *
+ *  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_base_option.h"
+#include "kis_properties_configuration.h"
+
+KisBaseOption::~KisBaseOption()
+{
+}
+
+
+// see a comment in the header!
+//void KisBaseOption::readOptionSetting(KisPropertiesConfigurationSP settings)
+//{
+//    readOptionSettingImpl(settings.data());
+//}
+
+void KisBaseOption::writeOptionSetting(KisPropertiesConfigurationSP settings) const
+{
+    writeOptionSettingImpl(settings.data());
+}
+
+void KisBaseOption::readOptionSetting(const KisPropertiesConfiguration *settings)
+{
+    readOptionSettingImpl(settings);
+}
+
+void KisBaseOption::writeOptionSetting(KisPropertiesConfiguration *settings) const
+{
+    writeOptionSettingImpl(settings);
+}
+
diff --git a/libs/ui/kis_base_option.h b/libs/ui/kis_base_option.h
new file mode 100644
index 0000000..8fcd264
--- /dev/null
+++ b/libs/ui/kis_base_option.h
@@ -0,0 +1,61 @@
+/*
+ *  Copyright (c) 2016 Dmitry Kazakov <dimula73@gmail.com>
+ *
+ *  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.
+ */
+
+#ifndef KISBASEOPTION_H
+#define KISBASEOPTION_H
+
+#include <kis_types.h>
+#include <kritaui_export.h>
+
+
+/**
+ * This is a special base class for all the options that load/save
+ * settings into a properties objects and do *not* store the properties
+ * themselves. This class adapts your option to allow its easy use with
+ * both raw pointers and shared pointers.
+ *
+ * Motivation:
+ * In quite a lot of places we call some options from the KisPaintOpSettings
+ * class itself with patting 'this' as a parameter into
+ * read/writeOptionSetting(). Convertion of 'this' into a shared pointer is
+ * extremely dangerous, and, ideally, should be prohibited. We cannot prohibit
+ * it atm, but we still can create a special interface for accepting raw pointers,
+ * which will be used automatically, when 'this' is passed.
+ */
+class KRITAUI_EXPORT KisBaseOption
+{
+public:
+    virtual ~KisBaseOption();
+
+    /**
+     * This method should be commented out until we port to QSharedPointer.
+     * KisSharedPtr is convertible into raw ptr, so this method is ambiguous.
+     * QScopedPointer is not convertible, so this method i snecessary for it.
+     */
+    // void readOptionSetting(KisPropertiesConfigurationSP settings);
+    void writeOptionSetting(KisPropertiesConfigurationSP setting) const;
+
+    void readOptionSetting(const KisPropertiesConfiguration *settings);
+    void writeOptionSetting(KisPropertiesConfiguration *settings) const;
+
+protected:
+    virtual void readOptionSettingImpl(const KisPropertiesConfiguration *settings) = \
0; +    virtual void writeOptionSettingImpl(KisPropertiesConfiguration *settings) \
const = 0; +};
+
+#endif // KISBASEOPTION_H
diff --git a/libs/ui/kis_paintop_option.h b/libs/ui/kis_paintop_option.h
index 3bd4ab2..a36e5a2 100644
--- a/libs/ui/kis_paintop_option.h
+++ b/libs/ui/kis_paintop_option.h
@@ -24,6 +24,7 @@
 #include <kritaui_export.h>
 #include <kis_properties_configuration.h>
 #include <brushengine/kis_locked_properties_proxy.h>
+#include <kis_base_option.h>
 
 class QWidget;
 class QString;
diff --git a/plugins/paintops/chalk/kis_chalkop_option.h \
b/plugins/paintops/chalk/kis_chalkop_option.h index 7d5dbbb..8b4a614 100644
--- a/plugins/paintops/chalk/kis_chalkop_option.h
+++ b/plugins/paintops/chalk/kis_chalkop_option.h
@@ -50,7 +50,7 @@ private:
 
 };
 
-class ChalkProperties
+class ChalkProperties : public KisBaseOption
 {
 public:
     int radius;
@@ -58,14 +58,14 @@ public:
     bool useOpacity;
     bool useSaturation;
 
-    void readOptionSetting(const KisPropertiesConfigurationSP settings) {
+    void readOptionSettingImpl(const KisPropertiesConfiguration *settings) {
         radius = settings->getInt(CHALK_RADIUS);
         inkDepletion = settings->getBool(CHALK_INK_DEPLETION);
         useOpacity = settings->getBool(CHALK_USE_OPACITY);
         useSaturation = settings->getBool(CHALK_USE_SATURATION);
     }
 
-    void writeOptionSetting(KisPropertiesConfiguration* settings) {
+    void writeOptionSettingImpl(KisPropertiesConfiguration* settings) const {
         settings->setProperty(CHALK_RADIUS, radius);
         settings->setProperty(CHALK_INK_DEPLETION, inkDepletion);
         settings->setProperty(CHALK_USE_OPACITY, useOpacity);
diff --git a/plugins/paintops/curvebrush/kis_curve_line_option.h \
b/plugins/paintops/curvebrush/kis_curve_line_option.h index d3ae922..ecf7e26 100644
--- a/plugins/paintops/curvebrush/kis_curve_line_option.h
+++ b/plugins/paintops/curvebrush/kis_curve_line_option.h
@@ -43,7 +43,7 @@ private:
 
 };
 
-class CurveOption
+class CurveOption : public KisBaseOption
 {
 public:
     bool curve_paint_connection_line;
@@ -52,7 +52,7 @@ public:
     int curve_line_width;
     qreal curve_curves_opacity;
 
-    void readOptionSetting(const KisPropertiesConfigurationSP config) {
+    void readOptionSettingImpl(const KisPropertiesConfiguration *config) {
         curve_paint_connection_line = config->getBool(CURVE_PAINT_CONNECTION_LINE);
         curve_smoothing = config->getBool(CURVE_SMOOTHING);
         curve_stroke_history_size = config->getInt(CURVE_STROKE_HISTORY_SIZE);
@@ -60,7 +60,7 @@ public:
         curve_curves_opacity = config->getDouble(CURVE_CURVES_OPACITY);
     }
 
-    void writeOptionSetting(KisPropertiesConfigurationSP config) const {
+    void writeOptionSettingImpl(KisPropertiesConfiguration *config) const {
         config->setProperty(CURVE_PAINT_CONNECTION_LINE, \
curve_paint_connection_line);  config->setProperty(CURVE_SMOOTHING, curve_smoothing);
         config->setProperty(CURVE_STROKE_HISTORY_SIZE, curve_stroke_history_size);
diff --git a/plugins/paintops/deform/kis_brush_size_option.h \
b/plugins/paintops/deform/kis_brush_size_option.h index f80f7c7..a555b94 100644
--- a/plugins/paintops/deform/kis_brush_size_option.h
+++ b/plugins/paintops/deform/kis_brush_size_option.h
@@ -56,7 +56,7 @@ private:
     KisBrushSizeOptionsWidget * m_options;
 };
 
-class BrushSizeOption
+class BrushSizeOption : public KisBaseOption
 {
 
 public:
@@ -71,7 +71,7 @@ public:
 
 public:
 
-    void readOptionSetting(const KisPropertiesConfigurationSP setting) {
+    void readOptionSettingImpl(const KisPropertiesConfiguration *setting) {
         brush_diameter = setting->getDouble(BRUSH_DIAMETER);
         brush_aspect = setting->getDouble(BRUSH_ASPECT);
         brush_rotation = setting->getDouble(BRUSH_ROTATION);
@@ -82,7 +82,7 @@ public:
         brush_jitter_movement_enabled = \
setting->getBool(BRUSH_JITTER_MOVEMENT_ENABLED);  }
 
-    void writeOptionSetting(KisPropertiesConfigurationSP setting) const {
+    void writeOptionSettingImpl(KisPropertiesConfiguration *setting) const {
         setting->setProperty(BRUSH_DIAMETER, brush_diameter);
         setting->setProperty(BRUSH_ASPECT, brush_aspect);
         setting->setProperty(BRUSH_ROTATION, brush_rotation);
diff --git a/plugins/paintops/deform/kis_deform_paintop_settings_widget.cpp \
b/plugins/paintops/deform/kis_deform_paintop_settings_widget.cpp index \
                cd5fd82..75276ec 100644
--- a/plugins/paintops/deform/kis_deform_paintop_settings_widget.cpp
+++ b/plugins/paintops/deform/kis_deform_paintop_settings_widget.cpp
@@ -50,7 +50,7 @@ KisDeformPaintOpSettingsWidget::~ KisDeformPaintOpSettingsWidget()
 }
 
 
-KisPropertiesConfiguration* KisDeformPaintOpSettingsWidget::configuration() const
+KisPropertiesConfigurationSP KisDeformPaintOpSettingsWidget::configuration() const
 {
     KisDeformPaintOpSettings* config = new KisDeformPaintOpSettings();
     config->setOptionsWidget(const_cast<KisDeformPaintOpSettingsWidget*>(this));
diff --git a/plugins/paintops/dynadraw/kis_dynaop_option.h \
b/plugins/paintops/dynadraw/kis_dynaop_option.h index a8618b3..15b1104 100644
--- a/plugins/paintops/dynadraw/kis_dynaop_option.h
+++ b/plugins/paintops/dynadraw/kis_dynaop_option.h
@@ -65,7 +65,9 @@ private:
     KisDynaOpOptionsWidget * m_options;
 };
 
-struct DynaOption {
+
+struct DynaOption : public KisBaseOption
+{
 
     int dyna_action;
 
@@ -81,7 +83,7 @@ struct DynaOption {
     bool dyna_use_two_circles;
     bool dyna_use_fixed_angle;
 
-    void writeOptionSetting(KisPropertiesConfigurationSP setting) const {
+    void writeOptionSettingImpl(KisPropertiesConfiguration *setting) const {
         setting->setProperty(DYNA_WIDTH, dyna_width);
         setting->setProperty(DYNA_MASS, dyna_mass);
         setting->setProperty(DYNA_DRAG, dyna_drag);
@@ -97,7 +99,7 @@ struct DynaOption {
 
     }
 
-    void readOptionSetting(const KisPropertiesConfigurationSP setting) {
+    void readOptionSettingImpl(const KisPropertiesConfiguration *setting) {
         dyna_action = setting->getInt(DYNA_ACTION);
         dyna_width = setting->getDouble(DYNA_WIDTH);
         dyna_mass = setting->getDouble(DYNA_MASS);
diff --git a/plugins/paintops/gridbrush/kis_gridop_option.h \
b/plugins/paintops/gridbrush/kis_gridop_option.h index 8b35450..1fd5662 100644
--- a/plugins/paintops/gridbrush/kis_gridop_option.h
+++ b/plugins/paintops/gridbrush/kis_gridop_option.h
@@ -62,7 +62,7 @@ private:
 
 };
 
-struct GridOption
+struct GridOption : public KisBaseOption
 {
     int grid_width;
     int grid_height;
@@ -74,7 +74,7 @@ struct GridOption
     bool grid_random_border;
 
 
-    void readOptionSetting(const KisPropertiesConfigurationSP setting) {
+    void readOptionSettingImpl(const KisPropertiesConfiguration *setting) {
         grid_width = qMax(1, setting->getInt(GRID_WIDTH));
         grid_height = qMax(1, setting->getInt(GRID_HEIGHT));
         grid_division_level = setting->getInt(GRID_DIVISION_LEVEL);
@@ -85,7 +85,7 @@ struct GridOption
         grid_random_border = setting->getBool(GRID_RANDOM_BORDER);
     }
 
-    void writeOptionSetting(KisPropertiesConfigurationSP setting) const {
+    void writeOptionSettingImpl(KisPropertiesConfiguration *setting) const {
         setting->setProperty(GRID_WIDTH, qMax(1, grid_width));
         setting->setProperty(GRID_HEIGHT, qMax(1, grid_height));
         setting->setProperty(GRID_DIVISION_LEVEL, grid_division_level);
diff --git a/plugins/paintops/hairy/kis_hairy_paintop.cpp \
b/plugins/paintops/hairy/kis_hairy_paintop.cpp index 77f663c..9a1c404 100644
--- a/plugins/paintops/hairy/kis_hairy_paintop.cpp
+++ b/plugins/paintops/hairy/kis_hairy_paintop.cpp
@@ -49,7 +49,7 @@ KisHairyPaintOp::KisHairyPaintOp(const KisPaintOpSettingsSP \
settings, KisPainter  m_dev = node ? node->paintDevice() : 0;
 
     KisBrushOption brushOption;
-    brushOption.readOptionSetting(settings, true);
+    brushOption.readOptionSettingForceCopy(settings);
     KisBrushSP brush = brushOption.brush();
     KisFixedPaintDeviceSP dab = \
                cachedDab(painter->device()->compositionSourceColorSpace());
     if (brush->brushType() == IMAGE || brush->brushType() == PIPE_IMAGE) {
diff --git a/plugins/paintops/libpaintop/kis_brush_based_paintop.cpp \
b/plugins/paintops/libpaintop/kis_brush_based_paintop.cpp index b56b9e4..33b826c \
                100644
--- a/plugins/paintops/libpaintop/kis_brush_based_paintop.cpp
+++ b/plugins/paintops/libpaintop/kis_brush_based_paintop.cpp
@@ -43,7 +43,7 @@ void \
TextBrushInitializationWorkaround::preinitialize(KisPropertiesConfiguration  {
     if (KisBrushOption::isTextBrush(settings)) {
         KisBrushOption brushOption;
-        brushOption.readOptionSetting(settings, true);
+        brushOption.readOptionSettingForceCopy(settings);
         m_brush = brushOption.brush();
         m_settings = settings;
     }
@@ -88,7 +88,7 @@ KisBrushBasedPaintOp::KisBrushBasedPaintOp(const \
KisPropertiesConfigurationSP se  
     if (!m_brush) {
         KisBrushOption brushOption;
-        brushOption.readOptionSetting(settings, true);
+        brushOption.readOptionSettingForceCopy(settings);
         m_brush = brushOption.brush();
     }
 
diff --git a/plugins/paintops/libpaintop/kis_brush_based_paintop_settings.cpp \
b/plugins/paintops/libpaintop/kis_brush_based_paintop_settings.cpp index \
                6e55278..fcbf6a2 100644
--- a/plugins/paintops/libpaintop/kis_brush_based_paintop_settings.cpp
+++ b/plugins/paintops/libpaintop/kis_brush_based_paintop_settings.cpp
@@ -31,7 +31,7 @@ struct BrushReader {
     BrushReader(const KisBrushBasedPaintOpSettings *parent)
         : m_parent(parent)
     {
-        m_option.readOptionSetting(m_parent, false);
+        m_option.readOptionSetting(m_parent);
     }
 
     KisBrushSP brush() {
@@ -46,7 +46,7 @@ struct BrushWriter {
     BrushWriter(KisBrushBasedPaintOpSettings *parent)
         : m_parent(parent)
     {
-        m_option.readOptionSetting(m_parent, false);
+        m_option.readOptionSetting(m_parent);
     }
 
     ~BrushWriter() {
diff --git a/plugins/paintops/libpaintop/kis_brush_option.cpp \
b/plugins/paintops/libpaintop/kis_brush_option.cpp index f2f7b43..889e33f 100644
--- a/plugins/paintops/libpaintop/kis_brush_option.cpp
+++ b/plugins/paintops/libpaintop/kis_brush_option.cpp
@@ -25,7 +25,7 @@
 
 #include "kis_properties_configuration.h"
 
-void KisBrushOption::writeOptionSetting(KisPropertiesConfigurationSP setting) const
+void KisBrushOption::writeOptionSettingImpl(KisPropertiesConfiguration *setting) \
const  {
     if (!m_brush)
         return;
@@ -42,7 +42,7 @@ void \
KisBrushOption::writeOptionSetting(KisPropertiesConfigurationSP setting) co  \
setting->setProperty("requiredBrushFile", brushFileName);  }
 
-QDomElement getBrushXMLElement(const KisPropertiesConfigurationSP setting)
+QDomElement getBrushXMLElement(const KisPropertiesConfiguration *setting)
 {
     QDomElement element;
 
@@ -56,7 +56,7 @@ QDomElement getBrushXMLElement(const KisPropertiesConfigurationSP \
setting)  return element;
 }
 
-void KisBrushOption::readOptionSetting(const KisPropertiesConfigurationSP setting, \
bool forceCopy) +void KisBrushOption::readOptionSettingInternal(const \
KisPropertiesConfiguration *setting, bool forceCopy)  {
     QDomElement element = getBrushXMLElement(setting);
 
@@ -65,6 +65,16 @@ void KisBrushOption::readOptionSetting(const \
KisPropertiesConfigurationSP settin  }
 }
 
+void KisBrushOption::readOptionSettingForceCopy(const KisPropertiesConfiguration \
*setting) +{
+    readOptionSettingInternal(setting, true);
+}
+
+void KisBrushOption::readOptionSettingImpl(const KisPropertiesConfiguration \
*setting) +{
+    readOptionSettingInternal(setting, false);
+}
+
 #ifdef HAVE_THREADED_TEXT_RENDERING_WORKAROUND
 
 #include "kis_text_brush_factory.h"
diff --git a/plugins/paintops/libpaintop/kis_brush_option.h \
b/plugins/paintops/libpaintop/kis_brush_option.h index ab45f44..422f8ed 100644
--- a/plugins/paintops/libpaintop/kis_brush_option.h
+++ b/plugins/paintops/libpaintop/kis_brush_option.h
@@ -22,18 +22,20 @@
 #define KIS_BRUSH_OPTION_H_
 
 #include <kis_brush.h>
+#include <kis_base_option.h>
 #include <kis_properties_configuration.h>
 #include <kis_threaded_text_rendering_workaround.h>
 
 
 #include <kritapaintop_export.h>
 
-class PAINTOP_EXPORT KisBrushOption
+class PAINTOP_EXPORT KisBrushOption : public KisBaseOption
 {
 public:
-    void writeOptionSetting(KisPropertiesConfigurationSP setting) const;
 
-    void readOptionSetting(const KisPropertiesConfigurationSP setting, bool \
forceCopy); +    void writeOptionSettingImpl(KisPropertiesConfiguration *setting) \
const; +    void readOptionSettingImpl(const KisPropertiesConfiguration *setting);
+    void readOptionSettingForceCopy(const KisPropertiesConfiguration *setting);
 
     KisBrushSP brush() const;
     void setBrush(KisBrushSP brush);
@@ -43,6 +45,9 @@ public:
 #endif /* HAVE_THREADED_TEXT_RENDERING_WORKAROUND */
 
 private:
+    void readOptionSettingInternal(const KisPropertiesConfiguration *setting, bool \
forceCopy); +
+private:
     KisBrushSP m_brush;
 };
 
diff --git a/plugins/paintops/libpaintop/kis_brush_option_widget.cpp \
b/plugins/paintops/libpaintop/kis_brush_option_widget.cpp index 636da40..3fc53d0 \
                100644
--- a/plugins/paintops/libpaintop/kis_brush_option_widget.cpp
+++ b/plugins/paintops/libpaintop/kis_brush_option_widget.cpp
@@ -83,7 +83,7 @@ void \
KisBrushOptionWidget::writeOptionSetting(KisPropertiesConfigurationSP setti  void \
KisBrushOptionWidget::readOptionSetting(const KisPropertiesConfigurationSP setting)  \
{  m_brushSelectionWidget->readOptionSetting(setting);
-    m_brushOption.readOptionSetting(setting, false);
+    m_brushOption.readOptionSetting(setting);
     m_brushSelectionWidget->setCurrentBrush(m_brushOption.brush());
 }
 
diff --git a/plugins/paintops/sketch/kis_sketch_paintop.cpp \
b/plugins/paintops/sketch/kis_sketch_paintop.cpp index 7a277a3..c3c70dd 100644
--- a/plugins/paintops/sketch/kis_sketch_paintop.cpp
+++ b/plugins/paintops/sketch/kis_sketch_paintop.cpp
@@ -72,7 +72,7 @@ KisSketchPaintOp::KisSketchPaintOp(const KisPaintOpSettingsSP \
settings, KisPaint  m_sizeOption.readOptionSetting(settings);
     m_rotationOption.readOptionSetting(settings);
     m_sketchProperties.readOptionSetting(settings);
-    m_brushOption.readOptionSetting(settings, true);
+    m_brushOption.readOptionSettingForceCopy(settings);
     m_densityOption.readOptionSetting(settings);
     m_lineWidthOption.readOptionSetting(settings);
     m_offsetScaleOption.readOptionSetting(settings);
diff --git a/plugins/paintops/spray/kis_spray_paintop.cpp \
b/plugins/paintops/spray/kis_spray_paintop.cpp index d431f5a..835beaf 100644
--- a/plugins/paintops/spray/kis_spray_paintop.cpp
+++ b/plugins/paintops/spray/kis_spray_paintop.cpp
@@ -58,7 +58,7 @@ KisSprayPaintOp::KisSprayPaintOp(const KisPaintOpSettingsSP \
settings, KisPainter  m_opacityOption.resetAllSensors();
     m_sizeOption.resetAllSensors();
 
-    m_brushOption.readOptionSetting(settings, true);
+    m_brushOption.readOptionSettingForceCopy(settings);
 
     m_colorProperties.fillProperties(settings);
     m_properties.readOptionSetting(settings);
diff --git a/plugins/paintops/spray/kis_sprayop_option.h \
b/plugins/paintops/spray/kis_sprayop_option.h index 2b6db2b..4777d04 100644
--- a/plugins/paintops/spray/kis_sprayop_option.h
+++ b/plugins/paintops/spray/kis_sprayop_option.h
@@ -53,7 +53,7 @@ private:
 
 };
 
-class KisSprayProperties
+class KisSprayProperties : public KisBaseOption
 {
 public:
     quint16 diameter;
@@ -74,7 +74,7 @@ public:
 
 public:
 
-    void readOptionSetting(const KisPropertiesConfigurationSP settings) {
+    void readOptionSettingImpl(const KisPropertiesConfiguration *settings) {
         diameter = settings->getInt(SPRAY_DIAMETER);
         aspect = settings->getDouble(SPRAY_ASPECT);
         particleCount = settings->getDouble(SPRAY_PARTICLE_COUNT);
@@ -88,7 +88,7 @@ public:
         gaussian = settings->getBool(SPRAY_GAUSS_DISTRIBUTION);
     }
 
-    void writeOptionSetting(KisPropertiesConfigurationSP setting) const {
+    void writeOptionSettingImpl(KisPropertiesConfiguration *setting) const {
         setting->setProperty(SPRAY_DIAMETER, diameter);
         setting->setProperty(SPRAY_ASPECT, aspect);
         setting->setProperty(SPRAY_COVERAGE, coverage * 100.0);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic