diff --git a/sources/editor/partterminal.cpp b/sources/editor/partterminal.cpp index 710e7342c..966af52dd 100644 --- a/sources/editor/partterminal.cpp +++ b/sources/editor/partterminal.cpp @@ -54,6 +54,11 @@ void PartTerminal::fromXml(const QDomElement &xml_elmt) { // lit l'orientation de la borne _orientation = QET::orientationFromString(xml_elmt.attribute("orientation")); + + // Read number and name of terminal from XML + number_ = xml_elmt.attribute("number"); + name_ = xml_elmt.attribute("name"); + updateSecondPoint(); } @@ -71,6 +76,9 @@ const QDomElement PartTerminal::toXml(QDomDocument &xml_document) const { // ecrit l'orientation de la borne xml_element.setAttribute("orientation", orientationToString(_orientation)); + // Write name and number to XML + xml_element.setAttribute("number", number_); + xml_element.setAttribute("name", name_); return(xml_element); } @@ -142,6 +150,36 @@ void PartTerminal::setOrientation(QET::Orientation ori) { updateSecondPoint(); } +/** + @return Number of terminal +*/ +QString PartTerminal::number() const { + return(number_); +} + +/** + set Number of Terminal + @param num number of terminal +*/ +void PartTerminal::setNumber(const QString &num) { + number_ = num; +} + +/** + @return Name of terminal +*/ +QString PartTerminal::nameOfTerminal() const { + return(name_); +} + +/** + set Name of Terminal + @param na Name of terminal +*/ +void PartTerminal::setName(const QString &na) { + name_ = na; +} + /** Specifie la valeur d'une propriete donnee de la borne @param property propriete a modifier. Valeurs acceptees : @@ -160,6 +198,12 @@ void PartTerminal::setProperty(const QString &property, const QVariant &value) { } else if (property == "orientation") { if (!value.canConvert(QVariant::Int)) return; setOrientation(static_cast(value.toInt())); + } else if (property == "number") { + if (!value.canConvert(QVariant::String)) return; + setNumber(value.toString()); + } else if (property == "name") { + if (!value.canConvert(QVariant::String)) return; + setName(value.toString()); } } @@ -178,6 +222,10 @@ QVariant PartTerminal::property(const QString &property) { return(scenePos().y()); } else if (property == "orientation") { return(_orientation); + } else if (property == "number") { + return(number_); + } else if (property == "name") { + return(name_); } return(QVariant()); } diff --git a/sources/editor/partterminal.h b/sources/editor/partterminal.h index 21b2cf429..47216a750 100644 --- a/sources/editor/partterminal.h +++ b/sources/editor/partterminal.h @@ -36,6 +36,7 @@ class PartTerminal : public CustomElementPart, public QGraphicsItem { private: QET::Orientation _orientation; QPointF second_point; + QString number_, name_; // methods public: @@ -54,6 +55,11 @@ class PartTerminal : public CustomElementPart, public QGraphicsItem { virtual QRectF boundingRect() const; QET::Orientation orientation() const; void setOrientation(QET::Orientation); + QString number() const; + void setNumber(const QString &); + QString nameOfTerminal() const; + void setName(const QString &); + virtual void setProperty(const QString &, const QVariant &); virtual QVariant property(const QString &); virtual bool isUseless() const; diff --git a/sources/editor/terminaleditor.cpp b/sources/editor/terminaleditor.cpp index cf537bad5..2fbfe311f 100644 --- a/sources/editor/terminaleditor.cpp +++ b/sources/editor/terminaleditor.cpp @@ -41,6 +41,9 @@ TerminalEditor::TerminalEditor(QETElementEditor *editor, PartTerminal *term, QWi orientation -> addItem(QET::Icons::South, tr("Sud"), QET::South); orientation -> addItem(QET::Icons::West, tr("Ouest"), QET::West); + qle_number = new QLineEdit(); + qle_name = new QLineEdit(); + QVBoxLayout *main_layout = new QVBoxLayout(); main_layout -> addWidget(new QLabel(tr("Position : "))); @@ -55,6 +58,14 @@ TerminalEditor::TerminalEditor(QETElementEditor *editor, PartTerminal *term, QWi ori -> addWidget(new QLabel(tr("Orientation : "))); ori -> addWidget(orientation ); main_layout -> addLayout(ori); + + QHBoxLayout *num = new QHBoxLayout(); + num -> addWidget(new QLabel(tr("Num\351ro : "))); + num -> addWidget(qle_number ); + num -> addWidget(new QLabel(tr("Nom : "))); + num -> addWidget(qle_name ); + main_layout -> addLayout(num); + main_layout -> addStretch(); setLayout(main_layout); @@ -108,6 +119,8 @@ void TerminalEditor::updateTerminal() { ).toInt() ) ); + part -> setNumber( qle_number->text() ); + part -> setName ( qle_name->text() ); } /// Met a jour l'abscisse de la position de la borne et cree un objet d'annulation @@ -116,6 +129,9 @@ void TerminalEditor::updateTerminalX() { addChangePartCommand(tr("abscisse"), void TerminalEditor::updateTerminalY() { addChangePartCommand(tr("ordonn\351e"), part, "y", qle_y -> text().toDouble()); updateForm(); } /// Met a jour l'orientation de la borne et cree un objet d'annulation void TerminalEditor::updateTerminalO() { addChangePartCommand(tr("orientation"), part, "orientation", orientation -> itemData(orientation -> currentIndex()).toInt()); } +/// update Number and name, create cancel object +void TerminalEditor::updateTerminalNum() { addChangePartCommand(tr("num\351ro: ")+qle_number -> text(), part, "num\351ro:", qle_number -> text()); updateForm(); } +void TerminalEditor::updateTerminalName() { addChangePartCommand(tr("nom: ")+qle_name -> text(), part, "nom", qle_name -> text()); updateForm(); } /** Met a jour le formulaire d'edition @@ -126,6 +142,8 @@ void TerminalEditor::updateForm() { qle_x -> setText(part -> property("x").toString()); qle_y -> setText(part -> property("y").toString()); orientation -> setCurrentIndex(static_cast(part -> orientation())); + qle_number -> setText(part -> number() ); + qle_name -> setText(part -> nameOfTerminal() ); activeConnections(true); } @@ -138,9 +156,13 @@ void TerminalEditor::activeConnections(bool active) { connect(qle_x, SIGNAL(editingFinished()), this, SLOT(updateTerminalX())); connect(qle_y, SIGNAL(editingFinished()), this, SLOT(updateTerminalY())); connect(orientation, SIGNAL(activated(int)), this, SLOT(updateTerminalO())); + connect(qle_number, SIGNAL(editingFinished()), this, SLOT(updateTerminalNum())); + connect(qle_name, SIGNAL(editingFinished()), this, SLOT(updateTerminalName())); } else { disconnect(qle_x, SIGNAL(editingFinished()), this, SLOT(updateTerminalX())); disconnect(qle_y, SIGNAL(editingFinished()), this, SLOT(updateTerminalY())); disconnect(orientation, SIGNAL(activated(int)), this, SLOT(updateTerminalO())); + disconnect(qle_number, SIGNAL(editingFinished()), this, SLOT(updateTerminalNum())); + disconnect(qle_name, SIGNAL(editingFinished()), this, SLOT(updateTerminalName())); } } diff --git a/sources/editor/terminaleditor.h b/sources/editor/terminaleditor.h index f63de5aaf..5440dd008 100644 --- a/sources/editor/terminaleditor.h +++ b/sources/editor/terminaleditor.h @@ -37,6 +37,7 @@ class TerminalEditor : public ElementItemEditor { PartTerminal *part; QLineEdit *qle_x, *qle_y; QComboBox *orientation; + QLineEdit *qle_number, *qle_name; // methods public: @@ -48,6 +49,8 @@ class TerminalEditor : public ElementItemEditor { void updateTerminalX(); void updateTerminalY(); void updateTerminalO(); + void updateTerminalNum(); + void updateTerminalName(); void updateForm(); private: