From 2c4af2b12881e10977e88be0798441b649073d51 Mon Sep 17 00:00:00 2001 From: blacksun Date: Tue, 23 Dec 2014 19:00:37 +0000 Subject: [PATCH] Remove all information about internal connection in element (obselete since internal connection is always allowed) git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3568 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- sources/diagram.cpp | 35 ++++++++++------------- sources/qetgraphicsitem/customelement.cpp | 7 ++--- sources/qetgraphicsitem/element.cpp | 1 - sources/qetgraphicsitem/element.h | 22 -------------- sources/qetgraphicsitem/ghostelement.cpp | 1 - sources/qetgraphicsitem/terminal.cpp | 27 +++++++---------- 6 files changed, 29 insertions(+), 64 deletions(-) diff --git a/sources/diagram.cpp b/sources/diagram.cpp index 8d0f413e0..394135e39 100644 --- a/sources/diagram.cpp +++ b/sources/diagram.cpp @@ -599,33 +599,28 @@ bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_inf added_shapes << dii; } - // Load conductor + // Load conductor QList added_conductors; - foreach (QDomElement f, QET::findInDomElement(root, "conductors", "conductor")) { + foreach (QDomElement f, QET::findInDomElement(root, "conductors", "conductor")) + { if (!Conductor::valideXml(f)) continue; - // verifie que les bornes que le conducteur relie sont connues + + //Check if terminal that conductor must be linked is know int id_p1 = f.attribute("terminal1").toInt(); int id_p2 = f.attribute("terminal2").toInt(); - if (table_adr_id.contains(id_p1) && table_adr_id.contains(id_p2)) { - // pose le conducteur... si c'est possible + if (table_adr_id.contains(id_p1) && table_adr_id.contains(id_p2)) + { Terminal *p1 = table_adr_id.value(id_p1); Terminal *p2 = table_adr_id.value(id_p2); - if (p1 != p2) { - bool can_add_conductor = true; - bool cia = ((Element *)p2 -> parentItem()) -> internalConnections(); - if (!cia) { - foreach(QGraphicsItem *item, p2 -> parentItem() -> children()) { - if (item == p1) can_add_conductor = false; - } - } - if (can_add_conductor) { - Conductor *c = new Conductor(table_adr_id.value(id_p1), table_adr_id.value(id_p2)); - addItem(c); - c -> fromXml(f); - added_conductors << c; - } + if (p1 != p2) + { + Conductor *c = new Conductor(table_adr_id.value(id_p1), table_adr_id.value(id_p2)); + addItem(c); + c -> fromXml(f); + added_conductors << c; } - } else qDebug() << "Diagram::fromXml() : Le chargement du conducteur" << id_p1 << id_p2 << "a echoue"; + } + else qDebug() << "Diagram::fromXml() : Le chargement du conducteur" << id_p1 << id_p2 << "a echoue"; } //Translate items if a new position was given in parameter diff --git a/sources/qetgraphicsitem/customelement.cpp b/sources/qetgraphicsitem/customelement.cpp index ff9bb0b72..1d54d246a 100644 --- a/sources/qetgraphicsitem/customelement.cpp +++ b/sources/qetgraphicsitem/customelement.cpp @@ -137,13 +137,12 @@ bool CustomElement::buildFromXml(const QDomElement &xml_def_elmt, int *state) { return(false); } - // on peut d'ores et deja specifier la taille et le hotspot setSize(w, h); setHotspot(QPoint(hot_x, hot_y)); - setInternalConnections(xml_def_elmt.attribute("ic") == "true"); - // la definition est supposee avoir des enfants - if (xml_def_elmt.firstChild().isNull()) { + //the definition must have childs + if (xml_def_elmt.firstChild().isNull()) + { if (state) *state = 6; return(false); } diff --git a/sources/qetgraphicsitem/element.cpp b/sources/qetgraphicsitem/element.cpp index 6213ba9ef..aeac1b025 100644 --- a/sources/qetgraphicsitem/element.cpp +++ b/sources/qetgraphicsitem/element.cpp @@ -32,7 +32,6 @@ */ Element::Element(QGraphicsItem *parent) : QetGraphicsItem(parent), - internal_connections_(false), must_highlight_(false), m_mouse_over(false) { diff --git a/sources/qetgraphicsitem/element.h b/sources/qetgraphicsitem/element.h index 53904fffc..54b40ccb9 100644 --- a/sources/qetgraphicsitem/element.h +++ b/sources/qetgraphicsitem/element.h @@ -160,9 +160,6 @@ class Element : public QetGraphicsItem { void select(); void deselect(); - // methods related to internal connections - bool internalConnections(); - void setInternalConnections(bool); virtual void rotateBy(const qreal &); virtual void editProperty(); @@ -179,7 +176,6 @@ class Element : public QetGraphicsItem { void drawAxes(QPainter *, const QStyleOptionGraphicsItem *); private: - bool internal_connections_; bool must_highlight_; void drawSelection(QPainter *, const QStyleOptionGraphicsItem *); void drawHighlight(QPainter *, const QStyleOptionGraphicsItem *); @@ -199,24 +195,6 @@ inline bool Element::isFree() const { return (connected_elements.isEmpty()); } -/** - Indicate whether this element allows internal connections, i.e. whether its - terminals can be linked together using a conductor. - @return true if internal connections are accepted, false otherwise -*/ -inline bool Element::internalConnections() { - return(internal_connections_); -} - -/** - Specify whether this element allows internal connections, i.e. whether its - terminals can be linked together using a conductor. - @return true for internal connections to be accepted, false otherwise -*/ -inline void Element::setInternalConnections(bool ic) { - internal_connections_ = ic; -} - /** Indicate the current orientation of this element O = 0° diff --git a/sources/qetgraphicsitem/ghostelement.cpp b/sources/qetgraphicsitem/ghostelement.cpp index 54c6e0453..778e1177c 100644 --- a/sources/qetgraphicsitem/ghostelement.cpp +++ b/sources/qetgraphicsitem/ghostelement.cpp @@ -73,7 +73,6 @@ bool GhostElement::fromXml(QDomElement &e, QHash &table_id_adr, QRect final_bounding_rect = minimalBoundingRect().united(childrenBoundingRect()).toAlignedRect(); setSize(final_bounding_rect.width(), final_bounding_rect.height()); setHotspot(QPoint() - final_bounding_rect.topLeft()); - setInternalConnections(true); // on peut desormais confectionner le rendu de l'element generateDrawings(); diff --git a/sources/qetgraphicsitem/terminal.cpp b/sources/qetgraphicsitem/terminal.cpp index bf24b7019..aa7968c9d 100644 --- a/sources/qetgraphicsitem/terminal.cpp +++ b/sources/qetgraphicsitem/terminal.cpp @@ -442,22 +442,17 @@ bool Terminal::isLinkedTo(Terminal *other_terminal) { } /** - @param other_terminal Autre borne - @return true si cette borne peut etre reliee a other_terminal, false sion -*/ -bool Terminal::canBeLinkedTo(Terminal *other_terminal) { - if (other_terminal == this) return(false); - - // l'autre borne appartient-elle au meme element ? - bool same_element = other_terminal -> parentElement() == parentElement(); - // les connexions internes sont-elles autorisees ? - bool internal_connections_allowed = parentElement() -> internalConnections(); - // les deux bornes sont-elles deja liees ? - bool already_linked = isLinkedTo(other_terminal); - // la liaison des deux bornes est-elle interdite ? - bool link_forbidden = (same_element && !internal_connections_allowed) || already_linked; - - return(!link_forbidden); + * @brief Terminal::canBeLinkedTo + * @param other_terminal + * @return true if this terminal can be linked to @other_terminal, + * otherwise false + */ +bool Terminal::canBeLinkedTo(Terminal *other_terminal) +{ + if (other_terminal == this || isLinkedTo(other_terminal)) + return false; + + return true; } /**