[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