LanguageClient: show only one inspector widget at a time

Change-Id: I72630c85e9420ae873a57919e2d5434c83a5626c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2022-09-22 14:40:19 +02:00
parent bbd64a2c94
commit fbbf0d9149
3 changed files with 14 additions and 10 deletions

View File

@@ -335,11 +335,18 @@ private:
QListWidget *m_clients = nullptr;
};
QWidget *LspInspector::createWidget(const QString &defaultClient)
void LspInspector::show(const QString &defaultClient)
{
auto *inspector = new LspInspectorWidget(this);
inspector->selectClient(defaultClient);
return inspector;
if (!m_currentWidget) {
m_currentWidget = new LspInspectorWidget(this);
m_currentWidget->setAttribute(Qt::WA_DeleteOnClose);
Core::ICore::registerWindow(m_currentWidget, Core::Context("LanguageClient.Inspector"));
} else {
qApp->setActiveWindow(m_currentWidget);
}
if (!defaultClient.isEmpty())
static_cast<LspInspectorWidget *>(m_currentWidget.data())->selectClient(defaultClient);
m_currentWidget->show();
}
void LspInspector::log(const LspLogMessage::MessageSender sender,