diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2017-07-10 17:28:35 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2017-07-13 14:51:21 +0000 |
commit | 7b0166a6a4d43b50ce5814b50f97540353d2cc60 (patch) | |
tree | 9a7915b93efd42bf3371699db0d8d861e6dd358d | |
parent | ada1429594b2dfb24c743f79656f393028d0e340 (diff) |
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>
-rw-r--r-- | src/plugins/modeleditor/modelindexer.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/plugins/modeleditor/modelindexer.cpp b/src/plugins/modeleditor/modelindexer.cpp index 2c8a5d85f3..062244a1fe 100644 --- a/src/plugins/modeleditor/modelindexer.cpp +++ b/src/plugins/modeleditor/modelindexer.cpp @@ -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 |