mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-24 03:10:52 +01:00
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
This commit is contained in:
@@ -601,31 +601,26 @@ bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_inf
|
||||
|
||||
// Load conductor
|
||||
QList<Conductor *> 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) {
|
||||
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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
*/
|
||||
Element::Element(QGraphicsItem *parent) :
|
||||
QetGraphicsItem(parent),
|
||||
internal_connections_(false),
|
||||
must_highlight_(false),
|
||||
m_mouse_over(false)
|
||||
{
|
||||
|
||||
@@ -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°
|
||||
|
||||
@@ -73,7 +73,6 @@ bool GhostElement::fromXml(QDomElement &e, QHash<int, Terminal *> &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();
|
||||
|
||||
@@ -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
|
||||
* @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) return(false);
|
||||
bool Terminal::canBeLinkedTo(Terminal *other_terminal)
|
||||
{
|
||||
if (other_terminal == this || isLinkedTo(other_terminal))
|
||||
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);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user