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

List:       kde-commits
Subject:    [calligra/krita-chili-kazakov] krita/plugins/paintops/libpaintop: Port the rest of the brushes to su
From:       Dmitry Kazakov <dimula73 () gmail ! com>
Date:       2014-08-25 10:30:16
Message-ID: E1XLrXU-0005U7-HA () scm ! kde ! org
[Download RAW message or body]

Git commit ef3f4205108f3130814c2a08a778607da7376144 by Dmitry Kazakov.
Committed on 25/08/2014 at 10:30.
Pushed by dkazakov into branch 'krita-chili-kazakov'.

Port the rest of the brushes to support Auto-spacing

M  +3    -3    krita/plugins/paintops/libpaintop/forms/wdgclipboardbrush.ui
M  +3    -3    krita/plugins/paintops/libpaintop/forms/wdgcustombrush.ui
M  +3    -1    krita/plugins/paintops/libpaintop/kis_brush_based_paintop.cpp
M  +16   -10   krita/plugins/paintops/libpaintop/kis_brush_chooser.cpp
M  +3    -2    krita/plugins/paintops/libpaintop/kis_brush_chooser.h
M  +8    -7    krita/plugins/paintops/libpaintop/kis_clipboard_brush_widget.cpp
M  +1    -1    krita/plugins/paintops/libpaintop/kis_clipboard_brush_widget.h
M  +9    -4    krita/plugins/paintops/libpaintop/kis_custom_brush_widget.cpp
M  +1    -4    krita/plugins/paintops/libpaintop/kis_custom_brush_widget.h

http://commits.kde.org/calligra/ef3f4205108f3130814c2a08a778607da7376144

diff --git a/krita/plugins/paintops/libpaintop/forms/wdgclipboardbrush.ui \
b/krita/plugins/paintops/libpaintop/forms/wdgclipboardbrush.ui index 71f55f3..c4466b0 \
                100644
--- a/krita/plugins/paintops/libpaintop/forms/wdgclipboardbrush.ui
+++ b/krita/plugins/paintops/libpaintop/forms/wdgclipboardbrush.ui
@@ -90,7 +90,7 @@
       </widget>
      </item>
      <item>
-      <widget class="KisDoubleSliderSpinBox" name="spacingSlider" native="true"/>
+      <widget class="KisSpacingSelectionWidget" name="spacingWidget" native="true"/>
      </item>
     </layout>
    </item>
@@ -128,9 +128,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>KisDoubleSliderSpinBox</class>
+   <class>KisSpacingSelectionWidget</class>
    <extends>QWidget</extends>
-   <header>kis_slider_spin_box.h</header>
+   <header>kis_spacing_selection_widget.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/krita/plugins/paintops/libpaintop/forms/wdgcustombrush.ui \
b/krita/plugins/paintops/libpaintop/forms/wdgcustombrush.ui index 1c1a21b..6f330a8 \
                100644
--- a/krita/plugins/paintops/libpaintop/forms/wdgcustombrush.ui
+++ b/krita/plugins/paintops/libpaintop/forms/wdgcustombrush.ui
@@ -185,7 +185,7 @@
       </widget>
      </item>
      <item>
-      <widget class="KisDoubleSliderSpinBox" name="spacingSlider" native="true"/>
+      <widget class="KisSpacingSelectionWidget" name="spacingWidget" native="true"/>
      </item>
     </layout>
    </item>
@@ -214,9 +214,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>KisDoubleSliderSpinBox</class>
+   <class>KisSpacingSelectionWidget</class>
    <extends>QWidget</extends>
-   <header>kis_slider_spin_box.h</header>
+   <header>kis_spacing_selection_widget.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff --git a/krita/plugins/paintops/libpaintop/kis_brush_based_paintop.cpp \
b/krita/plugins/paintops/libpaintop/kis_brush_based_paintop.cpp index \
                ab5b013..995fc74 100644
--- a/krita/plugins/paintops/libpaintop/kis_brush_based_paintop.cpp
+++ b/krita/plugins/paintops/libpaintop/kis_brush_based_paintop.cpp
@@ -102,6 +102,8 @@ KisBrushBasedPaintOp::~KisBrushBasedPaintOp()
 
 bool KisBrushBasedPaintOp::checkSizeTooSmall(qreal scale)
 {
+    scale *= m_brush->scale();
+
     return scale * m_brush->width() < 0.01 ||
            scale * m_brush->height() < 0.01;
 }
@@ -120,7 +122,7 @@ KisSpacingInformation \
KisBrushBasedPaintOp::effectiveSpacing(qreal scale, qreal  
     QSizeF metric =
         KisQImagePyramid::characteristicSize(QSize(m_brush->width(), \
                m_brush->height()),
-                                             scale, rotation);
+                                             m_brush->scale() * scale, rotation);
 
     return effectiveSpacing(metric.width(), metric.height(), extraSpacingScale, \
spacingOption.isotropicSpacing());  }
diff --git a/krita/plugins/paintops/libpaintop/kis_brush_chooser.cpp \
b/krita/plugins/paintops/libpaintop/kis_brush_chooser.cpp index 1218323..40d5b49 \
                100644
--- a/krita/plugins/paintops/libpaintop/kis_brush_chooser.cpp
+++ b/krita/plugins/paintops/libpaintop/kis_brush_chooser.cpp
@@ -42,6 +42,9 @@
 #include "kis_brush_server.h"
 #include "widgets/kis_slider_spin_box.h"
 #include "widgets/kis_multipliers_double_slider_spinbox.h"
+#include "kis_spacing_selection_widget.h"
+#include "kis_signals_blocker.h"
+
 
 #include "kis_global.h"
 #include "kis_gbr_brush.h"
@@ -113,11 +116,9 @@ KisBrushChooser::KisBrushChooser(QWidget *parent, const char \
                *name)
     QObject::connect(m_slRotation, SIGNAL(valueChanged(qreal)), this, \
SLOT(slotSetItemRotation(qreal)));  
     m_lbSpacing = new QLabel(i18n("Spacing:"), this);
-    m_slSpacing = new KisDoubleSliderSpinBox(this);
-    m_slSpacing->setRange(0.02, 10, 2);
-    m_slSpacing->setValue(0.1);
-    m_slSpacing->setExponentRatio(3.0);
-    QObject::connect(m_slSpacing, SIGNAL(valueChanged(qreal)), this, \
SLOT(slotSetItemSpacing(qreal))); +    m_slSpacing = new \
KisSpacingSelectionWidget(this); +    m_slSpacing->setSpacing(true, 1.0);
+    connect(m_slSpacing, SIGNAL(sigSpacingChanged()), SLOT(slotSpacingChanged()));
 
     m_chkColorMask = new QCheckBox(i18n("Use color as mask"), this);
     QObject::connect(m_chkColorMask, SIGNAL(toggled(bool)), this, \
SLOT(slotSetItemUseColorAsMask(bool))); @@ -217,11 +218,12 @@ void \
KisBrushChooser::slotSetItemRotation(qreal rotationValue)  }
 }
 
-void KisBrushChooser::slotSetItemSpacing(qreal spacingValue)
+void KisBrushChooser::slotSpacingChanged()
 {
     KisBrush *brush = dynamic_cast<KisBrush *>(m_itemChooser->currentResource());
     if (brush) {
-        brush->setSpacing(spacingValue);
+        brush->setSpacing(m_slSpacing->spacing());
+        brush->setAutoSpacing(m_slSpacing->autoSpacingActive(), \
m_slSpacing->autoSpacingCoeff());  slotActivatedBrush(brush);
 
         emit sigBrushChanged();
@@ -251,9 +253,13 @@ void KisBrushChooser::update(KoResource * resource)
                        .arg(brush->height());
 
         m_lbName->setText(text);
-        m_slSpacing->blockSignals(true);
-        m_slSpacing->setValue(brush->spacing());
-        m_slSpacing->blockSignals(false);
+
+        {
+            KisSignalsBlocker b(m_slSpacing);
+            m_slSpacing->setSpacing(brush->autoSpacingActive(),
+                                    brush->autoSpacingActive() ?
+                                    brush->autoSpacingCoeff() : brush->spacing());
+        }
 
         m_slRotation->blockSignals(true);
         m_slRotation->setValue(brush->angle() * 180 / M_PI);
diff --git a/krita/plugins/paintops/libpaintop/kis_brush_chooser.h \
b/krita/plugins/paintops/libpaintop/kis_brush_chooser.h index bf3e4bb..209657c 100644
--- a/krita/plugins/paintops/libpaintop/kis_brush_chooser.h
+++ b/krita/plugins/paintops/libpaintop/kis_brush_chooser.h
@@ -28,6 +28,7 @@ class QCheckBox;
 
 class KisMultipliersDoubleSliderSpinBox;
 class KisDoubleSliderSpinBox;
+class KisSpacingSelectionWidget;
 class KoResourceItemChooser;
 class KoResource;
 
@@ -52,7 +53,7 @@ private slots:
     void slotResetBrush();
     void slotSetItemSize(qreal);
     void slotSetItemRotation(qreal);
-    void slotSetItemSpacing(qreal);
+    void slotSpacingChanged();
     void slotSetItemUseColorAsMask(bool);
     void slotActivatedBrush(KoResource *);
     void update(KoResource *);
@@ -68,7 +69,7 @@ private:
     QLabel* m_lbSpacing;
     KisDoubleSliderSpinBox* m_slRotation;
     KisMultipliersDoubleSliderSpinBox* m_slSize;
-    KisDoubleSliderSpinBox* m_slSpacing;
+    KisSpacingSelectionWidget* m_slSpacing;
     QCheckBox* m_chkColorMask;
     KisBrushSP m_brush;
     KoResourceItemChooser* m_itemChooser;
diff --git a/krita/plugins/paintops/libpaintop/kis_clipboard_brush_widget.cpp \
b/krita/plugins/paintops/libpaintop/kis_clipboard_brush_widget.cpp index \
                119979d..a561a59 100644
--- a/krita/plugins/paintops/libpaintop/kis_clipboard_brush_widget.cpp
+++ b/krita/plugins/paintops/libpaintop/kis_clipboard_brush_widget.cpp
@@ -43,9 +43,6 @@ KisClipboardBrushWidget::KisClipboardBrushWidget(QWidget *parent, \
const QString  setWindowTitle(caption);
     preview->setScaledContents(true);
     preview->setFixedSize(preview->size());
-    spacingSlider->setRange(0.0, 10.0, 2);
-    spacingSlider->setExponentRatio(3.0);
-    spacingSlider->setValue(0.25);
 
     KisBrushResourceServer* rServer = KisBrushServer::instance()->brushServer();
     m_rServerAdapter = QSharedPointer<KisBrushResourceServerAdapter>(new \
KisBrushResourceServerAdapter(rServer)); @@ -56,9 +53,11 @@ \
KisClipboardBrushWidget::KisClipboardBrushWidget(QWidget *parent, const QString  \
m_clipboard = KisClipboard::instance();  
     connect(m_clipboard, SIGNAL(clipChanged()), this, SLOT(slotUseBrushClicked()));
-    connect(spacingSlider, SIGNAL(valueChanged(qreal)), this, \
                SLOT(slotUpdateSpacing(qreal)));
     connect(colorAsmask, SIGNAL(toggled(bool)), this, \
SLOT(slotUpdateUseColorAsMask(bool)));  connect(saveBrush, SIGNAL(clicked()), this, \
SLOT(slotSaveBrush())); +
+    spacingWidget->setSpacing(true, 1.0);
+    connect(spacingWidget, SIGNAL(sigSpacingChanged()), SLOT(slotSpacingChanged()));
 }
 
 KisClipboardBrushWidget::~KisClipboardBrushWidget()
@@ -89,7 +88,8 @@ void KisClipboardBrushWidget::slotUseBrushClicked()
 
             m_brush = new KisGbrBrush(pd, rc.x(), rc.y(), rc.width(), rc.height());
 
-            m_brush->setSpacing(spacingSlider->value());
+            m_brush->setSpacing(spacingWidget->spacing());
+            m_brush->setAutoSpacing(spacingWidget->autoSpacingActive(), \
spacingWidget->autoSpacingCoeff());  \
m_brush->setFilename(TEMPORARY_CLIPBOARD_BRUSH_FILENAME);  \
m_brush->setName(TEMPORARY_CLIPBOARD_BRUSH_NAME);  m_brush->setValid(true);
@@ -106,10 +106,11 @@ void KisClipboardBrushWidget::slotUseBrushClicked()
     }
 }
 
-void KisClipboardBrushWidget::slotUpdateSpacing(qreal val)
+void KisClipboardBrushWidget::slotSpacingChanged()
 {
     if (m_brush) {
-        m_brush->setSpacing(val);
+        m_brush->setSpacing(spacingWidget->spacing());
+        m_brush->setAutoSpacing(spacingWidget->autoSpacingActive(), \
spacingWidget->autoSpacingCoeff());  }
     emit sigBrushChanged();
 }
diff --git a/krita/plugins/paintops/libpaintop/kis_clipboard_brush_widget.h \
b/krita/plugins/paintops/libpaintop/kis_clipboard_brush_widget.h index \
                3aa933c..336fdef 100644
--- a/krita/plugins/paintops/libpaintop/kis_clipboard_brush_widget.h
+++ b/krita/plugins/paintops/libpaintop/kis_clipboard_brush_widget.h
@@ -59,7 +59,7 @@ public:
 
 private slots:
     void slotUseBrushClicked();
-    void slotUpdateSpacing(qreal val);
+    void slotSpacingChanged();
     void slotUpdateUseColorAsMask(bool useColorAsMask);
     void slotSaveBrush();
 
diff --git a/krita/plugins/paintops/libpaintop/kis_custom_brush_widget.cpp \
b/krita/plugins/paintops/libpaintop/kis_custom_brush_widget.cpp index \
                311a1ae..415f2ff 100644
--- a/krita/plugins/paintops/libpaintop/kis_custom_brush_widget.cpp
+++ b/krita/plugins/paintops/libpaintop/kis_custom_brush_widget.cpp
@@ -65,7 +65,10 @@ KisCustomBrushWidget::KisCustomBrushWidget(QWidget *parent, const \
                QString& capti
     connect(brushButton, SIGNAL(pressed()), this, SLOT(slotUpdateCurrentBrush()));
     connect(brushStyle, SIGNAL(activated(int)), this, \
                SLOT(slotUpdateCurrentBrush(int)));
     connect(colorAsMask, SIGNAL(toggled(bool)), this, \
                SLOT(slotUpdateUseColorAsMask(bool)));
-    connect(spacingSlider, SIGNAL(valueChanged(qreal)), this, \
SLOT(slotUpdateSpacing(qreal))); +
+    spacingWidget->setSpacing(true, 1.0);
+    connect(spacingWidget, SIGNAL(sigSpacingChanged()), SLOT(slotSpacingChanged()));
+
     slotUpdateCurrentBrush();
 }
 
@@ -103,10 +106,11 @@ void KisCustomBrushWidget::slotUpdateCurrentBrush(int)
     emit sigBrushChanged();
 }
 
-void KisCustomBrushWidget::slotUpdateSpacing(qreal spacing)
+void KisCustomBrushWidget::slotSpacingChanged()
 {
     if (m_brush) {
-        m_brush->setSpacing(spacing);
+        m_brush->setSpacing(spacingWidget->spacing());
+        m_brush->setAutoSpacing(spacingWidget->autoSpacingActive(), \
spacingWidget->autoSpacingCoeff());  }
     emit sigBrushChanged();
 }
@@ -252,7 +256,8 @@ void KisCustomBrushWidget::createBrush()
     }
 
     static_cast<KisGbrBrush*>(m_brush.data())->setUseColorAsMask(colorAsMask->isChecked());
                
-    m_brush->setSpacing(spacingSlider->value());
+    m_brush->setSpacing(spacingWidget->spacing());
+    m_brush->setAutoSpacing(spacingWidget->autoSpacingActive(), \
spacingWidget->autoSpacingCoeff());  m_brush->setFilename(TEMPORARY_FILENAME);
     m_brush->setName(TEMPORARY_BRUSH_NAME);
     m_brush->setValid(true);
diff --git a/krita/plugins/paintops/libpaintop/kis_custom_brush_widget.h \
b/krita/plugins/paintops/libpaintop/kis_custom_brush_widget.h index 105624b..77706e2 \
                100644
--- a/krita/plugins/paintops/libpaintop/kis_custom_brush_widget.h
+++ b/krita/plugins/paintops/libpaintop/kis_custom_brush_widget.h
@@ -43,9 +43,6 @@ class KisWdgCustomBrush : public QWidget, public \
Ui::KisWdgCustomBrush  public:
     KisWdgCustomBrush(QWidget *parent) : QWidget(parent) {
         setupUi(this);
-        spacingSlider->setRange(0.0, 10.0, 2);
-        spacingSlider->setExponentRatio(3.0);
-        spacingSlider->setValue(DEFAULT_SPACING);
     }
 };
 
@@ -65,7 +62,7 @@ protected:
 private slots:
     void slotAddPredefined();
     void slotUpdateCurrentBrush(int i = 0); // To connect with activated(int)
-    void slotUpdateSpacing(qreal spacing);
+    void slotSpacingChanged();
     void slotUpdateUseColorAsMask(bool useColorAsMask);
 
 signals:


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

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