Modeling: Do not crash on invalid qmodel files in a project

Task-number: QTCREATORBUG-18526
Change-Id: I2947f9227c6f96b2b576ca6e942c3f27f28116b3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Jochen Becher <jochen_becher@gmx.de>
This commit is contained in:
Tobias Hunger
2017-07-10 17:28:35 +02:00
parent ada1429594
commit 7b0166a6a4

View File

@@ -27,6 +27,7 @@
#include "modeleditor_constants.h"
#include "qmt/infrastructure/exceptions.h"
#include "qmt/infrastructure/uid.h"
#include "qmt/serializer/projectserializer.h"
@@ -292,7 +293,12 @@ void ModelIndexer::IndexerThread::onFilesQueued()
// load model file
qmt::ProjectSerializer projectSerializer;
qmt::Project project;
projectSerializer.load(queuedFile.file(), &project);
try {
projectSerializer.load(queuedFile.file(), &project);
} catch (const qmt::Exception &e) {
qWarning() << e.errorMessage();
return;
}
locker.relock();
indexedModel->setModelUid(project.uid());
// add indexedModel to set of indexedModelsByUid