From 8e833db5a6bc7e535502f11dd4139954740a3156 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Tue, 19 Jul 2016 23:21:53 +0300 Subject: [PATCH] ProjectExplorer: Replace QSignalMapper with lambdas Change-Id: Iaa7334ba3bddd7fe873796daac40e0c81c78c68e Reviewed-by: Tobias Hunger --- .../projectexplorer/buildstepspage.cpp | 75 +++++-------------- src/plugins/projectexplorer/buildstepspage.h | 10 --- 2 files changed, 20 insertions(+), 65 deletions(-) diff --git a/src/plugins/projectexplorer/buildstepspage.cpp b/src/plugins/projectexplorer/buildstepspage.cpp index 0fe9eca9c46..b00f0bdb4a5 100644 --- a/src/plugins/projectexplorer/buildstepspage.cpp +++ b/src/plugins/projectexplorer/buildstepspage.cpp @@ -38,8 +38,6 @@ #include #include -#include - #include #include #include @@ -341,15 +339,6 @@ void BuildStepListWidget::addBuildStepWidget(int pos, BuildStep *step) connect(s->step, &BuildStep::enabledChanged, this, &BuildStepListWidget::updateEnabledState); - - connect(s->toolWidget, &ToolWidget::disabledClicked, - m_disableMapper, static_cast(&QSignalMapper::map)); - connect(s->toolWidget, &ToolWidget::upClicked, - m_upMapper, static_cast(&QSignalMapper::map)); - connect(s->toolWidget, &ToolWidget::downClicked, - m_downMapper, static_cast(&QSignalMapper::map)); - connect(s->toolWidget, &ToolWidget::removeClicked, - m_removeMapper, static_cast(&QSignalMapper::map)); } void BuildStepListWidget::addBuildStep(int pos) @@ -367,11 +356,6 @@ void BuildStepListWidget::addBuildStep(int pos) updateBuildStepButtonsState(); } -void BuildStepListWidget::triggerStepMoveUp(int pos) -{ - m_buildStepList->moveStepUp(pos); -} - void BuildStepListWidget::stepMoved(int from, int to) { m_vbox->insertWidget(to, m_buildStepsData.at(from)->detailsWidget); @@ -383,21 +367,6 @@ void BuildStepListWidget::stepMoved(int from, int to) updateBuildStepButtonsState(); } -void BuildStepListWidget::triggerStepMoveDown(int pos) -{ - triggerStepMoveUp(pos + 1); -} - -void BuildStepListWidget::triggerRemoveBuildStep(int pos) -{ - if (!m_buildStepList->removeStep(pos)) { - QMessageBox::warning(Core::ICore::mainWindow(), - tr("Removing Step failed"), - tr("Cannot remove build step while building"), - QMessageBox::Ok, QMessageBox::Ok); - } -} - void BuildStepListWidget::removeBuildStep(int pos) { delete m_buildStepsData.takeAt(pos); @@ -408,31 +377,11 @@ void BuildStepListWidget::removeBuildStep(int pos) m_noStepsLabel->setVisible(hasSteps); } -void BuildStepListWidget::triggerDisable(int pos) -{ - BuildStep *bs = m_buildStepsData.at(pos)->step; - bs->setEnabled(!bs->enabled()); - m_buildStepsData.at(pos)->toolWidget->setBuildStepEnabled(bs->enabled()); -} - void BuildStepListWidget::setupUi() { if (m_addButton) return; - m_disableMapper = new QSignalMapper(this); - connect(m_disableMapper, static_cast(&QSignalMapper::mapped), - this, &BuildStepListWidget::triggerDisable); - m_upMapper = new QSignalMapper(this); - connect(m_upMapper, static_cast(&QSignalMapper::mapped), - this, &BuildStepListWidget::triggerStepMoveUp); - m_downMapper = new QSignalMapper(this); - connect(m_downMapper, static_cast(&QSignalMapper::mapped), - this, &BuildStepListWidget::triggerStepMoveDown); - m_removeMapper = new QSignalMapper(this); - connect(m_removeMapper, static_cast(&QSignalMapper::mapped), - this, &BuildStepListWidget::triggerRemoveBuildStep); - m_vbox = new QVBoxLayout(this); m_vbox->setContentsMargins(0, 0, 0, 0); m_vbox->setSpacing(0); @@ -464,18 +413,34 @@ void BuildStepListWidget::updateBuildStepButtonsState() return; for (int i = 0; i < m_buildStepsData.count(); ++i) { BuildStepsWidgetData *s = m_buildStepsData.at(i); - m_disableMapper->setMapping(s->toolWidget, i); + disconnect(s->toolWidget, nullptr, this, nullptr); + connect(s->toolWidget, &ToolWidget::disabledClicked, + this, [s] { + BuildStep *bs = s->step; + bs->setEnabled(!bs->enabled()); + s->toolWidget->setBuildStepEnabled(bs->enabled()); + }); s->toolWidget->setRemoveEnabled(!m_buildStepList->at(i)->immutable()); - m_removeMapper->setMapping(s->toolWidget, i); + connect(s->toolWidget, &ToolWidget::removeClicked, + this, [this, i] { + if (!m_buildStepList->removeStep(i)) { + QMessageBox::warning(Core::ICore::mainWindow(), + tr("Removing Step failed"), + tr("Cannot remove build step while building"), + QMessageBox::Ok, QMessageBox::Ok); + } + }); s->toolWidget->setUpEnabled((i > 0) && !(m_buildStepList->at(i)->immutable() && m_buildStepList->at(i - 1)->immutable())); - m_upMapper->setMapping(s->toolWidget, i); + connect(s->toolWidget, &ToolWidget::upClicked, + this, [this, i] { m_buildStepList->moveStepUp(i); }); s->toolWidget->setDownEnabled((i + 1 < m_buildStepList->count()) && !(m_buildStepList->at(i)->immutable() && m_buildStepList->at(i + 1)->immutable())); - m_downMapper->setMapping(s->toolWidget, i); + connect(s->toolWidget, &ToolWidget::downClicked, + this, [this, i] { m_buildStepList->moveStepUp(i + 1); }); // Only show buttons when needed s->toolWidget->setDownVisible(m_buildStepList->count() != 1); diff --git a/src/plugins/projectexplorer/buildstepspage.h b/src/plugins/projectexplorer/buildstepspage.h index bbb1396710b..9cf4fa848a9 100644 --- a/src/plugins/projectexplorer/buildstepspage.h +++ b/src/plugins/projectexplorer/buildstepspage.h @@ -34,7 +34,6 @@ class QPushButton; class QToolButton; class QLabel; class QVBoxLayout; -class QSignalMapper; class QGraphicsOpacityEffect; QT_END_NAMESPACE @@ -109,12 +108,8 @@ private: void updateSummary(); void updateAdditionalSummary(); void updateEnabledState(); - void triggerStepMoveUp(int pos); void stepMoved(int from, int to); - void triggerStepMoveDown(int pos); - void triggerRemoveBuildStep(int pos); void removeBuildStep(int pos); - void triggerDisable(int pos); void setupUi(); void updateBuildStepButtonsState(); @@ -129,11 +124,6 @@ private: QLabel *m_noStepsLabel; QPushButton *m_addButton; - QSignalMapper *m_disableMapper; - QSignalMapper *m_upMapper; - QSignalMapper *m_downMapper; - QSignalMapper *m_removeMapper; - int m_leftMargin; };