diff --git a/sources/qetdiagrameditor.cpp b/sources/qetdiagrameditor.cpp index 8bb0977c9..0a714f045 100644 --- a/sources/qetdiagrameditor.cpp +++ b/sources/qetdiagrameditor.cpp @@ -794,7 +794,7 @@ bool QETDiagramEditor::openAndAddProject(const QString &filepath, bool interacti // cree le projet a partir du fichier QETProject *project = new QETProject(filepath); if (project -> state() != QETProject::Ok) { - if (interactive) { + if (interactive && project -> state() != QETProject::FileOpenDiscard) { QET::MessageBox::warning( this, tr("\311chec de l'ouverture du projet", "message box title"), @@ -807,6 +807,7 @@ bool QETDiagramEditor::openAndAddProject(const QString &filepath, bool interacti ).arg(filepath) ); } + delete project; return(false); } diff --git a/sources/qetproject.cpp b/sources/qetproject.cpp index 7f453dfbf..572fbd6db 100644 --- a/sources/qetproject.cpp +++ b/sources/qetproject.cpp @@ -827,17 +827,26 @@ void QETProject::readProjectXml() { bool conv_ok; project_qet_version_ = root_elmt.attribute("version").toDouble(&conv_ok); if (conv_ok && QET::version.toDouble() < project_qet_version_) { - QET::MessageBox::warning( + + int ret = QET::MessageBox::warning( 0, tr("Avertissement", "message box title"), 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.", + "document \351choue.\n" + "Que d\351sirez vous faire ?", "message box content" - ) + ), + QMessageBox::Open | QMessageBox::Cancel ); + + if (ret == QMessageBox::Cancel) { + state_ = FileOpenDiscard; + return; + } + } } diff --git a/sources/qetproject.h b/sources/qetproject.h index 48c2b8c3d..ae01486b2 100644 --- a/sources/qetproject.h +++ b/sources/qetproject.h @@ -65,7 +65,8 @@ class QETProject : public QObject { FileOpenFailed = 1, /// l'ouverture d'un fichier a echoue XmlParsingFailed = 2, /// l'analyse XML a echoue ProjectParsingRunning = 3, /// la lecture du projet est en cours - ProjectParsingFailed = 4 /// la lecture en tant que projet a echoue + ProjectParsingFailed = 4, /// la lecture en tant que projet a echoue + FileOpenDiscard = 5 /// the user cancelled the file opening }; // methodes