[qet] [3631] Clean some code (related to element editor) |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/qet Archives
]
Revision: 3631
Author: blacksun
Date: 2015-01-27 11:37:03 +0100 (Tue, 27 Jan 2015)
Log Message:
-----------
Clean some code (related to element editor)
Modified Paths:
--------------
trunk/sources/editor/graphicspart/customelementgraphicpart.cpp
trunk/sources/editor/graphicspart/customelementgraphicpart.h
trunk/sources/editor/polygoneditor.cpp
trunk/sources/editor/rectangleeditor.cpp
Modified: trunk/sources/editor/graphicspart/customelementgraphicpart.cpp
===================================================================
--- trunk/sources/editor/graphicspart/customelementgraphicpart.cpp 2015-01-26 22:32:55 UTC (rev 3630)
+++ trunk/sources/editor/graphicspart/customelementgraphicpart.cpp 2015-01-27 10:37:03 UTC (rev 3631)
@@ -18,18 +18,42 @@
#include "customelementgraphicpart.h"
/**
- Ecrit les attributs de style dans un element XML
- @param qde L'element XML a modifier
-
-*/
-void CustomElementGraphicPart::stylesToXml(QDomElement &qde) const {
+ * @brief CustomElementGraphicPart::CustomElementGraphicPart
+ * Default constructor.
+ * @param editor QETElement editor that belong this.
+ */
+CustomElementGraphicPart::CustomElementGraphicPart(QETElementEditor *editor) :
+ CustomElementPart(editor),
+ _linestyle(NormalStyle),
+ _lineweight(NormalWeight),
+ _filling(NoneFilling),
+ _color(BlackColor),
+ _antialiased(false)
+{}
+
+/**
+ * @brief CustomElementGraphicPart::~CustomElementGraphicPart
+ * Destructor
+ */
+CustomElementGraphicPart::~CustomElementGraphicPart() {}
+
+/**
+ * @brief CustomElementGraphicPart::stylesToXml
+ * Write the curent style to xml element.
+ * The style are stored like this:
+ * name-of-style:value;name-of-style:value
+ * Each style separate by ; and name-style/value are separate by :
+ * @param qde : QDOmElement used to write the style.
+ */
+void CustomElementGraphicPart::stylesToXml(QDomElement &qde) const
+{
QString css_like_styles;
css_like_styles += "line-style:";
- if (_linestyle == DashedStyle) css_like_styles += "dashed";
- if (_linestyle == DottedStyle) css_like_styles += "dotted";
- if (_linestyle == DashdottedStyle)css_like_styles += "dashdotted";
- else if (_linestyle == NormalStyle) css_like_styles += "normal";
+ if (_linestyle == DashedStyle) css_like_styles += "dashed";
+ else if (_linestyle == DottedStyle) css_like_styles += "dotted";
+ else if (_linestyle == DashdottedStyle) css_like_styles += "dashdotted";
+ else if (_linestyle == NormalStyle) css_like_styles += "normal";
css_like_styles += ";line-weight:";
if (_lineweight == NoneWeight) css_like_styles += "none";
@@ -44,73 +68,86 @@
else if (_filling == BlackFilling) css_like_styles += "black";
else if (_filling == WhiteFilling) css_like_styles += "white";
else if (_filling == GreenFilling) css_like_styles += "green";
- else if (_filling == BlueFilling) css_like_styles += "blue";
- else if (_filling == RedFilling) css_like_styles += "red";
+ else if (_filling == BlueFilling) css_like_styles += "blue";
+ else if (_filling == RedFilling) css_like_styles += "red";
css_like_styles += ";color:";
if (_color == WhiteColor) css_like_styles += "white";
else if (_color == BlackColor) css_like_styles += "black";
else if (_color == GreenColor) css_like_styles += "green";
- else if (_color == RedColor) css_like_styles += "red";
- else if (_color == BlueColor) css_like_styles += "blue";
+ else if (_color == RedColor) css_like_styles += "red";
+ else if (_color == BlueColor) css_like_styles += "blue";
qde.setAttribute("style", css_like_styles);
qde.setAttribute("antialias", _antialiased ? "true" : "false");
}
+
/**
- Lit les attributs de style depuis un element XML
- @param qde L'element XML a analyser
-*/
-void CustomElementGraphicPart::stylesFromXml(const QDomElement &qde) {
+ * @brief CustomElementGraphicPart::stylesFromXml
+ * Read the style used by this, from a xml element.
+ * @param qde : QDomElement used to read the style
+ */
+void CustomElementGraphicPart::stylesFromXml(const QDomElement &qde)
+{
resetStyles();
- // recupere la liste des couples style / valeur
+ //Get the list of pair style/value
QStringList styles = qde.attribute("style").split(";", QString::SkipEmptyParts);
- // analyse chaque couple
+ //Check each pair of style
QRegExp rx("^\\s*([a-z-]+)\\s*:\\s*([a-z-]+)\\s*$");
- foreach (QString style, styles) {
+ foreach (QString style, styles)
+ {
if (!rx.exactMatch(style)) continue;
QString style_name = rx.cap(1);
QString style_value = rx.cap(2);
- if (style_name == "line-style") {
- if (style_value == "dashed") _linestyle = DashedStyle;
- if (style_value == "dotted") _linestyle = DottedStyle;
- if (style_value == "dashdotted") _linestyle = DashdottedStyle;
- else if (style_value == "normal") _linestyle = NormalStyle;
- // il n'y a pas de else car les valeurs non conformes sont ignorees (idem par la suite)
- } else if (style_name == "line-weight") {
+ if (style_name == "line-style")
+ {
+ if (style_value == "dashed") _linestyle = DashedStyle;
+ else if (style_value == "dotted") _linestyle = DottedStyle;
+ else if (style_value == "dashdotted") _linestyle = DashdottedStyle;
+ else if (style_value == "normal") _linestyle = NormalStyle;
+ }
+ else if (style_name == "line-weight")
+ {
if (style_value == "none") _lineweight = NoneWeight;
else if (style_value == "thin") _lineweight = ThinWeight;
else if (style_value == "normal") _lineweight = NormalWeight;
- else if (style_value == "hight") _lineweight = UltraWeight;
- else if (style_value == "eleve") _lineweight = BigWeight;
- } else if (style_name == "filling") {
+ else if (style_value == "hight") _lineweight = UltraWeight;
+ else if (style_value == "eleve") _lineweight = BigWeight;
+ }
+ else if (style_name == "filling")
+ {
if (style_value == "white") _filling = WhiteFilling;
else if (style_value == "black") _filling = BlackFilling;
- else if (style_value == "red") _filling = RedFilling;
+ else if (style_value == "red") _filling = RedFilling;
else if (style_value == "green") _filling = GreenFilling;
- else if (style_value == "blue") _filling = BlueFilling;
+ else if (style_value == "blue") _filling = BlueFilling;
else if (style_value == "none") _filling = NoneFilling;
- } else if (style_name == "color") {
+ }
+ else if (style_name == "color")
+ {
if (style_value == "black") _color = BlackColor;
else if (style_value == "white") _color = WhiteColor;
else if (style_value == "green") _color = GreenColor;
- else if (style_value == "red") _color = RedColor;
- else if (style_value == "blue") _color = BlueColor;
+ else if (style_value == "red") _color = RedColor;
+ else if (style_value == "blue") _color = BlueColor;
}
}
-
- // recupere l'antialiasing
+ //Get antialiasing
_antialiased = qde.attribute("antialias") == "true";
}
+
/**
- Remet les styles par defaut
-*/
-void CustomElementGraphicPart::resetStyles() {
+ * @brief CustomElementGraphicPart::resetStyles
+ * Reset the curent style to default,
+ * same style of default constructor
+ */
+void CustomElementGraphicPart::resetStyles()
+{
_linestyle = NormalStyle;
_lineweight = NormalWeight;
_filling = NoneFilling;
@@ -119,58 +156,49 @@
}
/**
- Applique les styles a un Qpainter
- @param painter QPainter a modifier
-*/
-void CustomElementGraphicPart::applyStylesToQPainter(QPainter &painter) const {
- // recupere le QPen et la QBrush du QPainter
+ * @brief CustomElementGraphicPart::applyStylesToQPainter
+ * Apply the current style to the QPainter
+ * @param painter
+ */
+void CustomElementGraphicPart::applyStylesToQPainter(QPainter &painter) const
+{
+ //Get the pen and brush
QPen pen = painter.pen();
QBrush brush = painter.brush();
- // applique le style de trait
- if (_linestyle == DashedStyle) pen.setStyle(Qt::DashLine);
- if (_linestyle == DashdottedStyle) pen.setStyle(Qt::DashDotLine);
- if (_linestyle == DottedStyle) pen.setStyle(Qt::DotLine);
- else if (_linestyle == NormalStyle) pen.setStyle(Qt::SolidLine);
+ //Apply pen style
+ if (_linestyle == DashedStyle) pen.setStyle(Qt::DashLine);
+ else if (_linestyle == DashdottedStyle) pen.setStyle(Qt::DashDotLine);
+ else if (_linestyle == DottedStyle) pen.setStyle(Qt::DotLine);
+ else if (_linestyle == NormalStyle) pen.setStyle(Qt::SolidLine);
- // applique l'epaisseur de trait
- if (_lineweight == NoneWeight) pen.setColor(QColor(0, 0, 0, 0));
- else if (_lineweight == ThinWeight) pen.setWidth(0);
- else if (_lineweight == NormalWeight) pen.setWidthF(1.0);
- else if (_lineweight == UltraWeight) pen.setWidthF(2.0);
- else if (_lineweight == BigWeight) pen.setWidthF(5.0);
+ //Apply pen width
+ if (_lineweight == NoneWeight) pen.setColor(QColor(0, 0, 0, 0));
+ else if (_lineweight == ThinWeight) pen.setWidth(0);
+ else if (_lineweight == NormalWeight) pen.setWidthF(1.0);
+ else if (_lineweight == UltraWeight) pen.setWidthF(2.0);
+ else if (_lineweight == BigWeight) pen.setWidthF(5.0);
-
-
- // applique le remplissage
- if (_filling == NoneFilling) {
- brush.setStyle(Qt::NoBrush);
- } else if (_filling == BlackFilling) {
+ //Apply brush color
+ if (_filling == NoneFilling) brush.setStyle(Qt::NoBrush);
+ else
+ {
brush.setStyle(Qt::SolidPattern);
- brush.setColor(Qt::black);
- } else if (_filling == WhiteFilling) {
- brush.setStyle(Qt::SolidPattern);
- brush.setColor(Qt::white);
- } else if (_filling == GreenFilling) {
- brush.setStyle(Qt::SolidPattern);
- brush.setColor(Qt::green);
- } else if (_filling == RedFilling) {
- brush.setStyle(Qt::SolidPattern);
- brush.setColor(Qt::red);
- } else if (_filling == BlueFilling) {
- brush.setStyle(Qt::SolidPattern);
- brush.setColor(Qt::blue);
+ if (_filling == BlackFilling) brush.setColor(Qt::black);
+ else if (_filling == WhiteFilling) brush.setColor(Qt::white);
+ else if (_filling == GreenFilling) brush.setColor(Qt::green);
+ else if (_filling == RedFilling) brush.setColor(Qt::red);
+ else if (_filling == BlueFilling) brush.setColor(Qt::blue);
}
- // applique la couleur de trait
+ //Apply pen color
if (_color == WhiteColor) pen.setColor(QColor(255, 255, 255, pen.color().alpha()));
else if (_color == BlackColor) pen.setColor(QColor( 0, 0, 0, pen.color().alpha()));
else if (_color == GreenColor) pen.setColor(QColor(Qt::green));
- else if (_color == RedColor) pen.setColor(QColor(Qt::red));
- else if (_color == BlueColor) pen.setColor(QColor(Qt::blue));
+ else if (_color == RedColor) pen.setColor(QColor(Qt::red));
+ else if (_color == BlueColor) pen.setColor(QColor(Qt::blue));
-
- // applique l'antialiasing
+ //Apply antialiasing
painter.setRenderHint(QPainter::Antialiasing, _antialiased);
painter.setRenderHint(QPainter::TextAntialiasing, _antialiased);
painter.setRenderHint(QPainter::SmoothPixmapTransform, _antialiased);
Modified: trunk/sources/editor/graphicspart/customelementgraphicpart.h
===================================================================
--- trunk/sources/editor/graphicspart/customelementgraphicpart.h 2015-01-26 22:32:55 UTC (rev 3630)
+++ trunk/sources/editor/graphicspart/customelementgraphicpart.h 2015-01-27 10:37:03 UTC (rev 3631)
@@ -17,116 +17,90 @@
*/
#ifndef CUSTOM_ELEMENT_GRAPHIC_PART_H
#define CUSTOM_ELEMENT_GRAPHIC_PART_H
-#include <QPainter>
+
#include <QObject>
#include "customelementpart.h"
-#include "styleeditor.h"
+
class QETElementEditor;
-typedef CustomElementGraphicPart CEGP;
+class QPainter;
+
/**
- This class represents an element visual/geometric primitive. It provides
- methods to manage style attributes common to most primitives.
-*/
-class CustomElementGraphicPart : public QObject, public CustomElementPart {
- Q_OBJECT
+ * @brief The CustomElementGraphicPart class
+ * This class is the base for all home-made primitive like line, rectangle, ellipse etc....
+ * It provides methods and enums to manage style attributes available for primitive (color, pen style, etc...)
+ */
+class CustomElementGraphicPart : public QObject, public CustomElementPart
+{
+ Q_OBJECT
+ //Made this Q_ENUMS to be used by the Q_PROPERTY system.
+ Q_ENUMS (LineStyle)
+ Q_ENUMS (LineWeight)
+ Q_ENUMS (Filling)
+ Q_ENUMS (Color)
+
+ Q_PROPERTY(LineStyle line_style READ lineStyle WRITE setLineStyle)
+ Q_PROPERTY(LineWeight line_weight READ lineWeight WRITE setLineWeight)
+ Q_PROPERTY(Filling filling READ filling WRITE setFilling)
+ Q_PROPERTY(Color color READ color WRITE setColor)
+ Q_PROPERTY(bool antialias READ antialiased WRITE setAntialiased)
+
public:
- /// This enum lists the various line styles available to draw primitives.
- Q_ENUMS(LineStyle)
- enum LineStyle {
- NormalStyle, ///< Normal line
- DashedStyle, ///< Dashed line
- DottedStyle, ///< Dotted line
- DashdottedStyle ///< Dashdotted line
- };
-
- /// This enum lists the various line weights available to draw primitives.
- Q_ENUMS(LineWeight)
- enum LineWeight {
- NoneWeight, ///< Invisible line
- ThinWeight, ///< Thin line
- NormalWeight, ///< Normal line 1px
- UltraWeight, ///< Normal line 2px
- BigWeight ///< Big Line
+ //Line style
+ enum LineStyle {NormalStyle, DashedStyle, DottedStyle, DashdottedStyle};
- };
+ //Line weight : invisible, 0px, 1px, 2px, 5px
+ enum LineWeight {NoneWeight, ThinWeight, NormalWeight, UltraWeight, BigWeight};
+
+ //Filling color of the part : NoneFilling -> No filling (i.e. transparent)
+ enum Filling { NoneFilling, BlackFilling, WhiteFilling, GreenFilling, RedFilling, BlueFilling};
+
+ //Line color
+ enum Color {BlackColor, WhiteColor, GreenColor, RedColor, BlueColor};
- /// This enum lists the various filling colors available to draw primitives.
- Q_ENUMS(Filling)
- enum Filling {
- NoneFilling, ///< No filling (i.e. transparent)
- BlackFilling, ///< Black filling
- WhiteFilling, ///< White filling
- GreenFilling, ///< Green filling
- RedFilling, ///< Red filling
- BlueFilling ///< Green filling
- };
-
- /// This enum lists the various line colors available to draw primitives.
- Q_ENUMS(Color)
- enum Color {
- BlackColor, ///< Black line
- WhiteColor, ///< White line
- GreenColor, ///< Green line
- RedColor, ///< Red line
- BlueColor ///< Blue line
- };
-
- // constructors, destructor
+
+ // constructors, destructor
public:
- /**
- Constructor
- @param editor Element editor this primitive lives in.
- */
- CustomElementGraphicPart(QETElementEditor *editor) :
- CustomElementPart(editor),
- _linestyle(NormalStyle),
- _lineweight(NormalWeight),
- _filling(NoneFilling),
- _color(BlackColor),
- _antialiased(false)
- {
- };
-
- /// Destructor
- virtual ~CustomElementGraphicPart() {
- };
-
- // attributes
- private:
- LineStyle _linestyle;
- LineWeight _lineweight;
- Filling _filling ;
- Color _color;
- bool _antialiased;
-
- // methods
- public:
- /// PROPERTY
- Q_PROPERTY(LineStyle line_style READ lineStyle WRITE setLineStyle)
- LineStyle lineStyle() const {return _linestyle;}
- void setLineStyle(const LineStyle ls) {_linestyle = ls;}
- Q_PROPERTY(LineWeight line_weight READ lineWeight WRITE setLineWeight)
- LineWeight lineWeight() const {return _lineweight;}
- void setLineWeight(const LineWeight lw) {_lineweight = lw;}
- Q_PROPERTY(Filling filling READ filling WRITE setFilling)
- Filling filling() const {return _filling;}
- void setFilling(const Filling f) {_filling = f;}
- Q_PROPERTY(Color color READ color WRITE setColor)
- Color color() const {return _color;}
- void setColor(const Color c) {_color = c;}
- Q_PROPERTY(bool antialias READ antialiased WRITE setAntialiased)
- bool antialiased() const {return _antialiased;}
+ CustomElementGraphicPart(QETElementEditor *editor);
+ virtual ~CustomElementGraphicPart();
+
+ //Getter and setter
+ LineStyle lineStyle () const {return _linestyle;}
+ void setLineStyle (const LineStyle ls) {_linestyle = ls;}
+
+ LineWeight lineWeight () const {return _lineweight;}
+ void setLineWeight (const LineWeight lw) {_lineweight = lw;}
+
+ Filling filling () const {return _filling;}
+ void setFilling(const Filling f) {_filling = f;}
+
+ Color color () const {return _color;}
+ void setColor(const Color c) {_color = c;}
+
+ bool antialiased () const {return _antialiased;}
void setAntialiased(const bool b) {_antialiased = b;}
-
- virtual void setProperty(const char *name, const QVariant &value) {QObject::setProperty(name, value);}
- virtual QVariant property(const char *name) const {return QObject::property(name);}
-
+ //End of getter and setter
+
+
+ //Rediriged to QObject Q_PROPERTY system
+ virtual void setProperty (const char *name, const QVariant &value) {QObject::setProperty(name, value);}
+ virtual QVariant property (const char *name) const {return QObject::property(name);}
+
protected:
- void stylesToXml(QDomElement &) const;
- void stylesFromXml(const QDomElement &);
- void resetStyles();
- void applyStylesToQPainter(QPainter &) const;
+ void stylesToXml (QDomElement &) const;
+ void stylesFromXml(const QDomElement &);
+ void resetStyles ();
+ void applyStylesToQPainter(QPainter &) const;
+
+ // attributes
+ private:
+ LineStyle _linestyle;
+ LineWeight _lineweight;
+ Filling _filling ;
+ Color _color;
+ bool _antialiased;
};
+
+typedef CustomElementGraphicPart CEGP;
#endif
Modified: trunk/sources/editor/polygoneditor.cpp
===================================================================
--- trunk/sources/editor/polygoneditor.cpp 2015-01-26 22:32:55 UTC (rev 3630)
+++ trunk/sources/editor/polygoneditor.cpp 2015-01-27 10:37:03 UTC (rev 3631)
@@ -20,6 +20,7 @@
#include "elementscene.h"
#include "editorcommands.h"
#include "qetmessagebox.h"
+#include "styleeditor.h"
/**
Constructeur
Modified: trunk/sources/editor/rectangleeditor.cpp
===================================================================
--- trunk/sources/editor/rectangleeditor.cpp 2015-01-26 22:32:55 UTC (rev 3630)
+++ trunk/sources/editor/rectangleeditor.cpp 2015-01-27 10:37:03 UTC (rev 3631)
@@ -17,6 +17,7 @@
*/
#include "rectangleeditor.h"
#include "partrectangle.h"
+#include "styleeditor.h"
/**
Constructeur