From 06d652e4a7b68f82a8aceddf7eec18838c6a3df0 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 20 Jul 2022 12:05:49 +0200 Subject: [PATCH] NavigationWidget: Avoid using sender() Change-Id: I6fd8935a9394f0b6ac3c435535f32796b26346d2 Reviewed-by: Eike Ziller Reviewed-by: --- src/plugins/coreplugin/navigationwidget.cpp | 33 +++++++-------------- src/plugins/coreplugin/navigationwidget.h | 4 +-- 2 files changed, 12 insertions(+), 25 deletions(-) diff --git a/src/plugins/coreplugin/navigationwidget.cpp b/src/plugins/coreplugin/navigationwidget.cpp index 1ecc00cf662..936a30c352c 100644 --- a/src/plugins/coreplugin/navigationwidget.cpp +++ b/src/plugins/coreplugin/navigationwidget.cpp @@ -335,10 +335,16 @@ Internal::NavigationSubWidget *NavigationWidget::insertSubItem(int position, int d->m_subWidgets.at(0)->setCloseIcon(Utils::Icons::CLOSE_SPLIT_BOTTOM.icon()); auto nsw = new Internal::NavigationSubWidget(this, position, factoryIndex); - connect(nsw, &Internal::NavigationSubWidget::splitMe, this, &NavigationWidget::splitSubWidget); - connect(nsw, &Internal::NavigationSubWidget::closeMe, this, &NavigationWidget::closeSubWidget); - connect(nsw, &Internal::NavigationSubWidget::factoryIndexChanged, - this, &NavigationWidget::onSubWidgetFactoryIndexChanged); + connect(nsw, &Internal::NavigationSubWidget::splitMe, this, [this, nsw](int factoryIndex) { + insertSubItem(indexOf(nsw) + 1, factoryIndex); + }); + connect(nsw, &Internal::NavigationSubWidget::closeMe, this, [this, nsw] { + closeSubWidget(nsw); + }); + connect(nsw, &Internal::NavigationSubWidget::factoryIndexChanged, this, [this, nsw] { + const Id factoryId = nsw->factory()->id(); + NavigationWidgetPrivate::updateActivationsMap(factoryId, {d->m_side, nsw->position()}); + }); insertWidget(position, nsw); d->m_subWidgets.insert(position, nsw); @@ -371,17 +377,9 @@ QWidget *NavigationWidget::activateSubWidget(Id factoryId, int preferredPosition return nullptr; } -void NavigationWidget::splitSubWidget(int factoryIndex) -{ - auto original = qobject_cast(sender()); - int pos = indexOf(original) + 1; - insertSubItem(pos, factoryIndex); -} - -void NavigationWidget::closeSubWidget() +void NavigationWidget::closeSubWidget(Internal::NavigationSubWidget *subWidget) { if (d->m_subWidgets.count() != 1) { - auto subWidget = qobject_cast(sender()); subWidget->saveSettings(); int position = d->m_subWidgets.indexOf(subWidget); @@ -553,15 +551,6 @@ QString NavigationWidget::settingsKey(const QString &key) const return QStringLiteral("%1/%2").arg(settingsGroup(), key); } -void NavigationWidget::onSubWidgetFactoryIndexChanged(int factoryIndex) -{ - Q_UNUSED(factoryIndex) - auto subWidget = qobject_cast(sender()); - QTC_ASSERT(subWidget, return); - Id factoryId = subWidget->factory()->id(); - NavigationWidgetPrivate::updateActivationsMap(factoryId, {d->m_side, subWidget->position()}); -} - QHash NavigationWidget::commandMap() const { return d->m_commandMap; diff --git a/src/plugins/coreplugin/navigationwidget.h b/src/plugins/coreplugin/navigationwidget.h index cfa983a43cb..9254bdf734d 100644 --- a/src/plugins/coreplugin/navigationwidget.h +++ b/src/plugins/coreplugin/navigationwidget.h @@ -116,13 +116,11 @@ protected: void resizeEvent(QResizeEvent *) override; private: - void splitSubWidget(int factoryIndex); - void closeSubWidget(); + void closeSubWidget(Internal::NavigationSubWidget *subWidget); void updateToggleText(); Internal::NavigationSubWidget *insertSubItem(int position, int factoryIndex); int factoryIndex(Utils::Id id); QString settingsKey(const QString &key) const; - void onSubWidgetFactoryIndexChanged(int factoryIndex); NavigationWidgetPrivate *d; };