[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


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/