QmlDesigner: Fix crash

The nullptr does crash. We can use a proper QmlJSQuickFixAssistInterface
created from the editor instead.

Task-number: QDS-9573
Change-Id: I5ea2792acb311c37e1005ff039ed7110503dfb4f
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Thomas Hartmann
2023-03-28 18:14:27 +02:00
parent 26365f34d4
commit 1c6e7c796b
3 changed files with 15 additions and 5 deletions

View File

@@ -246,13 +246,16 @@ void matchComponentFromObjectDefQuickFix(const QmlJSQuickFixAssistInterface *int
}
}
void performComponentFromObjectDef(const QString &fileName, QmlJS::AST::UiObjectDefinition *objDef)
void performComponentFromObjectDef(QmlJSEditorWidget *editor,
const QString &fileName,
QmlJS::AST::UiObjectDefinition *objDef)
{
QmlJSRefactoringChanges refactoring(QmlJS::ModelManagerInterface::instance(),
QmlJS::ModelManagerInterface::instance()->snapshot());
QmlJSRefactoringFilePtr current = refactoring.file(Utils::FilePath::fromString(fileName));
Operation operation(nullptr, objDef);
QmlJSQuickFixAssistInterface interface(editor, TextEditor::AssistReason::ExplicitlyInvoked);
Operation operation(&interface, objDef);
operation.performChanges(current, refactoring);
}

View File

@@ -8,10 +8,13 @@
namespace QmlJSEditor {
class QmlJSEditorWidget;
QMLJSEDITOR_EXPORT void matchComponentFromObjectDefQuickFix(
const Internal::QmlJSQuickFixAssistInterface *interface, QuickFixOperations &result);
QMLJSEDITOR_EXPORT void performComponentFromObjectDef
(const QString &fileName, QmlJS::AST::UiObjectDefinition *objDef);
QMLJSEDITOR_EXPORT void performComponentFromObjectDef(QmlJSEditorWidget *editor,
const QString &fileName,
QmlJS::AST::UiObjectDefinition *objDef);
} // namespace QmlJSEditor