aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2017-07-10 17:28:35 +0200
committerTobias Hunger <tobias.hunger@qt.io>2017-07-13 14:51:21 +0000
commit7b0166a6a4d43b50ce5814b50f97540353d2cc60 (patch)
tree9a7915b93efd42bf3371699db0d8d861e6dd358d
parentada1429594b2dfb24c743f79656f393028d0e340 (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.cpp8
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