EditorElement: try to add number and name GUI...so hard! why is it so complicated?!

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2618 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
cfdev
2013-11-16 19:20:15 +00:00
parent f1f5409cbe
commit 44f32ed46e
4 changed files with 79 additions and 0 deletions

View File

@@ -54,6 +54,11 @@ void PartTerminal::fromXml(const QDomElement &xml_elmt) {
// lit l'orientation de la borne // lit l'orientation de la borne
_orientation = QET::orientationFromString(xml_elmt.attribute("orientation")); _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(); updateSecondPoint();
} }
@@ -71,6 +76,9 @@ const QDomElement PartTerminal::toXml(QDomDocument &xml_document) const {
// ecrit l'orientation de la borne // ecrit l'orientation de la borne
xml_element.setAttribute("orientation", orientationToString(_orientation)); 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); return(xml_element);
} }
@@ -142,6 +150,36 @@ void PartTerminal::setOrientation(QET::Orientation ori) {
updateSecondPoint(); 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 Specifie la valeur d'une propriete donnee de la borne
@param property propriete a modifier. Valeurs acceptees : @param property propriete a modifier. Valeurs acceptees :
@@ -160,6 +198,12 @@ void PartTerminal::setProperty(const QString &property, const QVariant &value) {
} else if (property == "orientation") { } else if (property == "orientation") {
if (!value.canConvert(QVariant::Int)) return; if (!value.canConvert(QVariant::Int)) return;
setOrientation(static_cast<QET::Orientation>(value.toInt())); setOrientation(static_cast<QET::Orientation>(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()); return(scenePos().y());
} else if (property == "orientation") { } else if (property == "orientation") {
return(_orientation); return(_orientation);
} else if (property == "number") {
return(number_);
} else if (property == "name") {
return(name_);
} }
return(QVariant()); return(QVariant());
} }

View File

@@ -36,6 +36,7 @@ class PartTerminal : public CustomElementPart, public QGraphicsItem {
private: private:
QET::Orientation _orientation; QET::Orientation _orientation;
QPointF second_point; QPointF second_point;
QString number_, name_;
// methods // methods
public: public:
@@ -54,6 +55,11 @@ class PartTerminal : public CustomElementPart, public QGraphicsItem {
virtual QRectF boundingRect() const; virtual QRectF boundingRect() const;
QET::Orientation orientation() const; QET::Orientation orientation() const;
void setOrientation(QET::Orientation); 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 void setProperty(const QString &, const QVariant &);
virtual QVariant property(const QString &); virtual QVariant property(const QString &);
virtual bool isUseless() const; virtual bool isUseless() const;

View File

@@ -41,6 +41,9 @@ TerminalEditor::TerminalEditor(QETElementEditor *editor, PartTerminal *term, QWi
orientation -> addItem(QET::Icons::South, tr("Sud"), QET::South); orientation -> addItem(QET::Icons::South, tr("Sud"), QET::South);
orientation -> addItem(QET::Icons::West, tr("Ouest"), QET::West); orientation -> addItem(QET::Icons::West, tr("Ouest"), QET::West);
qle_number = new QLineEdit();
qle_name = new QLineEdit();
QVBoxLayout *main_layout = new QVBoxLayout(); QVBoxLayout *main_layout = new QVBoxLayout();
main_layout -> addWidget(new QLabel(tr("Position : "))); 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(new QLabel(tr("Orientation : ")));
ori -> addWidget(orientation ); ori -> addWidget(orientation );
main_layout -> addLayout(ori); 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(); main_layout -> addStretch();
setLayout(main_layout); setLayout(main_layout);
@@ -108,6 +119,8 @@ void TerminalEditor::updateTerminal() {
).toInt() ).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 /// 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(); } 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 /// 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()); } 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 Met a jour le formulaire d'edition
@@ -126,6 +142,8 @@ void TerminalEditor::updateForm() {
qle_x -> setText(part -> property("x").toString()); qle_x -> setText(part -> property("x").toString());
qle_y -> setText(part -> property("y").toString()); qle_y -> setText(part -> property("y").toString());
orientation -> setCurrentIndex(static_cast<int>(part -> orientation())); orientation -> setCurrentIndex(static_cast<int>(part -> orientation()));
qle_number -> setText(part -> number() );
qle_name -> setText(part -> nameOfTerminal() );
activeConnections(true); activeConnections(true);
} }
@@ -138,9 +156,13 @@ void TerminalEditor::activeConnections(bool active) {
connect(qle_x, SIGNAL(editingFinished()), this, SLOT(updateTerminalX())); connect(qle_x, SIGNAL(editingFinished()), this, SLOT(updateTerminalX()));
connect(qle_y, SIGNAL(editingFinished()), this, SLOT(updateTerminalY())); connect(qle_y, SIGNAL(editingFinished()), this, SLOT(updateTerminalY()));
connect(orientation, SIGNAL(activated(int)), this, SLOT(updateTerminalO())); 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 { } else {
disconnect(qle_x, SIGNAL(editingFinished()), this, SLOT(updateTerminalX())); disconnect(qle_x, SIGNAL(editingFinished()), this, SLOT(updateTerminalX()));
disconnect(qle_y, SIGNAL(editingFinished()), this, SLOT(updateTerminalY())); disconnect(qle_y, SIGNAL(editingFinished()), this, SLOT(updateTerminalY()));
disconnect(orientation, SIGNAL(activated(int)), this, SLOT(updateTerminalO())); disconnect(orientation, SIGNAL(activated(int)), this, SLOT(updateTerminalO()));
disconnect(qle_number, SIGNAL(editingFinished()), this, SLOT(updateTerminalNum()));
disconnect(qle_name, SIGNAL(editingFinished()), this, SLOT(updateTerminalName()));
} }
} }

View File

@@ -37,6 +37,7 @@ class TerminalEditor : public ElementItemEditor {
PartTerminal *part; PartTerminal *part;
QLineEdit *qle_x, *qle_y; QLineEdit *qle_x, *qle_y;
QComboBox *orientation; QComboBox *orientation;
QLineEdit *qle_number, *qle_name;
// methods // methods
public: public:
@@ -48,6 +49,8 @@ class TerminalEditor : public ElementItemEditor {
void updateTerminalX(); void updateTerminalX();
void updateTerminalY(); void updateTerminalY();
void updateTerminalO(); void updateTerminalO();
void updateTerminalNum();
void updateTerminalName();
void updateForm(); void updateForm();
private: private: