mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 20:50:34 +01:00
Correction : l'application enregistrait les schemas lorsque l'on faisait un copier/coller.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@604 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -344,8 +344,8 @@ QDomDocument Diagram::toXml(bool diagram) {
|
||||
@param position La position du schema importe
|
||||
@param consider_informations Si vrai, les informations complementaires
|
||||
(auteur, titre, ...) seront prises en compte
|
||||
@param content_ptr si ce pointeur vers un DiagramContent n'est pas NULL, il
|
||||
sera rempli avec le contenu ajoute au schema par le fromXml
|
||||
@param content_ptr si ce pointeur vers un DiagramContent est different de 0,
|
||||
il sera rempli avec le contenu ajoute au schema par le fromXml
|
||||
@return true si l'import a reussi, false sinon
|
||||
*/
|
||||
bool Diagram::fromXml(QDomDocument &document, QPointF position, bool consider_informations, DiagramContent *content_ptr) {
|
||||
@@ -353,6 +353,34 @@ bool Diagram::fromXml(QDomDocument &document, QPointF position, bool consider_in
|
||||
return(fromXml(root, position, consider_informations, content_ptr));
|
||||
}
|
||||
|
||||
/**
|
||||
Importe le schema decrit dans un element XML. Cette methode delegue son travail a Diagram::fromXml
|
||||
Si l'import reussit, cette methode initialise egalement le document XML
|
||||
interne permettant de bien gerer l'enregistrement de ce schema dans le
|
||||
projet auquel il appartient.
|
||||
@see Diagram::fromXml
|
||||
@param document Le document XML a analyser
|
||||
@param position La position du schema importe
|
||||
@param consider_informations Si vrai, les informations complementaires
|
||||
(auteur, titre, ...) seront prises en compte
|
||||
@param content_ptr si ce pointeur vers un DiagramContent est different de 0,
|
||||
il sera rempli avec le contenu ajoute au schema par le fromXml
|
||||
@return true si l'import a reussi, false sinon
|
||||
|
||||
*/
|
||||
bool Diagram::initFromXml(QDomElement &document, QPointF position, bool consider_informations, DiagramContent *content_ptr) {
|
||||
// import le contenu et les proprietes du schema depuis l'element XML fourni en parametre
|
||||
bool from_xml = fromXml(document, position, consider_informations, content_ptr);
|
||||
|
||||
// initialise le document XML interne a partir de l'element XML fourni en parametre
|
||||
if (from_xml) {
|
||||
xml_document.clear();
|
||||
xml_document.appendChild(xml_document.importNode(document, true));
|
||||
// a ce stade, le document XML interne contient le code XML qui a ete importe, et non pas une version re-exporte par la methode toXml()
|
||||
}
|
||||
return(from_xml);
|
||||
}
|
||||
|
||||
/**
|
||||
Importe le schema decrit dans un element XML. Si une position est
|
||||
precisee, les elements importes sont positionnes de maniere a ce que le
|
||||
@@ -362,8 +390,8 @@ bool Diagram::fromXml(QDomDocument &document, QPointF position, bool consider_in
|
||||
@param position La position du schema importe
|
||||
@param consider_informations Si vrai, les informations complementaires
|
||||
(auteur, titre, ...) seront prises en compte
|
||||
@param content_ptr si ce pointeur vers un DiagramContent n'est pas NULL, il
|
||||
sera rempli avec le contenu ajoute au schema par le fromXml
|
||||
@param content_ptr si ce pointeur vers un DiagramContent est different de 0,
|
||||
il sera rempli avec le contenu ajoute au schema par le fromXml
|
||||
@return true si l'import a reussi, false sinon
|
||||
*/
|
||||
bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_informations, DiagramContent *content_ptr) {
|
||||
@@ -526,13 +554,12 @@ bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_inf
|
||||
}
|
||||
|
||||
// remplissage des listes facultatives
|
||||
if (content_ptr != NULL) {
|
||||
if (content_ptr) {
|
||||
content_ptr -> elements = added_elements;
|
||||
content_ptr -> conductorsToMove = added_conductors;
|
||||
content_ptr -> textFields = added_texts;
|
||||
}
|
||||
|
||||
write();
|
||||
return(true);
|
||||
}
|
||||
|
||||
@@ -833,7 +860,7 @@ void Diagram::moveElements(const QPointF &diff, QGraphicsItem *dontmove) {
|
||||
|
||||
// deplace les elements selectionnes
|
||||
foreach(Element *element, elementsToMove()) {
|
||||
if (dontmove != NULL && element == dontmove) continue;
|
||||
if (dontmove && element == dontmove) continue;
|
||||
element -> setPos(element -> pos() + diff);
|
||||
}
|
||||
|
||||
@@ -850,7 +877,7 @@ void Diagram::moveElements(const QPointF &diff, QGraphicsItem *dontmove) {
|
||||
|
||||
// deplace les champs de texte
|
||||
foreach(DiagramTextItem *dti, textsToMove()) {
|
||||
if (dontmove != NULL && dti == dontmove) continue;
|
||||
if (dontmove && dti == dontmove) continue;
|
||||
dti -> setPos(dti -> pos() + diff);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,8 +108,9 @@ class Diagram : public QGraphicsScene {
|
||||
|
||||
// fonctions relatives a l'import / export XML
|
||||
QDomDocument toXml(bool = true);
|
||||
bool fromXml(QDomDocument &, QPointF = QPointF(), bool = true, DiagramContent * = NULL);
|
||||
bool fromXml(QDomElement &, QPointF = QPointF(), bool = true, DiagramContent * = NULL);
|
||||
bool initFromXml(QDomElement &, QPointF = QPointF(), bool = true, DiagramContent * = 0);
|
||||
bool fromXml(QDomDocument &, QPointF = QPointF(), bool = true, DiagramContent * = 0);
|
||||
bool fromXml(QDomElement &, QPointF = QPointF(), bool = true, DiagramContent * = 0);
|
||||
void write();
|
||||
void write(const QDomElement &);
|
||||
bool wasWritten() const;
|
||||
@@ -152,7 +153,7 @@ class Diagram : public QGraphicsScene {
|
||||
QSet<Conductor *> selectedConductors() const;
|
||||
DiagramContent content() const;
|
||||
DiagramContent selectedContent();
|
||||
void moveElements(const QPointF &, QGraphicsItem * = NULL);
|
||||
void moveElements(const QPointF &, QGraphicsItem * = 0);
|
||||
bool usesElement(const ElementsLocation &);
|
||||
|
||||
QUndoStack &undoStack();
|
||||
|
||||
@@ -729,7 +729,7 @@ void QETProject::readDiagramsXml() {
|
||||
QDomElement diagram_xml_element = diagram_nodes.at(i).toElement();
|
||||
Diagram *diagram = new Diagram();
|
||||
diagram -> setProject(this);
|
||||
bool diagram_loading = diagram -> fromXml(diagram_xml_element);
|
||||
bool diagram_loading = diagram -> initFromXml(diagram_xml_element);
|
||||
if (diagram_loading) {
|
||||
// recupere l'attribut order du schema
|
||||
int diagram_order = -1;
|
||||
|
||||
Reference in New Issue
Block a user