diff --git a/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp b/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp index 42dbbdd2a0e..f9255225058 100644 --- a/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp +++ b/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp @@ -123,6 +123,9 @@ QTextDocument *ComponentTextModifier::textDocument() const QString ComponentTextModifier::text() const { + if (m_componentStartOffset == -1) + return {}; + QString txt(m_originalModifier->text()); const int leader = m_componentStartOffset - m_rootStartOffset; diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index b8b2c427692..49845ab13fd 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -1044,6 +1044,15 @@ void TextToModelMerger::setupUsedImports() Document::MutablePtr TextToModelMerger::createParsedDocument(const QUrl &url, const QString &data, QList *errors) { + if (data.isEmpty()) { + if (errors) { + QmlJS::DiagnosticMessage msg; + msg.message = QObject::tr("Empty document"); + errors->append(DocumentMessage(msg, url)); + } + return {}; + } + const QString fileName = url.toLocalFile(); Dialect dialect = ModelManagerInterface::guessLanguageOfFile(fileName);