Start work to add number for terminal

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2609 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
cfdev
2013-11-12 18:43:59 +00:00
parent 725fcd00a5
commit 319ef76b86
2 changed files with 24 additions and 10 deletions

View File

@@ -33,7 +33,7 @@ const qreal Terminal::terminalSize = 4.0;
@param pf position du point d'amarrage pour un conducteur @param pf position du point d'amarrage pour un conducteur
@param o orientation de la borne : Qt::Horizontal ou Qt::Vertical @param o orientation de la borne : Qt::Horizontal ou Qt::Vertical
*/ */
void Terminal::init(QPointF pf, QET::Orientation o) { void Terminal::init(QPointF pf, QET::Orientation o, QString number) {
// definition du pount d'amarrage pour un conducteur // definition du pount d'amarrage pour un conducteur
dock_conductor_ = pf; dock_conductor_ = pf;
@@ -50,7 +50,8 @@ void Terminal::init(QPointF pf, QET::Orientation o) {
case QET::South: case QET::South:
default : dock_elmt_ += QPointF(0, -Terminal::terminalSize); default : dock_elmt_ += QPointF(0, -Terminal::terminalSize);
} }
// Number of terminal
number_terminal_ = number;
// par defaut : pas de conducteur // par defaut : pas de conducteur
// QRectF null // QRectF null
@@ -70,12 +71,12 @@ void Terminal::init(QPointF pf, QET::Orientation o) {
@param e Element auquel cette borne appartient @param e Element auquel cette borne appartient
@param s Scene sur laquelle figure cette borne @param s Scene sur laquelle figure cette borne
*/ */
Terminal::Terminal(QPointF pf, QET::Orientation o, Element *e, Diagram *s) : Terminal::Terminal(QPointF pf, QET::Orientation o, QString num, Element *e, Diagram *s) :
QGraphicsItem(e, s), QGraphicsItem(e, s),
parent_element_(e), parent_element_(e),
hovered_color_(Terminal::neutralColor) hovered_color_(Terminal::neutralColor)
{ {
init(pf, o); init(pf, o, num);
} }
/** /**
@@ -86,12 +87,12 @@ Terminal::Terminal(QPointF pf, QET::Orientation o, Element *e, Diagram *s) :
@param e Element auquel cette borne appartient @param e Element auquel cette borne appartient
@param s Scene sur laquelle figure cette borne @param s Scene sur laquelle figure cette borne
*/ */
Terminal::Terminal(qreal pf_x, qreal pf_y, QET::Orientation o, Element *e, Diagram *s) : Terminal::Terminal(qreal pf_x, qreal pf_y, QET::Orientation o, QString num, Element *e, Diagram *s) :
QGraphicsItem(e, s), QGraphicsItem(e, s),
parent_element_(e), parent_element_(e),
hovered_color_(Terminal::neutralColor) hovered_color_(Terminal::neutralColor)
{ {
init(QPointF(pf_x, pf_y), o); init(QPointF(pf_x, pf_y), o, num);
} }
/** /**
@@ -437,6 +438,7 @@ QDomElement Terminal::toXml(QDomDocument &doc) const {
qdo.setAttribute("x", QString("%1").arg(dock_elmt_.x())); qdo.setAttribute("x", QString("%1").arg(dock_elmt_.x()));
qdo.setAttribute("y", QString("%1").arg(dock_elmt_.y())); qdo.setAttribute("y", QString("%1").arg(dock_elmt_.y()));
qdo.setAttribute("orientation", ori_); qdo.setAttribute("orientation", ori_);
qdo.setAttribute("number", number_terminal_);
return(qdo); return(qdo);
} }
@@ -453,6 +455,7 @@ bool Terminal::valideXml(QDomElement &terminal) {
if (!terminal.hasAttribute("x")) return(false); if (!terminal.hasAttribute("x")) return(false);
if (!terminal.hasAttribute("y")) return(false); if (!terminal.hasAttribute("y")) return(false);
if (!terminal.hasAttribute("orientation")) return(false); if (!terminal.hasAttribute("orientation")) return(false);
if (!terminal.hasAttribute("number")) return(false);
bool conv_ok; bool conv_ok;
// parse l'abscisse // parse l'abscisse
@@ -485,7 +488,8 @@ bool Terminal::fromXml(QDomElement &terminal) {
return ( return (
qFuzzyCompare(terminal.attribute("x").toDouble(), dock_elmt_.x()) && qFuzzyCompare(terminal.attribute("x").toDouble(), dock_elmt_.x()) &&
qFuzzyCompare(terminal.attribute("y").toDouble(), dock_elmt_.y()) && qFuzzyCompare(terminal.attribute("y").toDouble(), dock_elmt_.y()) &&
terminal.attribute("orientation").toInt() == ori_ terminal.attribute("orientation").toInt() == ori_ &&
terminal.attribute("number").toInt() == number_terminal_
); );
} }

View File

@@ -31,8 +31,8 @@ class Terminal : public QGraphicsItem {
// constructors, destructor // constructors, destructor
public: public:
Terminal(QPointF, QET::Orientation, Element * = 0, Diagram * = 0); Terminal(QPointF, QET::Orientation, QString number, Element * = 0, Diagram * = 0);
Terminal(qreal, qreal, QET::Orientation, Element * = 0, Diagram * = 0); Terminal(qreal, qreal, QET::Orientation, QString number, Element * = 0, Diagram * = 0);
virtual ~Terminal(); virtual ~Terminal();
private: private:
@@ -61,6 +61,7 @@ class Terminal : public QGraphicsItem {
QList<Conductor *> conductors() const; QList<Conductor *> conductors() const;
QET::Orientation orientation() const; QET::Orientation orientation() const;
QPointF dockConductor() const; QPointF dockConductor() const;
QString number() const;
void updateConductor(); void updateConductor();
bool isLinkedTo(Terminal *); bool isLinkedTo(Terminal *);
bool canBeLinkedTo(Terminal *); bool canBeLinkedTo(Terminal *);
@@ -116,9 +117,11 @@ class Terminal : public QGraphicsItem {
bool hovered_; bool hovered_;
/// Color used for the hover effect /// Color used for the hover effect
QColor hovered_color_; QColor hovered_color_;
/// Number of Terminal
QString number_terminal_;
private: private:
void init(QPointF, QET::Orientation); void init(QPointF, QET::Orientation, QString number);
}; };
/** /**
@@ -136,4 +139,11 @@ inline QPointF Terminal::dockConductor() const {
return(mapToScene(dock_conductor_)); return(mapToScene(dock_conductor_));
} }
/**
@return the number of terminal.
*/
inline QString Terminal::number() const {
return(number_terminal_);
}
#endif #endif