[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/krita
From: Lukáš Tvrdý <lukast.dev () gmail ! com>
Date: 2010-08-28 19:53:26
Message-ID: 20100828195326.E68CEAC857 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1169245 by lukast:
Fix deserialization of the soft brush mask generator in Auto brush
M +23 -12 image/kis_base_mask_generator.cpp
M +15 -1 image/kis_base_mask_generator.h
M +1 -1 image/kis_circle_mask_generator.cpp
M +0 -1 image/kis_circle_mask_generator.h
M +2 -2 image/kis_curve_circle_mask_generator.cpp
M +2 -2 image/kis_curve_rect_mask_generator.cpp
M +1 -1 image/kis_rect_mask_generator.cpp
M +11 -1 plugins/paintops/libpaintop/kis_auto_brush_widget.cpp
M +1 -12 plugins/paintops/libpaintop/wdgautobrush.ui
--- trunk/koffice/krita/image/kis_base_mask_generator.cpp #1169244:1169245
@@ -29,7 +29,7 @@
#include "kis_curve_circle_mask_generator.h"
#include "kis_curve_rect_mask_generator.h"
-KisMaskGenerator::KisMaskGenerator(qreal radius, qreal ratio, qreal fh, qreal fv, int spikes, Type type) \
: d(new Private) +KisMaskGenerator::KisMaskGenerator(qreal radius, qreal ratio, qreal fh, qreal fv, int \
spikes, Type type, const KoID& id) : d(new Private), m_id(id) {
d->m_radius = radius;
d->m_ratio = ratio;
@@ -61,7 +61,7 @@
e.setAttribute("hfade", horizontalFade());
e.setAttribute("vfade", verticalFade());
e.setAttribute("spikes", d->m_spikes);
-
+ e.setAttribute("id", id());
}
KisMaskGenerator* KisMaskGenerator::fromXML(const QDomElement& elt)
@@ -72,27 +72,31 @@
double vfade = elt.attribute("vfade", "0.0").toDouble();
int spikes = elt.attribute("spikes", "2").toInt();
QString typeShape = elt.attribute("type", "circle");
+ QString id = elt.attribute("id", DefaultId.id());
-
- if (typeShape == "curve_circle"){
- KisCubicCurve curve;
- curve.fromString(elt.attribute("softness_curve","0,0;1,1"));
- return new KisCurveCircleMaskGenerator(radius, ratio, hfade, vfade, spikes, curve);
+ if (id == DefaultId.id()){
+ if (typeShape == "circle"){
+ return new KisCircleMaskGenerator(radius, ratio, hfade, vfade, spikes);
+ }else{
+ return new KisRectangleMaskGenerator(radius, ratio, hfade, vfade, spikes);
}
+ }
- if (typeShape == "curve_rect"){
+ if (id == SoftId.id()){
KisCubicCurve curve;
curve.fromString(elt.attribute("softness_curve","0,0;1,1"));
- return new KisCurveRectangleMaskGenerator(radius, ratio, hfade, vfade, spikes, curve);
- }
if (typeShape == "circle") {
- return new KisCircleMaskGenerator(radius, ratio, hfade, vfade, spikes);
+ return new KisCurveCircleMaskGenerator(radius, ratio, hfade, vfade, spikes, curve);
} else {
- return new KisRectangleMaskGenerator(radius, ratio, hfade, vfade, spikes);
+ return new KisCurveRectangleMaskGenerator(radius, ratio, hfade, vfade, spikes, curve);
}
}
+ // if unknown
+ return new KisCircleMaskGenerator(radius, ratio, hfade, vfade, spikes);
+}
+
qreal KisMaskGenerator::width() const
{
return d->m_radius;
@@ -147,3 +151,10 @@
{
return d->type;
}
+
+QList< KoID > KisMaskGenerator::maskGeneratorIds()
+{
+ QList<KoID> ids;
+ ids << DefaultId << SoftId;
+ return ids;
+}
--- trunk/koffice/krita/image/kis_base_mask_generator.h #1169244:1169245
@@ -20,11 +20,17 @@
#ifndef _KIS_MASK_GENERATOR_H_
#define _KIS_MASK_GENERATOR_H_
+#include <KoID.h>
+#include <klocale.h>
+
#include "krita_export.h"
class QDomElement;
class QDomDocument;
+const KoID DefaultId("default", i18n("Default")); ///< generate Krita default mask generator
+const KoID SoftId("soft", i18n("Soft brush")); ///< generate brush mask from former softbrush paintop, \
where softness is based on curve +
/**
* This is the base class for mask shapes
* You should subclass it if you want to create a new
@@ -45,7 +51,7 @@
* @param fh horizontal fade (fh \< w / 2 )
* @param fv vertical fade (fv \< h / 2 )
*/
- KisMaskGenerator(qreal radius, qreal ratio, qreal fh, qreal fv, int spikes, Type type);
+ KisMaskGenerator(qreal radius, qreal ratio, qreal fh, qreal fv, int spikes, Type type, const KoID& \
id = DefaultId);
virtual ~KisMaskGenerator();
@@ -77,6 +83,11 @@
int spikes() const;
Type type() const;
+ inline QString id() const { return m_id.id(); }
+ inline QString name() const { return m_id.name(); }
+
+ static QList<KoID> maskGeneratorIds();
+
qreal softness() const;
virtual void setSoftness(qreal softness);
@@ -92,6 +103,9 @@
};
Private* const d;
+
+private:
+ const KoID& m_id;
};
#endif
--- trunk/koffice/krita/image/kis_circle_mask_generator.cpp #1169244:1169245
@@ -32,7 +32,7 @@
};
KisCircleMaskGenerator::KisCircleMaskGenerator(qreal radius, qreal ratio, qreal fh, qreal fv, int \
spikes)
- : KisMaskGenerator(radius, ratio, fh, fv, spikes, CIRCLE), d(new Private)
+ : KisMaskGenerator(radius, ratio, fh, fv, spikes, CIRCLE, DefaultId), d(new Private)
{
d->xcoef = 2.0 / width();
d->ycoef = 2.0 / (KisMaskGenerator::d->m_ratio * width());
--- trunk/koffice/krita/image/kis_circle_mask_generator.h #1169244:1169245
@@ -33,7 +33,6 @@
{
public:
-
KisCircleMaskGenerator(qreal radius, qreal ratio, qreal fh, qreal fv, int spikes);
virtual ~KisCircleMaskGenerator();
--- trunk/koffice/krita/image/kis_curve_circle_mask_generator.cpp #1169244:1169245
@@ -39,7 +39,7 @@
};
KisCurveCircleMaskGenerator::KisCurveCircleMaskGenerator(qreal radius, qreal ratio, qreal fh, qreal fv, \
int spikes, const KisCubicCurve &curve)
- : KisMaskGenerator(radius, ratio, fh, fv, spikes, CIRCLE), d(new Private)
+ : KisMaskGenerator(radius, ratio, fh, fv, spikes, CIRCLE, SoftId), d(new Private)
{
d->xcoef = 2.0 / width();
d->ycoef = 2.0 / (KisMaskGenerator::d->m_ratio * width());
@@ -91,7 +91,7 @@
void KisCurveCircleMaskGenerator::toXML(QDomDocument& doc, QDomElement& e) const
{
KisMaskGenerator::toXML(doc, e);
- e.setAttribute("type", "curve_circle");
+ e.setAttribute("type", "circle");
e.setAttribute("softness_curve", d->curve);
}
--- trunk/koffice/krita/image/kis_curve_rect_mask_generator.cpp #1169244:1169245
@@ -34,7 +34,7 @@
};
KisCurveRectangleMaskGenerator::KisCurveRectangleMaskGenerator(qreal radius, qreal ratio, qreal fh, \
qreal fv, int spikes, const KisCubicCurve &curve)
- : KisMaskGenerator(radius, ratio, fh, fv, spikes, RECTANGLE), d(new Private)
+ : KisMaskGenerator(radius, ratio, fh, fv, spikes, RECTANGLE, SoftId), d(new Private)
{
d->curveResolution = qRound(width());
d->curveData = curve.floatTransfer( d->curveResolution + 1);
@@ -73,7 +73,7 @@
void KisCurveRectangleMaskGenerator::toXML(QDomDocument& doc, QDomElement& e) const
{
KisMaskGenerator::toXML(doc, e);
- e.setAttribute("type", "curve_rect");
+ e.setAttribute("type", "rect");
e.setAttribute("softness_curve", d->curve);
}
--- trunk/koffice/krita/image/kis_rect_mask_generator.cpp #1169244:1169245
@@ -27,7 +27,7 @@
};
KisRectangleMaskGenerator::KisRectangleMaskGenerator(qreal radius, qreal ratio, qreal fh, qreal fv, int \
spikes)
- : KisMaskGenerator(radius, ratio, fh, fv, spikes, RECTANGLE), d(new Private)
+ : KisMaskGenerator(radius, ratio, fh, fv, spikes, RECTANGLE, DefaultId), d(new Private)
{
if (KisMaskGenerator::d->m_fv == 0 &&
KisMaskGenerator::d->m_fh == 0) {
--- trunk/koffice/krita/plugins/paintops/libpaintop/kis_auto_brush_widget.cpp #1169244:1169245
@@ -102,8 +102,14 @@
m_brush = QImage(1, 1, QImage::Format_RGB32);
connect(brushPreview, SIGNAL(clicked()), SLOT(paramChanged()));
+
+ QList<KoID> ids = KisMaskGenerator::maskGeneratorIds();
+ for (int i=0;i<ids.size();i++){
+ comboBoxMaskType->insertItem(i,ids[i].name());
+ }
+
connect(comboBoxMaskType, SIGNAL(activated(int)), SLOT(paramChanged()));
- connect(comboBoxMaskType, SIGNAL(activated(int)), stackedWidget, SLOT(setCurrentIndex(int)));
+ connect(comboBoxMaskType, SIGNAL(currentIndexChanged(int)), stackedWidget, \
SLOT(setCurrentIndex(int)));
brushPreview->setIconSize(QSize(100, 100));
@@ -209,6 +215,9 @@
}else /*if (aBrush->maskGenerator()->type() == KisMaskGenerator::RECTANGLE) */ {
comboBoxShape->setCurrentIndex(1);
}
+
+ comboBoxMaskType->setCurrentIndex( comboBoxMaskType->findText( aBrush->maskGenerator()->name() ) );
+
inputRadius->setValue(aBrush->maskGenerator()->radius());
inputRatio->setValue(aBrush->maskGenerator()->ratio());
inputHFade->setValue(aBrush->maskGenerator()->horizontalFade());
@@ -219,6 +228,7 @@
inputSpacing->setExponentRatio(3.0);
inputRandomness->setValue(aBrush->randomness() * 100);
density->setValue(aBrush->density() * 100);
+
}
--- trunk/koffice/krita/plugins/paintops/libpaintop/wdgautobrush.ui #1169244:1169245
@@ -48,20 +48,9 @@
</widget>
</item>
<item>
- <widget class="QComboBox" name="comboBoxMaskType">
- <item>
- <property name="text">
- <string>default</string>
- </property>
+ <widget class="QComboBox" name="comboBoxMaskType"/>
</item>
<item>
- <property name="text">
- <string>soft brush</string>
- </property>
- </item>
- </widget>
- </item>
- <item>
<widget class="QComboBox" name="comboBoxShape">
<property name="focusPolicy">
<enum>Qt::ClickFocus</enum>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic