[qet] [4091] Diagram text item : minor change

[ Thread Index | Date Index | More lists.tuxfamily.org/qet Archives ]


Revision: 4091
Author:   blacksun
Date:     2015-08-08 15:06:21 +0200 (Sat, 08 Aug 2015)
Log Message:
-----------
Diagram text item : minor change

Modified Paths:
--------------
    trunk/sources/qetgraphicsitem/diagramtextitem.cpp
    trunk/sources/qetgraphicsitem/diagramtextitem.h

Modified: trunk/sources/qetgraphicsitem/diagramtextitem.cpp
===================================================================
--- trunk/sources/qetgraphicsitem/diagramtextitem.cpp	2015-08-08 00:45:16 UTC (rev 4090)
+++ trunk/sources/qetgraphicsitem/diagramtextitem.cpp	2015-08-08 13:06:21 UTC (rev 4091)
@@ -22,63 +22,49 @@
 #include "diagram.h"
 
 /**
-	Constructeur
-	@param parent Le QGraphicsItem parent du champ de texte
-	@param parent_diagram Le schema auquel appartient le champ de texte
-*/
+ * @brief DiagramTextItem::DiagramTextItem
+ * @param parent : parent item
+ */
 DiagramTextItem::DiagramTextItem(QGraphicsItem *parent) :
 	QGraphicsTextItem(parent),
 	m_mouse_hover(false),
 	previous_text_(),
 	rotation_angle_(0.0),
 	m_first_move (true)
-{
-	setAcceptHoverEvents(true);
-	build();
-}
+{ build(); }
 
 /**
-	Constructeur
-	@param text Le texte affiche par le champ de texte
-	@param parent Le QGraphicsItem parent du champ de texte
-	@param parent_diagram Le schema auquel appartient le champ de texte
-*/
+ * @brief DiagramTextItem::DiagramTextItem
+ * @param text : text to display
+ * @param parent : parent item
+ */
 DiagramTextItem::DiagramTextItem(const QString &text, QGraphicsItem *parent) :
 	QGraphicsTextItem(text, parent),
 	m_mouse_hover(false),
 	previous_text_(text),
 	rotation_angle_(0.0)
-{
-	build();
-	setAcceptHoverEvents(true);
-}
+{ build(); }
 
-/// Destructeur
-DiagramTextItem::~DiagramTextItem() {
-}
-
 /**
  * @brief DiagramTextItem::build
  * Build this item with default value
  */
-void DiagramTextItem::build() {
-	//set Zvalue at 10 to be upper than the DiagramImageItem
+void DiagramTextItem::build()
+{
+		//set Zvalue at 10 to be upper than the DiagramImageItem
 	setZValue(10);
+	setAcceptHoverEvents(true);
 	setDefaultTextColor(Qt::black);
 	setFont(QETApp::diagramTextsFont());
-	setFlags(QGraphicsItem::ItemIsSelectable|QGraphicsItem::ItemIsMovable);
+	setFlags(QGraphicsItem::ItemIsSelectable|QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemSendsGeometryChanges);
 	setNoEditable(false);
 	setToolTip(tr("Maintenir ctrl pour un déplacement libre"));
-#if QT_VERSION >= 0x040600
-	setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
-#endif
-	connect(this, SIGNAL(lostFocus()), this, SLOT(setNonFocusable()));
 }
 
 /**
-	@return le Diagram auquel ce texte appartient, ou 0 si ce texte n'est
-	rattache a aucun schema
-*/
+ * @brief DiagramTextItem::diagram
+ * @return The diagram of this item or 0 if this text isn't in a diagram
+ */
 Diagram *DiagramTextItem::diagram() const {
 	return(qobject_cast<Diagram *>(scene()));
 }
@@ -277,7 +263,7 @@
 	
 	// autorise de nouveau le deplacement du texte
 	setFlag(QGraphicsItem::ItemIsMovable, true);
-	QTimer::singleShot(0, this, SIGNAL(lostFocus()));
+	setFlag(QGraphicsTextItem::ItemIsFocusable, false);
 }
 
 /**
@@ -364,35 +350,19 @@
 	setRotation(QET::correctAngle(rotation()+angle));
 }
 
-/// Rend le champ de texte non focusable
-void DiagramTextItem::setNonFocusable() {
-	setFlag(QGraphicsTextItem::ItemIsFocusable, false);
-}
-
-
 /**
- * @brief DiagramTextItem::setHtmlText
- * @param txt
- */
-void DiagramTextItem::setHtmlText(const QString &txt) {
-	setHtml( txt );
-}
-
-/**
  * @brief Edit the text with HtmlEditor
  */
-void DiagramTextItem::edit() {
-	//Open the HtmlEditor
+void DiagramTextItem::edit()
+{
 	QWidget *parent = nullptr;
 	if (scene() && scene()->views().size())
 		parent = scene()->views().first();
-	qdesigner_internal::RichTextEditorDialog *editor = new qdesigner_internal::RichTextEditorDialog(parent);
-	// connect the in/out
-	connect(editor, SIGNAL(applyEditText(const QString &)), this, SLOT(setHtmlText(const QString &)));
-	// load the Html txt
-	editor->setText( toHtml() );
-	// show
-	editor->show();
+
+	qdesigner_internal::RichTextEditorDialog editor(parent);
+	connect(&editor, &qdesigner_internal::RichTextEditorDialog::applyEditText, [this](QString text) {this->setHtml(text);});
+	editor.setText(toHtml());
+	editor.exec();
 }
 
 

Modified: trunk/sources/qetgraphicsitem/diagramtextitem.h
===================================================================
--- trunk/sources/qetgraphicsitem/diagramtextitem.h	2015-08-08 00:45:16 UTC (rev 4090)
+++ trunk/sources/qetgraphicsitem/diagramtextitem.h	2015-08-08 13:06:21 UTC (rev 4091)
@@ -29,77 +29,63 @@
 	diagram.
 	@see QGraphicsItem::GraphicsItemFlags
 */
-class DiagramTextItem : public QGraphicsTextItem {
+class DiagramTextItem : public QGraphicsTextItem
+{
 	Q_OBJECT
-	// constructors, destructor
+
 	public:
-	DiagramTextItem(QGraphicsItem * = 0);
-	DiagramTextItem(const QString &, QGraphicsItem * = 0);
-	virtual ~DiagramTextItem();
+		DiagramTextItem(QGraphicsItem * = 0);
+		DiagramTextItem(const QString &, QGraphicsItem * = 0);
 
 	private:
-	void build();
+		void build();
 	
-	// attributes
 	public:
-	enum { Type = UserType + 1004 };
-	
-	// methods
-	public:
-	/**
-		Enable the use of qgraphicsitem_cast to safely cast a QGraphicsItem into a
-		DiagramTextItem
-		@return the QGraphicsItem type
-	*/
-	virtual int type() const { return Type; }
-	Diagram *diagram() const;
-	virtual void fromXml(const QDomElement &) = 0;
-	virtual QDomElement toXml(QDomDocument &) const;
-	qreal rotationAngle() const;
-	void setRotationAngle(const qreal &);
-	void rotateBy(const qreal &);
-	void edit();
-	QPointF mapMovementToScene(const QPointF &) const;
-	QPointF mapMovementFromScene(const QPointF &) const;
-	QPointF mapMovementToParent(const QPointF &) const;
-	QPointF mapMovementFromParent(const QPointF &) const;
-	void setFontSize(int &s);
-	void setNoEditable(bool e = true) {no_editable = e;}
-	
+		enum { Type = UserType + 1004 };
+		virtual int type() const { return Type; }
+
+		Diagram *diagram() const;
+		virtual void fromXml(const QDomElement &) = 0;
+		virtual QDomElement toXml(QDomDocument &) const;
+		qreal rotationAngle() const;
+		void setRotationAngle(const qreal &);
+		void rotateBy(const qreal &);
+		void edit();
+
+		QPointF mapMovementToScene    (const QPointF &) const;
+		QPointF mapMovementFromScene  (const QPointF &) const;
+		QPointF mapMovementToParent   (const QPointF &) const;
+		QPointF mapMovementFromParent (const QPointF &) const;
+
+		void setFontSize(int &s);
+		void setNoEditable(bool e = true) {no_editable = e;}
+
 	protected:
-	virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *);
-	virtual void focusInEvent(QFocusEvent *);
-	virtual void focusOutEvent(QFocusEvent *);
+		virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *);
+		virtual void focusInEvent(QFocusEvent *);
+		virtual void focusOutEvent(QFocusEvent *);
 
-	virtual void mouseDoubleClickEvent (QGraphicsSceneMouseEvent *event);
-	virtual void mousePressEvent       (QGraphicsSceneMouseEvent *event);
-	virtual void mouseMoveEvent        (QGraphicsSceneMouseEvent *event);
-	virtual void mouseReleaseEvent     (QGraphicsSceneMouseEvent *event);
+		virtual void mouseDoubleClickEvent (QGraphicsSceneMouseEvent *event);
+		virtual void mousePressEvent       (QGraphicsSceneMouseEvent *event);
+		virtual void mouseMoveEvent        (QGraphicsSceneMouseEvent *event);
+		virtual void mouseReleaseEvent     (QGraphicsSceneMouseEvent *event);
 
-	virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *);
-	virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *);
-	virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *);
+		virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *);
+		virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *);
+		virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *);
 
-	virtual void applyRotation(const qreal &);
-	
-	bool m_mouse_hover;
+		virtual void applyRotation(const qreal &);
+
 	signals:
-	/// signal emitted when the text field loses focus
-	void lostFocus();
-	/// signal emitted after text was changed
-	void diagramTextChanged(DiagramTextItem *, const QString &, const QString &);
+			/// signal emitted after text was changed
+		void diagramTextChanged(DiagramTextItem *, const QString &, const QString &);
 	
-	public slots:
-	void setNonFocusable();
-	void setHtmlText(const QString &);
-	
 	protected:
-	/// Previous text value
-	QString previous_text_;
-	/// angle of rotation of the text field
-	qreal rotation_angle_;
-	bool no_editable;
-	bool m_first_move;
-	QPointF m_mouse_to_origin_movement;
+		bool m_mouse_hover;
+		QString previous_text_;
+		qreal rotation_angle_;
+		bool no_editable;
+		bool m_first_move;
+		QPointF m_mouse_to_origin_movement;
 };
 #endif


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