refactor: Uses single QML engine for all QML code (#323)

* refactor: Uses single QML engine for all QML code

* fix: Adds missing `QPointer` include

* Parents QML engine instance to plugin instance.

---------

Co-authored-by: Ivan Lebedev <ilebedev@flightpath3d.com>
Co-authored-by: Ivan Lebedev <ilebedev1988@gmail.com>
This commit is contained in:
Ivan Lebedev
2026-04-28 16:33:03 +02:00
committed by GitHub
parent bbb9c47cbb
commit 9bb6d55687
9 changed files with 45 additions and 21 deletions

View File

@@ -151,11 +151,13 @@ public:
UpdateDialog::checkForUpdatesAndShow(Core::ICore::mainWindow());
});
m_engine = new QQmlEngine{this};
if (Settings::chatAssistantSettings().enableChatInBottomToolBar()) {
m_chatOutputPane = new Chat::ChatOutputPane(this);
m_chatOutputPane = new Chat::ChatOutputPane{m_engine};
}
if (Settings::chatAssistantSettings().enableChatInNavigationPanel()) {
m_navigationPanel = new Chat::NavigationPanel();
m_navigationPanel = new Chat::NavigationPanel{m_engine};
}
Settings::setupProjectPanel();
@@ -204,7 +206,7 @@ public:
showChatViewAction.setIcon(QCODEASSIST_CHAT_ICON.icon());
showChatViewAction.addOnTriggered(this, [this] {
if (!m_chatView) {
m_chatView.reset(new Chat::ChatView());
m_chatView.reset(new Chat::ChatView{m_engine});
}
if (!m_chatView->isVisible()) {
@@ -302,6 +304,7 @@ private:
QString m_lastRefactorInstructions;
QScopedPointer<Chat::ChatView> m_chatView;
QPointer<Mcp::McpServerManager> m_mcpServerManager;
QPointer<QQmlEngine> m_engine;
};
} // namespace QodeAssist::Internal