[qet] qet/qet: [5260] Element editor : dynamic text field can be set with element info as source of text. |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/qet Archives
]
Revision: 5260
Author: blacksun
Date: 2018-03-11 13:59:53 +0100 (Sun, 11 Mar 2018)
Log Message:
-----------
Element editor : dynamic text field can be set with element info as source of text.
Modified Paths:
--------------
trunk/sources/editor/editorcommands.cpp
trunk/sources/editor/elementscene.cpp
trunk/sources/editor/elementscene.h
trunk/sources/editor/graphicspart/partdynamictextfield.cpp
trunk/sources/editor/graphicspart/partdynamictextfield.h
trunk/sources/editor/ui/dynamictextfieldeditor.cpp
trunk/sources/editor/ui/dynamictextfieldeditor.h
trunk/sources/editor/ui/dynamictextfieldeditor.ui
trunk/sources/qetgraphicsitem/customelement.cpp
Modified: trunk/sources/editor/editorcommands.cpp
===================================================================
--- trunk/sources/editor/editorcommands.cpp 2018-03-10 14:27:30 UTC (rev 5259)
+++ trunk/sources/editor/editorcommands.cpp 2018-03-11 12:59:53 UTC (rev 5260)
@@ -604,16 +604,18 @@
ChangePropertiesCommand::~ChangePropertiesCommand() {}
-void ChangePropertiesCommand::undo() {
+void ChangePropertiesCommand::undo()
+{
m_scene->m_elmt_type = m_type.first();
m_scene->m_elmt_kindInfo = m_kind_info.first();
- m_scene->m_elmt_information = m_elmt_info.first();
+ m_scene->setElementInfo(m_elmt_info.first());
}
-void ChangePropertiesCommand::redo() {
+void ChangePropertiesCommand::redo()
+{
m_scene->m_elmt_type = m_type.last();
m_scene->m_elmt_kindInfo = m_kind_info.last();
- m_scene->m_elmt_information = m_elmt_info.last();
+ m_scene->setElementInfo(m_elmt_info.last());
}
Modified: trunk/sources/editor/elementscene.cpp
===================================================================
--- trunk/sources/editor/elementscene.cpp 2018-03-10 14:27:30 UTC (rev 5259)
+++ trunk/sources/editor/elementscene.cpp 2018-03-11 12:59:53 UTC (rev 5260)
@@ -532,6 +532,15 @@
return m_element_editor;
}
+void ElementScene::setElementInfo(DiagramContext dc)
+{
+ if(m_elmt_information != dc)
+ {
+ m_elmt_information = dc;
+ emit elementInfoChanged();
+ }
+}
+
/**
* @brief ElementScene::slot_select
* Select the item in content, every others items in the scene are deselected
Modified: trunk/sources/editor/elementscene.h
===================================================================
--- trunk/sources/editor/elementscene.h 2018-03-10 14:27:30 UTC (rev 5259)
+++ trunk/sources/editor/elementscene.h 2018-03-11 12:59:53 UTC (rev 5260)
@@ -63,41 +63,30 @@
// attributes
private:
- /// List of localized names
- NamesList m_names_list;
- /// Extra informations
- QString m_informations;
- /// element type
- QString m_elmt_type;
- /// element kind info
+ NamesList m_names_list; /// List of localized names
+ QString m_informations; /// Extra informations
+ QString m_elmt_type; /// element type
DiagramContext m_elmt_kindInfo,
- m_elmt_information;
- /// QGraphicsItem manager
+ m_elmt_information; /// element kind info
QGIManager m_qgi_manager;
- /// Undo stack
QUndoStack m_undo_stack;
-
- /// Variables related to drawing
+
ESEventInterface *m_event_interface = nullptr;
Behavior m_behavior;
QETElementEditor *m_element_editor = nullptr;
- /// Variables to manage the paste area on the scene
QGraphicsRectItem *m_paste_area;
QRectF m_defined_paste_area;
-
- /// Variables to handle copy/paste with offset
+
QString m_last_copied;
/// Decorator item displayed when at least one item is selected
ElementPrimitiveDecorator *m_decorator = nullptr;
+
+ int m_x_grid,
+ m_y_grid;
- ///< Size of the horizontal grid step
- int m_x_grid;
- ///< Size of the vertical grid step
- int m_y_grid;
-
- // methods
+ // methods
public:
void setEventInterface (ESEventInterface *event_interface);
void clearEventInterface();
@@ -109,6 +98,7 @@
void setInformations(const QString &);
QString elementType () const {return m_elmt_type;}
DiagramContext elementKindInfo () const {return m_elmt_kindInfo;}
+ DiagramContext elementInformation() const {return m_elmt_information;}
virtual int xGrid() const;
virtual int yGrid() const;
virtual void setGrid(int, int);
@@ -129,6 +119,7 @@
void cut();
void copy();
QETElementEditor* editor() const;
+ void setElementInfo(DiagramContext dc);
protected:
void mouseMoveEvent (QGraphicsSceneMouseEvent *) override;
@@ -169,16 +160,17 @@
void stackAction(ElementEditionCommand *);
signals:
- /// Signal emitted after one or several parts were added
+ /// Signal emitted after one or several parts were added
void partsAdded();
- /// Signal emitted after one or several parts were removed
+ /// Signal emitted after one or several parts were removed
void partsRemoved();
- /// Signal emitted when the zValue of one or several parts change
+ /// Signal emitted when the zValue of one or several parts change
void partsZValueChanged();
- /// Signal emitted when users have defined the copy/paste area
+ /// Signal emitted when users have defined the copy/paste area
void pasteAreaDefined(const QRectF &);
- /// Signal emitted when need zoomFit
+ /// Signal emitted when need zoomFit
void needZoomFit();
+ void elementInfoChanged();
};
Q_DECLARE_OPERATORS_FOR_FLAGS(ElementScene::ItemOptions)
Modified: trunk/sources/editor/graphicspart/partdynamictextfield.cpp
===================================================================
--- trunk/sources/editor/graphicspart/partdynamictextfield.cpp 2018-03-10 14:27:30 UTC (rev 5259)
+++ trunk/sources/editor/graphicspart/partdynamictextfield.cpp 2018-03-11 12:59:53 UTC (rev 5260)
@@ -54,6 +54,11 @@
setTextFrom(DynamicElementTextItem::UserText);
setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemSendsGeometryChanges | QGraphicsItem::ItemIsMovable);
+ //Option when text is displayed in multiple line
+ QTextOption option = document()->defaultTextOption();
+ option.setAlignment(Qt::AlignHCenter);
+ option.setWrapMode(QTextOption::WordWrap);
+ document()->setDefaultTextOption(option);
}
QString PartDynamicTextField::name() const
@@ -106,6 +111,7 @@
root_element.setAttribute("font_size", font().pointSize());
root_element.setAttribute("uuid", m_uuid.toString());
root_element.setAttribute("frame", m_frame? "true" : "false");
+ root_element.setAttribute("text_width", QString::number(m_text_width));
QMetaEnum me = DynamicElementTextItem::textFromMetaEnum();
@@ -130,14 +136,6 @@
dom_comp_text.appendChild(dom_doc.createTextNode(m_composite_text));
root_element.appendChild(dom_comp_text);
}
-
- //tagg
- if (!m_tagg.isEmpty())
- {
- QDomElement dom_tagg = dom_doc.createElement("tagg");
- dom_tagg.appendChild(dom_doc.createTextNode(m_tagg));
- root_element.appendChild(dom_tagg);
- }
//Color
if(color() != QColor(Qt::black))
@@ -167,7 +165,8 @@
QGraphicsTextItem::setRotation(dom_elmt.attribute("rotation", QString::number(0)).toDouble());
setFont(QETApp::diagramTextsFont(dom_elmt.attribute("font_size", QString::number(9)).toInt()));
m_uuid = QUuid(dom_elmt.attribute("uuid", QUuid::createUuid().toString()));
- m_frame = dom_elmt.attribute("frame", "false") == "true"? true : false;
+ setFrame(dom_elmt.attribute("frame", "false") == "true"? true : false);
+ setTextWidth(dom_elmt.attribute("text_width", QString::number(-1)).toDouble());
QMetaEnum me = DynamicElementTextItem::textFromMetaEnum();
m_text_from = DynamicElementTextItem::TextFrom(me.keyToValue(dom_elmt.attribute("text_from").toStdString().data()));
@@ -189,11 +188,6 @@
QDomElement dom_comp_text = dom_elmt.firstChildElement("composite_text");
if(!dom_comp_text.isNull())
m_composite_text = dom_comp_text.text();
-
- //tagg
- QDomElement dom_tagg = dom_elmt.firstChildElement("tagg");
- if (!dom_tagg.isNull())
- m_tagg = dom_tagg.text();
//Color
QDomElement dom_color = dom_elmt.firstChildElement("color");
@@ -250,25 +244,6 @@
}
/**
- * @brief PartDynamicTextField::tagg
- * @return the tagg of this text
- */
-QString PartDynamicTextField::tagg() const {
- return m_tagg;
-}
-
-/**
- * @brief PartDynamicTextField::setTagg
- * set the taggof this text
- * @param tagg
- */
-void PartDynamicTextField::setTagg(const QString &tagg)
-{
- m_tagg = tagg;
- emit taggChanged(m_tagg);
-}
-
-/**
* @brief PartDynamicTextField::text
* @return the text of this text
*/
@@ -364,6 +339,36 @@
return m_frame;
}
+void PartDynamicTextField::setTextWidth(qreal width)
+{
+ this->document()->setTextWidth(width);
+
+ //Adjust the width, to ideal width if needed
+ if(width > 0 && document()->size().width() > width)
+ document()->setTextWidth(document()->idealWidth());
+
+ m_text_width = document()->textWidth();
+ emit textWidthChanged(m_text_width);
+}
+
+void PartDynamicTextField::setPlainText(const QString &text)
+{
+ QGraphicsTextItem::setPlainText(text);
+
+ //User define a text width
+ if(m_text_width > 0)
+ {
+ if(document()->size().width() > m_text_width)
+ {
+ document()->setTextWidth(m_text_width);
+ if(document()->size().width() > m_text_width)
+ {
+ document()->setTextWidth(document()->idealWidth());
+ }
+ }
+ }
+}
+
/**
* @brief PartDynamicTextField::mouseMoveEvent
* @param event
@@ -417,7 +422,16 @@
QVariant PartDynamicTextField::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
{
if (change == QGraphicsItem::ItemPositionHasChanged || change == QGraphicsItem::ItemSceneHasChanged)
+ {
updateCurrentPartEditor();
+ if(change == QGraphicsItem::ItemSceneHasChanged &&
+ m_first_add &&
+ elementScene() != nullptr)
+ {
+ connect(elementScene(), &ElementScene::elementInfoChanged, this, &PartDynamicTextField::elementInfoChanged);
+ m_first_add = false;
+ }
+ }
else if ((change == QGraphicsItem::ItemSelectedHasChanged) && (value.toBool() == true))
updateCurrentPartEditor();
@@ -441,7 +455,7 @@
if(w > 2.5)
w = 2.5;
}
-
+
QPen pen;
pen.setColor(color());
pen.setWidthF(w);
@@ -448,18 +462,38 @@
painter->setPen(pen);
painter->setRenderHint(QPainter::Antialiasing);
- //Get the bounding rectangle of the text
- QRectF text_bounding = painter->boundingRect(boundingRect(), toPlainText());
- //Center text_bounding in the bounding rect of this
- text_bounding.moveTop((boundingRect().height()-text_bounding.height())/2);
- text_bounding.moveLeft((boundingRect().width() - text_bounding.width())/2);
- //adjust only for better visual
- text_bounding.adjust(-2,0,2,0);
+ //Get the bounding rectangle of the text
+ QSizeF size = document()->size();
+ size.setWidth(document()->idealWidth());
+ //Remove the margin. Size is exactly the bounding rect of the text
+ size.rheight() -= document()->documentMargin()*2;
+ size.rwidth() -= document()->documentMargin()*2;
+ //Add a little margin only for a better visual;
+ size.rheight() += 2;
+ size.rwidth() += 2;
+ //The pos of the rect
+ QPointF pos = boundingRect().center();
+ pos.rx() -= size.width()/2;
+ pos.ry() -= size.height()/2;
+
//Adjust the rounding of the rectangle according to the size of the font
qreal ro = (qreal)fontSize()/3;
- painter->drawRoundedRect(text_bounding, ro, ro);
+ painter->drawRoundedRect(QRectF(pos, size), ro, ro);
painter->restore();
}
}
+
+/**
+ * @brief PartDynamicTextField::elementInfoChanged
+ * Used to up to date this text field, when the element information (see elementScene) changed
+ */
+void PartDynamicTextField::elementInfoChanged()
+{
+ if(m_text_from == DynamicElementTextItem::ElementInfo)
+ {
+ DiagramContext dc = elementScene()->elementInformation();
+ setPlainText(dc.value(m_info_name).toString());
+ }
+}
Modified: trunk/sources/editor/graphicspart/partdynamictextfield.h
===================================================================
--- trunk/sources/editor/graphicspart/partdynamictextfield.h 2018-03-10 14:27:30 UTC (rev 5259)
+++ trunk/sources/editor/graphicspart/partdynamictextfield.h 2018-03-11 12:59:53 UTC (rev 5260)
@@ -33,7 +33,6 @@
{
Q_OBJECT
- Q_PROPERTY(QString tagg READ tagg WRITE setTagg NOTIFY taggChanged)
Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged)
Q_PROPERTY(DynamicElementTextItem::TextFrom textFrom READ textFrom WRITE setTextFrom NOTIFY textFromChanged)
Q_PROPERTY(QString infoName READ infoName WRITE setInfoName NOTIFY infoNameChanged)
@@ -41,6 +40,7 @@
Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged)
Q_PROPERTY(int fontSize READ fontSize WRITE setFontSize NOTIFY fontSizeChanged)
Q_PROPERTY(bool frame READ frame WRITE setFrame NOTIFY frameChanged)
+ Q_PROPERTY(qreal textWidth READ textWidth WRITE setTextWidth NOTIFY textWidthChanged)
public:
static bool canImportFromTextField(const QDomElement &dom_element);
@@ -59,6 +59,7 @@
void colorChanged(QColor color);
void fontSizeChanged(int size);
void frameChanged(bool frame);
+ void textWidthChanged(qreal width);
public:
PartDynamicTextField(QETElementEditor *editor, QGraphicsItem *parent = nullptr);
@@ -68,6 +69,7 @@
QString name() const override;
QString xmlName() const override;
+ static QString xmlTaggName() {return QString("dynamic_text");}
bool isUseless() const override {return false;}
QRectF sceneGeometricRect() const override {return sceneBoundingRect();}
void startUserTransformation(const QRectF &initial_selection_rect) override;
@@ -79,8 +81,6 @@
DynamicElementTextItem::TextFrom textFrom() const;
void setTextFrom (DynamicElementTextItem::TextFrom text_from);
- QString tagg() const;
- void setTagg(const QString &tagg);
QString text() const;
void setText(const QString &text);
void setInfoName(const QString &info_name);
@@ -93,6 +93,8 @@
int fontSize()const;
void setFrame(bool frame);
bool frame() const;
+ void setTextWidth(qreal width);
+ void setPlainText(const QString &text);
protected:
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
@@ -102,17 +104,19 @@
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
private:
+ void elementInfoChanged();
+
+ private:
QPointF m_origine_pos,
m_saved_point;
- QString m_tagg,
- m_text,
+ QString m_text,
m_info_name,
m_composite_text;
-
DynamicElementTextItem::TextFrom m_text_from = DynamicElementTextItem::UserText;
QUuid m_uuid;
-
- bool m_frame = false;
+ bool m_frame = false,
+ m_first_add = true;
+ qreal m_text_width = -1;
};
#endif // PARTDYNAMICTEXTFIELD_H
Modified: trunk/sources/editor/ui/dynamictextfieldeditor.cpp
===================================================================
--- trunk/sources/editor/ui/dynamictextfieldeditor.cpp 2018-03-10 14:27:30 UTC (rev 5259)
+++ trunk/sources/editor/ui/dynamictextfieldeditor.cpp 2018-03-11 12:59:53 UTC (rev 5260)
@@ -20,6 +20,8 @@
#include "customelementpart.h"
#include "partdynamictextfield.h"
#include "QPropertyUndoCommand/qpropertyundocommand.h"
+#include "qetelementeditor.h"
+#include "qetapp.h"
#include <QPointer>
#include <QGraphicsItem>
@@ -34,6 +36,7 @@
ui->m_elmt_info_cb->setDisabled(true);
if(text_field)
setPart(text_field);
+ fillInfoComboBox();
}
DynamicTextFieldEditor::~DynamicTextFieldEditor()
@@ -75,6 +78,7 @@
m_connection_list << connect(m_text_field.data(), &PartDynamicTextField::infoNameChanged, [this](){this->updateForm();});
m_connection_list << connect(m_text_field.data(), &PartDynamicTextField::rotationChanged, [this](){this->updateForm();});
m_connection_list << connect(m_text_field.data(), &PartDynamicTextField::frameChanged, [this](){this->updateForm();});
+ m_connection_list << connect(m_text_field.data(), &PartDynamicTextField::textWidthChanged,[this]() {this->updateForm();});
m_connection_list << connect(m_text_field.data(), &PartDynamicTextField::compositeTextChanged, [this]() {this->updateForm();});
return true;
@@ -99,8 +103,27 @@
ui->m_frame_cb->setChecked(m_text_field.data()->frame());
ui->m_user_text_le->setText(m_text_field.data()->text());
ui->m_size_sb->setValue(m_text_field.data()->fontSize());
- ui->m_tagg_le->setText(m_text_field.data()->tagg());
setColorPushButton(m_text_field.data()->color());
+ ui->m_width_sb->setValue(m_text_field.data()->textWidth());
+
+ switch (m_text_field.data()->textFrom())
+ {
+ case DynamicElementTextItem::UserText:
+ ui->m_text_from_cb->setCurrentIndex(0);
+ break;
+ case DynamicElementTextItem::ElementInfo:
+ {
+ ui->m_text_from_cb->setCurrentIndex(1);
+ ui->m_elmt_info_cb->setCurrentIndex(ui->m_elmt_info_cb->findData(m_text_field.data()->infoName()));
+ }
+ break;
+ case DynamicElementTextItem::CompositeText:
+ ui->m_text_from_cb->setCurrentIndex(2);
+ default:
+ break;
+ }
+
+ on_m_text_from_cb_activated(ui->m_text_from_cb->currentIndex()); //For enable the good widget
}
}
@@ -111,6 +134,32 @@
ui->m_color_pb->setStyleSheet(QString("background-color: %1; min-height: 1.5em; border-style: outset; border-width: 2px; border-color: gray; border-radius: 4px;").arg(color.name()));
}
+/**
+ * @brief DynamicTextFieldEditor::fillInfoComboBox
+ * Fill the combo box "element information"
+ */
+void DynamicTextFieldEditor::fillInfoComboBox()
+{
+ ui->m_elmt_info_cb->clear();
+
+ QStringList strl;
+ QString type = elementEditor()->elementScene()->elementType();
+
+ if(type.contains("report"))
+ strl << "function" << "tension-protocol";
+ else
+ strl = QETApp::elementInfoKeys();
+
+ //We use a QMap because the keys of the map are sorted, then no matter the curent local,
+ //the value of the combo box are always alphabetically sorted
+ QMap <QString, QString> info_map;
+ for(QString str : strl)
+ info_map.insert(QETApp::elementTranslatedInfoKey(str), str);
+
+ for (QString key : info_map.keys())
+ ui->m_elmt_info_cb->addItem(key, info_map.value(key));
+}
+
void DynamicTextFieldEditor::on_m_x_sb_editingFinished()
{
QPropertyUndoCommand *undo = new QPropertyUndoCommand(m_text_field, "x", m_text_field.data()->x(), ui->m_x_sb->value());
@@ -174,3 +223,57 @@
undoStack().push(undo);
}
}
+
+void DynamicTextFieldEditor::on_m_width_sb_editingFinished()
+{
+ qreal width = (qreal)ui->m_width_sb->value();
+
+ if(width != m_text_field.data()->textWidth())
+ {
+ QPropertyUndoCommand *undo = new QPropertyUndoCommand(m_text_field, "textWidth", m_text_field.data()->textWidth(), width);
+ undo->setText(tr("Modifier la largeur d'un texte"));
+ undoStack().push(undo);
+ }
+}
+
+void DynamicTextFieldEditor::on_m_elmt_info_cb_activated(const QString &arg1)
+{
+ Q_UNUSED(arg1)
+
+ QString info = ui->m_elmt_info_cb->currentData().toString();
+
+ if(info != m_text_field.data()->infoName())
+ {
+ QPropertyUndoCommand *undo = new QPropertyUndoCommand(m_text_field, "infoName", m_text_field.data()->infoName(), info);
+ undo->setText(tr("Modifier l'information d'un texte"));
+ undoStack().push(undo);
+
+ m_text_field.data()->setPlainText(elementEditor()->elementScene()->elementInformation().value(m_text_field.data()->infoName()).toString());
+ }
+}
+
+void DynamicTextFieldEditor::on_m_text_from_cb_activated(int index)
+{
+ ui->m_user_text_le->setDisabled(true);
+ ui->m_elmt_info_cb->setDisabled(true);
+ ui->m_composite_text_pb->setDisabled(true);
+
+ if(index == 0)
+ ui->m_user_text_le->setEnabled(true);
+ else if (index == 1)
+ ui->m_elmt_info_cb->setEnabled(true);
+ else
+ ui->m_composite_text_pb->setEnabled(true);
+
+ DynamicElementTextItem::TextFrom tf;
+ if(index == 0) tf = DynamicElementTextItem::UserText;
+ else if(index == 1) tf = DynamicElementTextItem::ElementInfo;
+ else tf = DynamicElementTextItem::CompositeText;
+
+ if(tf != m_text_field.data()->textFrom())
+ {
+ QPropertyUndoCommand *undo = new QPropertyUndoCommand(m_text_field, "textFrom", m_text_field.data()->textFrom(), tf);
+ undo->setText(tr("Modifier la source de texte, d'un texte"));
+ undoStack().push(undo);
+ }
+}
Modified: trunk/sources/editor/ui/dynamictextfieldeditor.h
===================================================================
--- trunk/sources/editor/ui/dynamictextfieldeditor.h 2018-03-10 14:27:30 UTC (rev 5259)
+++ trunk/sources/editor/ui/dynamictextfieldeditor.h 2018-03-11 12:59:53 UTC (rev 5260)
@@ -43,6 +43,7 @@
private:
void setColorPushButton(QColor color);
+ void fillInfoComboBox();
private slots:
void on_m_x_sb_editingFinished();
@@ -52,6 +53,9 @@
void on_m_size_sb_editingFinished();
void on_m_color_pb_clicked();
void on_m_frame_cb_clicked();
+ void on_m_width_sb_editingFinished();
+ void on_m_elmt_info_cb_activated(const QString &arg1);
+ void on_m_text_from_cb_activated(int index);
private:
Ui::DynamicTextFieldEditor *ui;
Modified: trunk/sources/editor/ui/dynamictextfieldeditor.ui
===================================================================
--- trunk/sources/editor/ui/dynamictextfieldeditor.ui 2018-03-10 14:27:30 UTC (rev 5259)
+++ trunk/sources/editor/ui/dynamictextfieldeditor.ui 2018-03-11 12:59:53 UTC (rev 5260)
@@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>419</width>
+ <width>299</width>
<height>332</height>
</rect>
</property>
@@ -14,7 +14,7 @@
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
- <item row="2" column="1" colspan="6">
+ <item row="2" column="1" colspan="2">
<widget class="QComboBox" name="m_text_from_cb">
<item>
<property name="text">
@@ -33,7 +33,7 @@
</item>
</widget>
</item>
- <item row="8" column="0">
+ <item row="7" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Couleur</string>
@@ -40,93 +40,7 @@
</property>
</widget>
</item>
- <item row="7" column="0">
- <widget class="QLabel" name="label_2">
- <property name="text">
- <string>Tagg</string>
- </property>
- </widget>
- </item>
- <item row="7" column="1" colspan="6">
- <widget class="QLineEdit" name="m_tagg_le"/>
- </item>
- <item row="0" column="0" colspan="7">
- <widget class="QFrame" name="frame">
- <property name="frameShape">
- <enum>QFrame::NoFrame</enum>
- </property>
- <property name="frameShadow">
- <enum>QFrame::Raised</enum>
- </property>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QLabel" name="label_5">
- <property name="text">
- <string>X</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QDoubleSpinBox" name="m_x_sb">
- <property name="minimum">
- <double>-5000.000000000000000</double>
- </property>
- <property name="maximum">
- <double>5000.000000000000000</double>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_6">
- <property name="text">
- <string>Y</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QDoubleSpinBox" name="m_y_sb">
- <property name="minimum">
- <double>-5000.000000000000000</double>
- </property>
- <property name="maximum">
- <double>5000.000000000000000</double>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_7">
- <property name="text">
- <string>Rotation</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="m_rotation_sb">
- <property name="maximum">
- <number>359</number>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QCheckBox" name="m_frame_cb">
- <property name="text">
- <string>cadre</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item row="8" column="1" colspan="6">
+ <item row="7" column="1" colspan="2">
<widget class="QPushButton" name="m_color_pb">
<property name="text">
<string/>
@@ -133,7 +47,7 @@
</property>
</widget>
</item>
- <item row="9" column="1">
+ <item row="8" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -146,16 +60,16 @@
</property>
</spacer>
</item>
- <item row="4" column="1" colspan="6">
+ <item row="4" column="1" colspan="2">
<widget class="QComboBox" name="m_elmt_info_cb"/>
</item>
- <item row="3" column="1" colspan="6">
+ <item row="3" column="1" colspan="2">
<widget class="QLineEdit" name="m_user_text_le"/>
</item>
- <item row="5" column="1" colspan="6">
+ <item row="5" column="1" colspan="2">
<widget class="QPushButton" name="m_composite_text_pb">
<property name="text">
- <string/>
+ <string>Texte composé</string>
</property>
</widget>
</item>
@@ -166,7 +80,7 @@
</property>
</widget>
</item>
- <item row="6" column="1" colspan="6">
+ <item row="6" column="1" colspan="2">
<widget class="QSpinBox" name="m_size_sb"/>
</item>
<item row="2" column="0">
@@ -189,6 +103,102 @@
</property>
</spacer>
</item>
+ <item row="0" column="0" colspan="3">
+ <widget class="QFrame" name="frame">
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="1">
+ <widget class="QDoubleSpinBox" name="m_x_sb">
+ <property name="minimum">
+ <double>-5000.000000000000000</double>
+ </property>
+ <property name="maximum">
+ <double>5000.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="6">
+ <widget class="QCheckBox" name="m_frame_cb">
+ <property name="text">
+ <string>cadre</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="5">
+ <widget class="QSpinBox" name="m_rotation_sb">
+ <property name="maximum">
+ <number>359</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4">
+ <widget class="QLabel" name="label_7">
+ <property name="text">
+ <string>Rotation</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>X</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="5">
+ <widget class="QSpinBox" name="m_width_sb">
+ <property name="minimum">
+ <number>-1</number>
+ </property>
+ <property name="maximum">
+ <number>500</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="4">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Largeur</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Y</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QDoubleSpinBox" name="m_y_sb">
+ <property name="minimum">
+ <double>-5000.000000000000000</double>
+ </property>
+ <property name="maximum">
+ <double>5000.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
</layout>
</widget>
<resources/>
Modified: trunk/sources/qetgraphicsitem/customelement.cpp
===================================================================
--- trunk/sources/qetgraphicsitem/customelement.cpp 2018-03-10 14:27:30 UTC (rev 5259)
+++ trunk/sources/qetgraphicsitem/customelement.cpp 2018-03-11 12:59:53 UTC (rev 5260)
@@ -192,7 +192,7 @@
++ parsed_elements_count;
QString current_tag = qde.tagName();
- if (current_tag != "terminal" && current_tag != "input" && current_tag != DynamicElementTextItem::xmlTaggName())
+ if (current_tag != "terminal" && current_tag != "input" && current_tag != PartDynamicTextField::xmlTaggName())
{
forbid_antialiasing = true;
parseElement(qde, low_zoom_qp, false);