Complement au commit precedent : la verification de version ne prend plus place sur les schemas mais sur les projets

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@217 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavierqet
2007-11-24 22:20:39 +00:00
parent 8e799bed66
commit e0a2d02ab1
2 changed files with 19 additions and 18 deletions

View File

@@ -303,21 +303,6 @@ bool Diagram::fromXml(QDomDocument &document, QPointF position, bool consider_in
// le premier element doit etre un schema
if (root.tagName() != "diagram") return(false);
// verifie basiquement que la version actuelle est capable de lire ce fichier
if (root.hasAttribute("version")) {
bool conv_ok;
qreal diagram_version = root.attribute("version").toDouble(&conv_ok);
if (conv_ok && QET::version.toDouble() < diagram_version) {
QMessageBox::warning(
0,
tr("Avertissement"),
tr("Ce document semble avoir \351t\351 enregistr\351 avec une "
"version ult\351rieure de QElectroTech. Il est possible que "
"l'ouverture de tout ou partie de ce document \351choue.")
);
}
}
// lecture des attributs de ce schema
if (consider_informations) {
border_and_inset.setAuthor(root.attribute("author"));

View File

@@ -294,8 +294,9 @@ bool DiagramView::open(QString n_fichier, int *erreur) {
ouverts comme etant des fichiers separes
*/
// repere les schemas dans le fichier
QDomElement root = document.documentElement();
// cas 1 : l'element racine est un "diagram" : un seul schema, pas de probleme
if (document.documentElement().tagName() == "diagram") {
if (root.tagName() == "diagram") {
// construit le schema a partir du QDomDocument
QDomDocument &doc = document;
if (scene -> fromXml(doc)) {
@@ -309,11 +310,26 @@ bool DiagramView::open(QString n_fichier, int *erreur) {
return(false);
}
// cas 2 : l'element racine est un "project"
} else if (document.documentElement().tagName() == "project") {
} else if (root.tagName() == "project") {
// verifie basiquement que la version actuelle est capable de lire ce fichier
if (root.hasAttribute("version")) {
bool conv_ok;
qreal diagram_version = root.attribute("version").toDouble(&conv_ok);
if (conv_ok && QET::version.toDouble() < diagram_version) {
QMessageBox::warning(
0,
tr("Avertissement"),
tr("Ce document semble avoir \351t\351 enregistr\351 avec une "
"version ult\351rieure de QElectroTech. Il est possible que "
"l'ouverture de tout ou partie de ce document \351choue.")
);
}
}
// compte le nombre de schemas dans le projet
QList<QDomElement> diagrams;
QDomNodeList diagram_nodes = document.documentElement().elementsByTagName("diagram");
QDomNodeList diagram_nodes = root.elementsByTagName("diagram");
for (uint i = 0 ; i < diagram_nodes.length() ; ++ i) {
if (diagram_nodes.at(i).isElement()) {
diagrams << diagram_nodes.at(i).toElement();