diff --git a/sources/diagram.cpp b/sources/diagram.cpp index e8f299001..f8537f21b 100644 --- a/sources/diagram.cpp +++ b/sources/diagram.cpp @@ -1068,14 +1068,9 @@ void Diagram::addItem(QGraphicsItem *item) conductor->terminal1->addConductor(conductor); conductor->terminal2->addConductor(conductor); conductor->calculateTextItemPosition(); - } break; - - case IndependentTextItem::Type: - { - const IndependentTextItem *text = static_cast(item); - connect(text, &IndependentTextItem::diagramTextChanged, this, &Diagram::diagramTextChanged); } + default: {break;} } } @@ -1095,21 +1090,16 @@ void Diagram::removeItem(QGraphicsItem *item) { Element *elmt = static_cast(item); elmt->unlinkAllElements(); - } break; + } case Conductor::Type: { Conductor *conductor = static_cast(item); conductor->terminal1->removeConductor(conductor); conductor->terminal2->removeConductor(conductor); - } break; - - case IndependentTextItem::Type: - { - const IndependentTextItem *text = static_cast(item); - disconnect(text, &IndependentTextItem::diagramTextChanged, this, &Diagram::diagramTextChanged); } + default: {break;} } QGraphicsScene::removeItem(item); @@ -1119,17 +1109,6 @@ void Diagram::titleChanged(const QString &title) { emit(diagramTitleChanged(this, title)); } -/** - Gere le fait qu'un texte du schema ait ete modifie - @param text_item Texte modifie - @param old_text Ancien texte - @param new_text Nouveau texte -*/ -void Diagram::diagramTextChanged(DiagramTextItem *text_item, const QString &old_text, const QString &new_text) { - if (!text_item) return; - undoStack().push(new ChangeDiagramTextCommand(text_item, old_text, new_text)); -} - /** This slot may be used to inform the diagram object that the given title block template has changed. The diagram will thus flush its title diff --git a/sources/diagram.h b/sources/diagram.h index 854824e9f..4bb305cd0 100644 --- a/sources/diagram.h +++ b/sources/diagram.h @@ -216,7 +216,6 @@ class Diagram : public QGraphicsScene public slots: void adjustSceneRect (); void titleChanged(const QString &); - void diagramTextChanged(DiagramTextItem *, const QString &, const QString &); void titleBlockTemplateChanged(const QString &); void titleBlockTemplateRemoved(const QString &, const QString & = QString()); void setTitleBlockTemplate(const QString &); diff --git a/sources/qetgraphicsitem/conductor.cpp b/sources/qetgraphicsitem/conductor.cpp index debfa7b27..110391d71 100644 --- a/sources/qetgraphicsitem/conductor.cpp +++ b/sources/qetgraphicsitem/conductor.cpp @@ -119,7 +119,7 @@ Conductor::Conductor(Terminal *p1, Terminal* p2) : // Add the text field m_text_item = new ConductorTextItem(m_properties.text, this); - connect(m_text_item, &ConductorTextItem::diagramTextChanged, this, &Conductor::displayedTextChanged); + connect(m_text_item, &ConductorTextItem::textEdited, this, &Conductor::displayedTextChanged); //Set the default conductor properties. if (p1->diagram()) diff --git a/sources/qetgraphicsitem/diagramtextitem.cpp b/sources/qetgraphicsitem/diagramtextitem.cpp index 0ca5175ec..b08b93998 100644 --- a/sources/qetgraphicsitem/diagramtextitem.cpp +++ b/sources/qetgraphicsitem/diagramtextitem.cpp @@ -1,5 +1,5 @@ /* - Copyright 2006-2013 QElectroTech Team + Copyright 2006-2019 QElectroTech Team This file is part of QElectroTech. QElectroTech is free software: you can redistribute it and/or modify @@ -210,6 +210,22 @@ QRectF DiagramTextItem::frameRect() const return QRectF(pos, size); } +void DiagramTextItem::setHtml(const QString &text) +{ + QGraphicsTextItem::setHtml(text); + m_is_html = true; +} + +void DiagramTextItem::setPlainText(const QString &text) +{ + QGraphicsTextItem::setPlainText(text); + m_is_html = false; +} + +bool DiagramTextItem::isHtml() const { + return m_is_html; +} + /** * @brief DiagramTextItem::paint * Draw this text field. This method draw the text by calling QGraphicsTextItem::paint. @@ -267,8 +283,6 @@ void DiagramTextItem::focusOutEvent(QFocusEvent *event) { QGraphicsTextItem::focusOutEvent(event); - if (toHtml() != m_previous_html_text) - emit(diagramTextChanged(this, m_previous_html_text, toHtml())); if(toPlainText() != m_previous_text) emit textEdited(m_previous_text, toPlainText()); @@ -303,13 +317,14 @@ void DiagramTextItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) { * @brief DiagramTextItem::mousePressEvent * @param event */ -void DiagramTextItem::mousePressEvent (QGraphicsSceneMouseEvent *event) { - m_first_move = true; - if (event -> modifiers() & Qt::ControlModifier) { - setSelected(!isSelected()); +void DiagramTextItem::mousePressEvent (QGraphicsSceneMouseEvent *event) +{ + if (event->button() == Qt::LeftButton) + { + m_first_move = true; + //Save the pos of item at the beggining of the movement + m_mouse_to_origin_movement = pos() - event->scenePos(); } - //Save the pos of item at the beggining of the movement - m_mouse_to_origin_movement = pos() - event->scenePos(); QGraphicsTextItem::mousePressEvent(event); } @@ -348,13 +363,25 @@ void DiagramTextItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { * @brief DiagramTextItem::mouseReleaseEvent * @param event */ -void DiagramTextItem::mouseReleaseEvent (QGraphicsSceneMouseEvent *event) { - //Signal to diagram movement is finish - if (diagram()) +void DiagramTextItem::mouseReleaseEvent (QGraphicsSceneMouseEvent *event) +{ + //Signal to diagram movement is finish + if (diagram() && (event->button() == Qt::LeftButton)) + { diagram()->elementsMover().endMovement(); - - if (!(event -> modifiers() & Qt::ControlModifier)) + event->accept(); + if (event->buttonDownScenePos(Qt::LeftButton) != event->scenePos()) { + return; + } + } + if (event->modifiers() & Qt::ControlModifier && (event->button() == Qt::LeftButton)) + { + setSelected(!isSelected()); + event->accept(); + } + else { QGraphicsTextItem::mouseReleaseEvent(event); + } } /** @@ -459,7 +486,6 @@ void DiagramTextItem::hoverEnterEvent(QGraphicsSceneHoverEvent *e) { */ void DiagramTextItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *e) { Q_UNUSED(e); - //qDebug() << "Leave mouse over"; m_mouse_hover = false; update(); } diff --git a/sources/qetgraphicsitem/diagramtextitem.h b/sources/qetgraphicsitem/diagramtextitem.h index b88c16d08..681a5a018 100644 --- a/sources/qetgraphicsitem/diagramtextitem.h +++ b/sources/qetgraphicsitem/diagramtextitem.h @@ -36,12 +36,13 @@ class DiagramTextItem : public QGraphicsTextItem Q_PROPERTY(int fontSize READ fontSize WRITE setFontSize NOTIFY fontSizeChanged) Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment NOTIFY alignmentChanged) + Q_PROPERTY(QString plainText READ toPlainText WRITE setPlainText) + signals: void fontSizeChanged(int size); void colorChanged(QColor color); void alignmentChanged(Qt::Alignment alignment); - void diagramTextChanged(DiagramTextItem *, const QString &, const QString &); void textEdited(const QString &old_str, const QString &new_str); public: @@ -78,6 +79,10 @@ class DiagramTextItem : public QGraphicsTextItem bool m_block_alignment = false; QRectF frameRect() const; + + void setHtml(const QString &text); + void setPlainText(const QString &text); + bool isHtml() const; protected: void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) override; @@ -101,7 +106,8 @@ class DiagramTextItem : public QGraphicsTextItem protected: bool m_mouse_hover = false, m_first_move = true, - m_no_editable; + m_no_editable, + m_is_html = false; QString m_previous_html_text, m_previous_text; diff --git a/sources/qetgraphicsitem/independenttextitem.cpp b/sources/qetgraphicsitem/independenttextitem.cpp index 95982e25d..d258d463e 100644 --- a/sources/qetgraphicsitem/independenttextitem.cpp +++ b/sources/qetgraphicsitem/independenttextitem.cpp @@ -17,6 +17,8 @@ */ #include "independenttextitem.h" #include "qet.h" +#include "diagram.h" +#include "diagramcommands.h" #include /** @@ -56,13 +58,21 @@ void IndependentTextItem::fromXml(const QDomElement &e) { @param document Le document XML a utiliser @return L'element XML representant ce champ de texte */ -QDomElement IndependentTextItem::toXml(QDomDocument &document) const { +QDomElement IndependentTextItem::toXml(QDomDocument &document) const +{ QDomElement result = document.createElement("input"); result.setAttribute("x", QString("%1").arg(pos().x())); result.setAttribute("y", QString("%1").arg(pos().y())); result.setAttribute("text", toHtml()); - if (rotation()) { - result.setAttribute("rotation", QString::number(QET::correctAngle(rotation()))); - } + result.setAttribute("rotation", QString::number(QET::correctAngle(rotation()))); + return(result); } + +void IndependentTextItem::focusOutEvent(QFocusEvent *event) +{ + DiagramTextItem::focusOutEvent(event); + if (diagram() && (m_previous_html_text != this->toHtml())) { + diagram()->undoStack().push(new ChangeDiagramTextCommand(this, m_previous_html_text, this->toHtml())); + } +} diff --git a/sources/qetgraphicsitem/independenttextitem.h b/sources/qetgraphicsitem/independenttextitem.h index a2aa5ff7f..b7fc79747 100644 --- a/sources/qetgraphicsitem/independenttextitem.h +++ b/sources/qetgraphicsitem/independenttextitem.h @@ -24,30 +24,26 @@ This class represents an independent text field on a particular diagram. It may be moved, edited, and rotated. */ -class IndependentTextItem : public DiagramTextItem { +class IndependentTextItem : public DiagramTextItem +{ Q_OBJECT - // constructors, destructor + + // constructors, destructor public: - IndependentTextItem(); - IndependentTextItem(const QString &); - ~IndependentTextItem() override; + IndependentTextItem(); + IndependentTextItem(const QString &); + ~IndependentTextItem() override; - // attributes + // attributes public: - enum { Type = UserType + 1005 }; - - // methods - public: - /** - Enable the use of qgraphicsitem_cast to safely cast a QGraphicsItem into an - IndependentTextItem. - @return le type de QGraphicsItem - */ - int type() const override { return Type; } - void fromXml(const QDomElement &) override; - QDomElement toXml(QDomDocument &) const override; - - private: - QPointF mouse_to_origin_movement_; + enum { Type = UserType + 1005 }; + int type() const override { return Type; } + + void fromXml(const QDomElement &) override; + QDomElement toXml(QDomDocument &) const override; + + protected: + void focusOutEvent(QFocusEvent *event) override; + }; #endif diff --git a/sources/ui/diagrampropertieseditordockwidget.cpp b/sources/ui/diagrampropertieseditordockwidget.cpp index 63f6e1b01..6d8691410 100644 --- a/sources/ui/diagrampropertieseditordockwidget.cpp +++ b/sources/ui/diagrampropertieseditordockwidget.cpp @@ -1,5 +1,5 @@ /* - Copyright 2006-2019 The QElectroTech Team + Copyright 2006-2017 The QElectroTech Team This file is part of QElectroTech. QElectroTech is free software: you can redistribute it and/or modify @@ -25,6 +25,8 @@ #include "shapegraphicsitempropertieswidget.h" #include "dynamicelementtextitem.h" #include "elementtextitemgroup.h" +#include "independenttextitem.h" +#include "inditextpropertieswidget.h" /** * @brief DiagramPropertiesEditorDockWidget::DiagramPropertiesEditorDockWidget @@ -91,7 +93,7 @@ void DiagramPropertiesEditorDockWidget::selectionChanged() switch (type_) { - case Element::Type: + case Element::Type: //1000 { //We already edit an element, just update the editor with a new element if (m_edited_qgi_type == type_) @@ -105,14 +107,27 @@ void DiagramPropertiesEditorDockWidget::selectionChanged() addEditor(new ElementPropertiesWidget(static_cast(item), this)); break; } - case DiagramImageItem::Type: + case IndependentTextItem::Type: //1005 + { + if (m_edited_qgi_type == type_) + { + static_cast(editors().first())->setText(static_cast(item)); + return; + } + + clear(); + m_edited_qgi_type = type_; + addEditor(new IndiTextPropertiesWidget(static_cast(item), this)); + break; + } + case DiagramImageItem::Type: //1007 { clear(); m_edited_qgi_type = type_; addEditor(new ImagePropertiesWidget(static_cast(item), this)); break; } - case QetShapeItem::Type: + case QetShapeItem::Type: //1008 { if (m_edited_qgi_type == type_) { @@ -125,7 +140,7 @@ void DiagramPropertiesEditorDockWidget::selectionChanged() addEditor(new ShapeGraphicsItemPropertiesWidget(static_cast(item), this)); break; } - case DynamicElementTextItem::Type: + case DynamicElementTextItem::Type: //1010 { DynamicElementTextItem *deti = static_cast(item); diff --git a/sources/ui/diagrampropertieseditordockwidget.h b/sources/ui/diagrampropertieseditordockwidget.h index 401fe616b..ee1077c4e 100644 --- a/sources/ui/diagrampropertieseditordockwidget.h +++ b/sources/ui/diagrampropertieseditordockwidget.h @@ -1,5 +1,5 @@ /* - Copyright 2006-2019 The QElectroTech Team + Copyright 2006-2017 The QElectroTech Team This file is part of QElectroTech. QElectroTech is free software: you can redistribute it and/or modify diff --git a/sources/ui/inditextpropertieswidget.cpp b/sources/ui/inditextpropertieswidget.cpp new file mode 100644 index 000000000..c0c81ace8 --- /dev/null +++ b/sources/ui/inditextpropertieswidget.cpp @@ -0,0 +1,228 @@ +/* + Copyright 2006-2019 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "inditextpropertieswidget.h" +#include "ui_inditextpropertieswidget.h" +#include "independenttextitem.h" +#include "QPropertyUndoCommand/qpropertyundocommand.h" +#include "diagram.h" +#include "diagramcommands.h" +#include +#include + +/** + * @brief IndiTextPropertiesWidget::IndiTextPropertiesWidget + * @param text : the text to edit + * @param parent : the parent widget of this widget + */ +IndiTextPropertiesWidget::IndiTextPropertiesWidget(IndependentTextItem *text, QWidget *parent) : + PropertiesEditorWidget(parent), + ui(new Ui::IndiTextPropertiesWidget) +{ + ui->setupUi(this); + if (text) { + setText(text); + } +} + +/** + * @brief IndiTextPropertiesWidget::~IndiTextPropertiesWidget + */ +IndiTextPropertiesWidget::~IndiTextPropertiesWidget() { + delete ui; +} + +/** + * @brief IndiTextPropertiesWidget::setText + * @param text : set @text as edited text + */ +void IndiTextPropertiesWidget::setText(IndependentTextItem *text) +{ + if (m_text) { + for (QMetaObject::Connection c : m_connect_list) { + disconnect(c); + } + } + + m_text = text; + m_connect_list.clear(); + m_connect_list << connect(m_text.data(), &IndependentTextItem::xChanged, this, &IndiTextPropertiesWidget::updateUi); + m_connect_list << connect(m_text.data(), &IndependentTextItem::yChanged, this, &IndiTextPropertiesWidget::updateUi); + m_connect_list << connect(m_text.data(), &IndependentTextItem::rotationChanged, this, &IndiTextPropertiesWidget::updateUi); + m_connect_list << connect(m_text.data(), &IndependentTextItem::fontSizeChanged, this, &IndiTextPropertiesWidget::updateUi); + m_connect_list << connect(m_text.data(), &IndependentTextItem::textEdited, this, &IndiTextPropertiesWidget::updateUi); + + updateUi(); +} + +/** + * @brief IndiTextPropertiesWidget::apply + * Apply the current edition through a QUndoCommand pushed + * to the undo stack of text's diagram. + */ +void IndiTextPropertiesWidget::apply() +{ + if (m_text && m_text->diagram()) + { + QUndoCommand *undo = associatedUndo(); + if (undo) { + m_text->diagram()->undoStack().push(undo); + } + } +} + +/** + * @brief IndiTextPropertiesWidget::setLiveEdit + * @param live_edit + * @return + */ +bool IndiTextPropertiesWidget::setLiveEdit(bool live_edit) +{ + if (m_live_edit == live_edit) { + return true; + } + m_live_edit = live_edit; + + if (m_live_edit) { + setUpEditConnection(); + } + else { + for (QMetaObject::Connection c : m_edit_connection) { + disconnect(c); + } + m_edit_connection.clear(); + } + return true; +} + +/** + * @brief IndiTextPropertiesWidget::associatedUndo + * @return + */ +QUndoCommand *IndiTextPropertiesWidget::associatedUndo() const +{ + if (m_live_edit) + { + QPropertyUndoCommand *undo = nullptr; + if(ui->m_x_sb->value() != m_text->pos().x()) { + undo = new QPropertyUndoCommand(m_text.data(), "x", QVariant(m_text->pos().x()), QVariant(ui->m_x_sb->value())); + undo->setAnimated(true, false); + undo->setText(tr("Déplacer un champ texte")); + } + if(ui->m_y_sb->value() != m_text->pos().y()) { + undo = new QPropertyUndoCommand(m_text.data(), "y", QVariant(m_text->pos().y()), QVariant(ui->m_y_sb->value())); + undo->setAnimated(true, false); + undo->setText(tr("Déplacer un champ texte")); + } + if(ui->m_angle_sb->value() != m_text->rotation()) { + undo = new QPropertyUndoCommand(m_text.data(), "rotation", QVariant(m_text->rotation()), QVariant(ui->m_angle_sb->value())); + undo->setAnimated(true, false); + undo->setText(tr("Pivoter un champ texte")); + } + if (ui->m_line_edit->text() != m_text->toPlainText()) { + undo = new QPropertyUndoCommand(m_text.data(), "plainText", m_text->toPlainText(), ui->m_line_edit->text()); + undo->setText(tr("Modifier un champ texte")); + } + if (ui->m_size_sb->value() != m_text->fontSize()) { + undo = new QPropertyUndoCommand(m_text.data(), "fontSize", m_text->fontSize(), ui->m_size_sb->value()); + undo->setAnimated(true, false); + undo->setText(tr("Modifier la taille d'un champ texte")); + } + + return undo; + } + else + { + QUndoCommand *undo = new QUndoCommand(tr("Modifier les propriétées d'un texte")); + if(ui->m_x_sb->value() != m_text->pos().x()) { + new QPropertyUndoCommand(m_text.data(), "x", QVariant(m_text->pos().x()), QVariant(ui->m_x_sb->value()), undo); + } + if(ui->m_y_sb->value() != m_text->pos().y()) { + new QPropertyUndoCommand(m_text.data(), "y", QVariant(m_text->pos().y()), QVariant(ui->m_y_sb->value()), undo); + } + if(ui->m_angle_sb->value() != m_text->rotation()) { + new QPropertyUndoCommand(m_text.data(), "rotation", QVariant(m_text->rotation()), QVariant(ui->m_angle_sb->value()), undo); + } + if (ui->m_line_edit->text() != m_text->toPlainText()) { + new ChangeDiagramTextCommand(m_text.data(), m_text->toHtml(), ui->m_line_edit->text(), undo); + } + if (ui->m_size_sb->value() != m_text->fontSize()) { + new QPropertyUndoCommand(m_text.data(), "fontSize", m_text->fontSize(), ui->m_size_sb->value(), undo); + } + + if (undo->childCount()) { + return undo; + } else { + return nullptr; + } + } +} + +/** + * @brief IndiTextPropertiesWidget::setUpEditConnection + * Disconnect the previous connection, and reconnect the connection between the editors widgets and apply function + */ +void IndiTextPropertiesWidget::setUpEditConnection() +{ + for (QMetaObject::Connection c : m_edit_connection) { + disconnect(c); + } + m_edit_connection.clear(); + m_edit_connection << connect(ui->m_x_sb, QOverload::of(&QDoubleSpinBox::valueChanged), this, &IndiTextPropertiesWidget::apply); + m_edit_connection << connect(ui->m_y_sb, QOverload::of(&QDoubleSpinBox::valueChanged), this, &IndiTextPropertiesWidget::apply); + m_edit_connection << connect(ui->m_angle_sb, QOverload::of(&QDoubleSpinBox::valueChanged), this, &IndiTextPropertiesWidget::apply); + m_edit_connection << connect(ui->m_line_edit, &QLineEdit::textEdited, this, &IndiTextPropertiesWidget::apply); + m_edit_connection << connect(ui->m_size_sb, QOverload::of(&QSpinBox::valueChanged), this, &IndiTextPropertiesWidget::apply); +} + +/** + * @brief IndiTextPropertiesWidget::updateUi + */ +void IndiTextPropertiesWidget::updateUi() +{ + if (!m_text) { + return; + } + + //Disconnect every connections of editor widgets + //to avoid an unwanted edition (QSpinBox emit valueChanged no matter if changer by user or by program) + for (QMetaObject::Connection c : m_edit_connection) { + disconnect(c); + } + m_edit_connection.clear(); + + ui->m_x_sb->setValue(m_text->pos().x()); + ui->m_y_sb->setValue(m_text->pos().y()); + ui->m_angle_sb->setValue(m_text->rotation()); + ui->m_line_edit->setText(m_text->toPlainText()); + ui->m_size_sb->setValue(m_text->fontSize()); + + ui->m_line_edit->setDisabled(m_text->isHtml() ? true : false); + ui->m_size_sb->setDisabled(m_text->isHtml() ? true : false); + + //Set the connection now + setUpEditConnection(); +} + +/** + * @brief IndiTextPropertiesWidget::on_m_advanced_editor_pb_clicked + */ +void IndiTextPropertiesWidget::on_m_advanced_editor_pb_clicked() { + if (m_text) { + m_text->edit(); + } +} diff --git a/sources/ui/inditextpropertieswidget.h b/sources/ui/inditextpropertieswidget.h new file mode 100644 index 000000000..cfd21a01b --- /dev/null +++ b/sources/ui/inditextpropertieswidget.h @@ -0,0 +1,60 @@ +/* + Copyright 2006-2019 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef INDITEXTPROPERTIESWIDGET_H +#define INDITEXTPROPERTIESWIDGET_H + +#include "PropertiesEditor/propertieseditorwidget.h" +#include +class IndependentTextItem; + +namespace Ui { + class IndiTextPropertiesWidget; +} + +/** + * @brief The IndiTextPropertiesWidget class + * This widget is used to edit the properties of an independent text item + */ +class IndiTextPropertiesWidget : public PropertiesEditorWidget +{ + Q_OBJECT + + public: + IndiTextPropertiesWidget(IndependentTextItem *text = nullptr, QWidget *parent = nullptr); + ~IndiTextPropertiesWidget() override; + void setText (IndependentTextItem *text); + + void apply() override; + bool setLiveEdit(bool live_edit) override; + QUndoCommand* associatedUndo() const override; + + private slots: + void on_m_advanced_editor_pb_clicked(); + + private: + void setUpEditConnection(); + void updateUi() override; + + private: + Ui::IndiTextPropertiesWidget *ui; + QPointer m_text; + QList m_connect_list, + m_edit_connection; +}; + +#endif // INDITEXTPROPERTIESWIDGET_H diff --git a/sources/ui/inditextpropertieswidget.ui b/sources/ui/inditextpropertieswidget.ui new file mode 100644 index 000000000..1df9d84e2 --- /dev/null +++ b/sources/ui/inditextpropertieswidget.ui @@ -0,0 +1,140 @@ + + + IndiTextPropertiesWidget + + + + 0 + 0 + 299 + 237 + + + + Form + + + + + + px + + + 0 + + + 10000.000000000000000 + + + + + + + Éditeur avancé + + + + + + + Angle : + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + true + + + ° + + + 0 + + + 359.000000000000000 + + + + + + + Texte + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + px + + + 0 + + + 10000.000000000000000 + + + + + + + X : + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Y : + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + 4 + + + 50 + + + + + + + Taille : + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + +