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

List:       kde-commits
Subject:    koffice/krita/plugins/paintops/defaultpaintops/duplicate
From:       Sven Langkamp <sven.langkamp () gmail ! com>
Date:       2010-02-16 11:34:36
Message-ID: 1266320076.232087.31721.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1090940 by langkamp:

fix duplicateop, needs testing



 M  +5 -4      kis_duplicateop.cpp  
 M  +2 -0      kis_duplicateop.h  
 M  +4 -4      kis_duplicateop_option.cpp  
 M  +3 -0      kis_duplicateop_option.h  
 M  +19 -29    kis_duplicateop_settings.cpp  
 M  +0 -2      kis_duplicateop_settings.h  
 M  +1 -2      kis_duplicateop_settings_widget.cpp  


--- trunk/koffice/krita/plugins/paintops/defaultpaintops/duplicate/kis_duplicateop.cpp \
#1090939:1090940 @@ -61,6 +61,7 @@
 
 #include "kis_duplicateop_settings.h"
 #include "kis_duplicateop_settings_widget.h"
+#include "kis_duplicateop_option.h"
 
 
 KisDuplicateOp::KisDuplicateOp(const KisDuplicateOpSettings *settings, KisPainter \
*painter) @@ -70,6 +71,8 @@
     Q_ASSERT(settings);
     Q_ASSERT(painter);
     m_sizeOption.readOptionSetting(settings);
+    m_healing = settings->getBool(DUPLICATE_HEALING);
+    m_perspectiveCorrection = settings->getBool(DUPLICATE_CORRECT_PERSPECTIVE);
 }
 
 KisDuplicateOp::~KisDuplicateOp()
@@ -112,8 +115,6 @@
         m_duplicateStart = info.pos();
     }
 
-    bool heal = settings->healing();
-
     if (!source()) return;
 
     KisBrushSP brush = m_brush;
@@ -159,7 +160,7 @@
 
     // Perspective correction ?
     KisImageWSP image = settings->m_image;
-    if (settings->perspectiveCorrection() && image && \
image->perspectiveGrid()->countSubGrids() == 1) { +    if (m_perspectiveCorrection && \
image && image->perspectiveGrid()->countSubGrids() == 1) {  Matrix3qreal startM = \
Matrix3qreal::Identity();  Matrix3qreal endM = Matrix3qreal::Identity();
 
@@ -221,7 +222,7 @@
 
     // heal ?
 
-    if (heal) {
+    if (m_healing) {
         quint16 dataDevice[4];
         quint16 dataSrcDev[4];
         double* matrix = new double[ 3 * sw * sh ];
--- trunk/koffice/krita/plugins/paintops/defaultpaintops/duplicate/kis_duplicateop.h \
#1090939:1090940 @@ -63,6 +63,8 @@
     QPointF m_duplicateStart;
     bool m_duplicateStartIsSet;
     KisPressureSizeOption m_sizeOption;
+    bool m_healing;
+    bool m_perspectiveCorrection;
 };
 
 #endif // KIS_DUPLICATEOP_H_
--- trunk/koffice/krita/plugins/paintops/defaultpaintops/duplicate/kis_duplicateop_option.cpp \
#1090939:1090940 @@ -79,14 +79,14 @@
 
 void KisDuplicateOpOption::writeOptionSetting(KisPropertiesConfiguration* setting) \
const  {
-    setting->setProperty("Duplicateop/Healing", healing());
-    setting->setProperty("Duplicateop/CorrectPerspective", correctPerspective());
+    setting->setProperty(DUPLICATE_HEALING, healing());
+    setting->setProperty(DUPLICATE_CORRECT_PERSPECTIVE, correctPerspective());
 }
 
 void KisDuplicateOpOption::readOptionSetting(const KisPropertiesConfiguration* \
setting)  {
-    m_optionWidget->cbHealing->setChecked(setting->getBool("Duplicateop/Healing", \
                false));
-    m_optionWidget->cbPerspective->setChecked(setting->getBool("Duplicateop/CorrectPerspective", \
false)); +    m_optionWidget->cbHealing->setChecked(setting->getBool(DUPLICATE_HEALING, \
false)); +    m_optionWidget->cbPerspective->setChecked(setting->getBool(DUPLICATE_CORRECT_PERSPECTIVE, \
false));  emit sigSettingChanged();
 }
 
--- trunk/koffice/krita/plugins/paintops/defaultpaintops/duplicate/kis_duplicateop_option.h \
#1090939:1090940 @@ -21,6 +21,9 @@
 #include <kis_paintop_option.h>
 #include <krita_export.h>
 
+const QString DUPLICATE_HEALING = "Duplicateop/Healing";
+const QString DUPLICATE_CORRECT_PERSPECTIVE = "Duplicateop/CorrectPerspective";
+
 class KisDuplicateOpOptionsWidget;
 
 class KisDuplicateOpOption : public KisPaintOpOption
--- trunk/koffice/krita/plugins/paintops/defaultpaintops/duplicate/kis_duplicateop_settings.cpp \
#1090939:1090940 @@ -41,8 +41,7 @@
 
 
 KisDuplicateOpSettings::KisDuplicateOpSettings(KisImageWSP image)
-        : m_options(0)
-        , m_image(image)
+        : m_image(image)
         , m_isOffsetNotUptodate(true)
 {
 }
@@ -80,24 +79,18 @@
 
 void KisDuplicateOpSettings::activate()
 {
+    KisDuplicateOpSettingsWidget* options = \
dynamic_cast<KisDuplicateOpSettingsWidget*>(optionsWidget()); +    if(!options)
+        return;
+    
     if (m_image->perspectiveGrid()->countSubGrids() != 1) {
-        m_options->m_duplicateOption->setHealing(false);
-        m_options->m_duplicateOption->setPerspective(false);
+        options->m_duplicateOption->setHealing(false);
+        options->m_duplicateOption->setPerspective(false);
     } else {
-        m_options->m_duplicateOption->setPerspective(false);;
+        options->m_duplicateOption->setPerspective(false);;
     }
 }
 
-bool KisDuplicateOpSettings::healing() const
-{
-    return m_options->m_duplicateOption->healing();
-}
-
-bool KisDuplicateOpSettings::perspectiveCorrection() const
-{
-    return m_options->m_duplicateOption->correctPerspective();
-}
-
 void KisDuplicateOpSettings::fromXML(const QDomElement& elt)
 {
     // First, call the parent class fromXML to make sure all the
@@ -107,26 +100,15 @@
     m_offset.setX(elt.attribute("OffsetX", "0.0").toDouble());
     m_offset.setY(elt.attribute("OffsetY", "0.0").toDouble());
     m_isOffsetNotUptodate = false;
-
-    // Then load the properties for all widgets
-    m_options->setConfiguration(this);
 }
 
 void KisDuplicateOpSettings::toXML(QDomDocument& doc, QDomElement& rootElt) const
 {
-
-    // First, make sure all the option widgets have saved their state
-    // to the property configuration
-    KisPropertiesConfiguration * settings = m_options->configuration();
-
     // Then call the parent class fromXML
-    settings->KisPropertiesConfiguration::toXML(doc, rootElt);
+    KisPropertiesConfiguration::toXML(doc, rootElt);
 
     rootElt.setAttribute("OffsetX", QString::number(m_offset.x()));
     rootElt.setAttribute("OffsetY", QString::number(m_offset.y()));
-
-
-    delete settings;
 }
 
 
@@ -157,9 +139,13 @@
 
 QRectF KisDuplicateOpSettings::paintOutlineRect(const QPointF& pos, KisImageWSP \
image, OutlineMode _mode) const  {
+    KisDuplicateOpSettingsWidget* options = \
dynamic_cast<KisDuplicateOpSettingsWidget*>(optionsWidget()); +    if(!options)
+        return QRectF();
+    
     QRectF dubRect = duplicateOutlineRect(pos, image);
     if (_mode == CURSOR_IS_OUTLINE) {
-        KisBrushSP brush = m_options->m_brushOption->brush();
+        KisBrushSP brush = options->m_brushOption->brush();
         QPointF hotSpot = brush->hotSpot(1.0, 1.0);
         QRectF rect = QRect(0, 0, brush->width(), brush->height());
         rect.translate(pos - hotSpot - QPoint(0.5, 0.5));
@@ -171,7 +157,11 @@
 
 void KisDuplicateOpSettings::paintOutline(const QPointF& pos, KisImageWSP image, \
QPainter &painter, const KoViewConverter &converter, OutlineMode _mode) const  {
-    KisBrushSP brush = m_options->m_brushOption->brush();
+    KisDuplicateOpSettingsWidget* options = \
dynamic_cast<KisDuplicateOpSettingsWidget*>(optionsWidget()); +    if(!options)
+        return;
+    
+    KisBrushSP brush = options->m_brushOption->brush();
     painter.setPen(Qt::black);
     painter.setBackground(Qt::black);
     if (_mode == CURSOR_IS_OUTLINE) {
--- trunk/koffice/krita/plugins/paintops/defaultpaintops/duplicate/kis_duplicateop_settings.h \
#1090939:1090940 @@ -45,8 +45,6 @@
     QPointF offset() const;
     void mousePressEvent(KoPointerEvent *e);
     void activate();
-    bool healing() const;
-    bool perspectiveCorrection() const;
 
     void fromXML(const QDomElement& elt);
     void toXML(QDomDocument& doc, QDomElement& rootElt) const;
--- trunk/koffice/krita/plugins/paintops/defaultpaintops/duplicate/kis_duplicateop_settings_widget.cpp \
#1090939:1090940 @@ -53,8 +53,7 @@
 
 KisPropertiesConfiguration* KisDuplicateOpSettingsWidget::configuration() const
 {
-    KisDuplicateOpSettings *config =
-        new KisDuplicateOpSettings(0);
+    KisDuplicateOpSettings *config = new KisDuplicateOpSettings(0);
     config->setOptionsWidget(const_cast<KisDuplicateOpSettingsWidget*>(this));
     config->setProperty("paintop", "duplicate"); // XXX: make this a const id string
     writeConfiguration(config);


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

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