diff --git a/customelement.cpp b/customelement.cpp index a80a9ea68..e2de99d44 100644 --- a/customelement.cpp +++ b/customelement.cpp @@ -1,6 +1,7 @@ #include "customelement.h" #include "elementtextitem.h" #include "diagram.h" +#include /** Constructeur de la classe ElementPerso. Permet d'instancier un element utilisable comme un element fixe a la difference que l'element perso lit @@ -58,6 +59,19 @@ CustomElement::CustomElement(QString &nom_fichier, QGraphicsItem *qgi, Diagram * return; } + // verifie basiquement que la version actuelle est capable de lire ce fichier + if (racine.hasAttribute("version")) { + bool conv_ok; + qreal element_version = racine.attribute("version").toDouble(&conv_ok); + if (conv_ok && QET::version.toDouble() < element_version) { + std::cerr << qPrintable( + QObject::tr("Avertissement : l'\351l\351ment ") + nom_fichier + + QObject::tr(" a \351t\351 enregistr\351 avec une version" + " ult\351rieure de QElectroTech.") + ); + } + } + // ces attributs doivent etre presents et valides int w, h, hot_x, hot_y; if ( diff --git a/diagram.cpp b/diagram.cpp index 74a518ad1..1adc74464 100644 --- a/diagram.cpp +++ b/diagram.cpp @@ -284,6 +284,21 @@ bool Diagram::fromXml(QDomDocument &document, QPointF position, bool consider_in // le premier element doit etre un schema if (racine.tagName() != "diagram") return(false); + // verifie basiquement que la version actuelle est capable de lire ce fichier + if (racine.hasAttribute("version")) { + bool conv_ok; + qreal diagram_version = racine.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(racine.attribute("author"));