From 69a2204eb876d8a3433f67852aaffcf3bdc50e84 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 7 Apr 2021 17:47:49 +0200 Subject: [PATCH] Simplify KitAspectWidget interface Not really a widget anyways. Change-Id: I404cef102d6a6f4d3bd60860fe2bf2d58e3ca365 Reviewed-by: Christian Kandeler --- src/plugins/projectexplorer/kitmanager.cpp | 9 ++------- src/plugins/projectexplorer/kitmanager.h | 7 +------ .../projectexplorer/kitmanagerconfigwidget.cpp | 11 ++++++----- .../projectexplorer/miniprojecttargetselector.cpp | 7 ++++--- 4 files changed, 13 insertions(+), 21 deletions(-) diff --git a/src/plugins/projectexplorer/kitmanager.cpp b/src/plugins/projectexplorer/kitmanager.cpp index 10b9de9fe6f..c0539a06a8a 100644 --- a/src/plugins/projectexplorer/kitmanager.cpp +++ b/src/plugins/projectexplorer/kitmanager.cpp @@ -722,15 +722,10 @@ void KitAspect::notifyAboutUpdate(Kit *k) k->kitUpdated(); } -KitAspectWidget::KitAspectWidget(Kit *kit, const KitAspect *ki) : m_kit(kit), - m_kitInformation(ki), m_isSticky(kit->isSticky(ki->id())) +KitAspectWidget::KitAspectWidget(Kit *kit, const KitAspect *ki) + : m_kit(kit), m_kitInformation(ki) { } -Utils::Id KitAspectWidget::kitInformationId() const -{ - return m_kitInformation->id(); -} - void KitAspectWidget::addToLayout(LayoutBuilder &builder) { QTC_ASSERT(!m_label, delete m_label); diff --git a/src/plugins/projectexplorer/kitmanager.h b/src/plugins/projectexplorer/kitmanager.h index 99e9a40ac6a..dc0f0bc000f 100644 --- a/src/plugins/projectexplorer/kitmanager.h +++ b/src/plugins/projectexplorer/kitmanager.h @@ -132,11 +132,8 @@ class PROJECTEXPLORER_EXPORT KitAspectWidget : public QObject public: KitAspectWidget(Kit *kit, const KitAspect *ki); - Utils::Id kitInformationId() const; - virtual void makeReadOnly() = 0; virtual void refresh() = 0; - bool visibleInKit() { return m_kitInformation->isApplicableToKit(m_kit); } virtual QWidget *mainWidget() const = 0; virtual QWidget *buttonWidget() const { return nullptr; } @@ -144,16 +141,14 @@ public: void addToLayout(Utils::LayoutBuilder &builder); void setVisible(bool visible); - bool isSticky() const { return m_isSticky; } - static QString msgManage(); Kit *kit() const { return m_kit; } + const KitAspect *kitInformation() const { return m_kitInformation; } protected: Kit *m_kit; const KitAspect *m_kitInformation; - bool m_isSticky; QLabel *m_label = nullptr; }; diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp index 7d6cde800b0..de3f7f596e8 100644 --- a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp +++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp @@ -223,7 +223,7 @@ void KitManagerConfigWidget::addAspectToWorkingCopy(KitAspect *aspect) action->setCheckable(true); action->setChecked(workingCopy()->isMutable(aspect->id())); - action->setEnabled(!widget->isSticky()); + action->setEnabled(!workingCopy()->isSticky(aspect->id())); widget->mainWidget()->addAction(action); widget->mainWidget()->setContextMenuPolicy(Qt::ActionsContextMenu); connect(action, &QAction::toggled, this, [this, aspect, action] { @@ -243,9 +243,10 @@ void KitManagerConfigWidget::updateVisibility() int count = m_widgets.count(); for (int i = 0; i < count; ++i) { KitAspectWidget *widget = m_widgets.at(i); - const bool visible = widget->visibleInKit() - && !m_modifiedKit->irrelevantAspects().contains(widget->kitInformationId()); - widget->setVisible(visible); + const KitAspect *ki = widget->kitInformation(); + const bool visibleInKit = ki->isApplicableToKit(m_modifiedKit.get()); + const bool irrelevant = m_modifiedKit->irrelevantAspects().contains(ki->id()); + widget->setVisible(visibleInKit && !irrelevant); } } @@ -257,7 +258,7 @@ void KitManagerConfigWidget::setHasUniqueName(bool unique) void KitManagerConfigWidget::makeStickySubWidgetsReadOnly() { foreach (KitAspectWidget *w, m_widgets) { - if (w->isSticky()) + if (w->kit()->isSticky(w->kitInformation()->id())) w->makeReadOnly(); } } diff --git a/src/plugins/projectexplorer/miniprojecttargetselector.cpp b/src/plugins/projectexplorer/miniprojecttargetselector.cpp index f255c6bbf9d..b488eab8acd 100644 --- a/src/plugins/projectexplorer/miniprojecttargetselector.cpp +++ b/src/plugins/projectexplorer/miniprojecttargetselector.cpp @@ -611,16 +611,17 @@ private: return; bool addedMutables = false; - QList knownIdList = Utils::transform(m_widgets, &KitAspectWidget::kitInformationId); + QList knownList + = Utils::transform(m_widgets, &KitAspectWidget::kitInformation); for (KitAspect *aspect : KitManager::kitAspects()) { const Utils::Id currentId = aspect->id(); - if (m_kit->isMutable(currentId) && !knownIdList.removeOne(currentId)) { + if (m_kit->isMutable(currentId) && !knownList.removeOne(aspect)) { addedMutables = true; break; } } - const bool removedMutables = !knownIdList.isEmpty(); + const bool removedMutables = !knownList.isEmpty(); if (addedMutables || removedMutables) { // Redo whole setup if the number of mutable settings did change