forked from qt-creator/qt-creator
ProjectExplorer: Replace QSignalMapper with lambdas
Change-Id: Iaa7334ba3bddd7fe873796daac40e0c81c78c68e Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
committed by
Orgad Shaneh
parent
008c4a222a
commit
8e833db5a6
@@ -38,8 +38,6 @@
|
|||||||
#include <utils/hostosinfo.h>
|
#include <utils/hostosinfo.h>
|
||||||
#include <utils/theme/theme.h>
|
#include <utils/theme/theme.h>
|
||||||
|
|
||||||
#include <QSignalMapper>
|
|
||||||
|
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
@@ -341,15 +339,6 @@ void BuildStepListWidget::addBuildStepWidget(int pos, BuildStep *step)
|
|||||||
|
|
||||||
connect(s->step, &BuildStep::enabledChanged,
|
connect(s->step, &BuildStep::enabledChanged,
|
||||||
this, &BuildStepListWidget::updateEnabledState);
|
this, &BuildStepListWidget::updateEnabledState);
|
||||||
|
|
||||||
connect(s->toolWidget, &ToolWidget::disabledClicked,
|
|
||||||
m_disableMapper, static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map));
|
|
||||||
connect(s->toolWidget, &ToolWidget::upClicked,
|
|
||||||
m_upMapper, static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map));
|
|
||||||
connect(s->toolWidget, &ToolWidget::downClicked,
|
|
||||||
m_downMapper, static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map));
|
|
||||||
connect(s->toolWidget, &ToolWidget::removeClicked,
|
|
||||||
m_removeMapper, static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildStepListWidget::addBuildStep(int pos)
|
void BuildStepListWidget::addBuildStep(int pos)
|
||||||
@@ -367,11 +356,6 @@ void BuildStepListWidget::addBuildStep(int pos)
|
|||||||
updateBuildStepButtonsState();
|
updateBuildStepButtonsState();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildStepListWidget::triggerStepMoveUp(int pos)
|
|
||||||
{
|
|
||||||
m_buildStepList->moveStepUp(pos);
|
|
||||||
}
|
|
||||||
|
|
||||||
void BuildStepListWidget::stepMoved(int from, int to)
|
void BuildStepListWidget::stepMoved(int from, int to)
|
||||||
{
|
{
|
||||||
m_vbox->insertWidget(to, m_buildStepsData.at(from)->detailsWidget);
|
m_vbox->insertWidget(to, m_buildStepsData.at(from)->detailsWidget);
|
||||||
@@ -383,21 +367,6 @@ void BuildStepListWidget::stepMoved(int from, int to)
|
|||||||
updateBuildStepButtonsState();
|
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)
|
void BuildStepListWidget::removeBuildStep(int pos)
|
||||||
{
|
{
|
||||||
delete m_buildStepsData.takeAt(pos);
|
delete m_buildStepsData.takeAt(pos);
|
||||||
@@ -408,31 +377,11 @@ void BuildStepListWidget::removeBuildStep(int pos)
|
|||||||
m_noStepsLabel->setVisible(hasSteps);
|
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()
|
void BuildStepListWidget::setupUi()
|
||||||
{
|
{
|
||||||
if (m_addButton)
|
if (m_addButton)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_disableMapper = new QSignalMapper(this);
|
|
||||||
connect(m_disableMapper, static_cast<void (QSignalMapper::*)(int)>(&QSignalMapper::mapped),
|
|
||||||
this, &BuildStepListWidget::triggerDisable);
|
|
||||||
m_upMapper = new QSignalMapper(this);
|
|
||||||
connect(m_upMapper, static_cast<void (QSignalMapper::*)(int)>(&QSignalMapper::mapped),
|
|
||||||
this, &BuildStepListWidget::triggerStepMoveUp);
|
|
||||||
m_downMapper = new QSignalMapper(this);
|
|
||||||
connect(m_downMapper, static_cast<void (QSignalMapper::*)(int)>(&QSignalMapper::mapped),
|
|
||||||
this, &BuildStepListWidget::triggerStepMoveDown);
|
|
||||||
m_removeMapper = new QSignalMapper(this);
|
|
||||||
connect(m_removeMapper, static_cast<void (QSignalMapper::*)(int)>(&QSignalMapper::mapped),
|
|
||||||
this, &BuildStepListWidget::triggerRemoveBuildStep);
|
|
||||||
|
|
||||||
m_vbox = new QVBoxLayout(this);
|
m_vbox = new QVBoxLayout(this);
|
||||||
m_vbox->setContentsMargins(0, 0, 0, 0);
|
m_vbox->setContentsMargins(0, 0, 0, 0);
|
||||||
m_vbox->setSpacing(0);
|
m_vbox->setSpacing(0);
|
||||||
@@ -464,18 +413,34 @@ void BuildStepListWidget::updateBuildStepButtonsState()
|
|||||||
return;
|
return;
|
||||||
for (int i = 0; i < m_buildStepsData.count(); ++i) {
|
for (int i = 0; i < m_buildStepsData.count(); ++i) {
|
||||||
BuildStepsWidgetData *s = m_buildStepsData.at(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());
|
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)
|
s->toolWidget->setUpEnabled((i > 0)
|
||||||
&& !(m_buildStepList->at(i)->immutable()
|
&& !(m_buildStepList->at(i)->immutable()
|
||||||
&& m_buildStepList->at(i - 1)->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())
|
s->toolWidget->setDownEnabled((i + 1 < m_buildStepList->count())
|
||||||
&& !(m_buildStepList->at(i)->immutable()
|
&& !(m_buildStepList->at(i)->immutable()
|
||||||
&& m_buildStepList->at(i + 1)->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
|
// Only show buttons when needed
|
||||||
s->toolWidget->setDownVisible(m_buildStepList->count() != 1);
|
s->toolWidget->setDownVisible(m_buildStepList->count() != 1);
|
||||||
|
@@ -34,7 +34,6 @@ class QPushButton;
|
|||||||
class QToolButton;
|
class QToolButton;
|
||||||
class QLabel;
|
class QLabel;
|
||||||
class QVBoxLayout;
|
class QVBoxLayout;
|
||||||
class QSignalMapper;
|
|
||||||
class QGraphicsOpacityEffect;
|
class QGraphicsOpacityEffect;
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
@@ -109,12 +108,8 @@ private:
|
|||||||
void updateSummary();
|
void updateSummary();
|
||||||
void updateAdditionalSummary();
|
void updateAdditionalSummary();
|
||||||
void updateEnabledState();
|
void updateEnabledState();
|
||||||
void triggerStepMoveUp(int pos);
|
|
||||||
void stepMoved(int from, int to);
|
void stepMoved(int from, int to);
|
||||||
void triggerStepMoveDown(int pos);
|
|
||||||
void triggerRemoveBuildStep(int pos);
|
|
||||||
void removeBuildStep(int pos);
|
void removeBuildStep(int pos);
|
||||||
void triggerDisable(int pos);
|
|
||||||
|
|
||||||
void setupUi();
|
void setupUi();
|
||||||
void updateBuildStepButtonsState();
|
void updateBuildStepButtonsState();
|
||||||
@@ -129,11 +124,6 @@ private:
|
|||||||
QLabel *m_noStepsLabel;
|
QLabel *m_noStepsLabel;
|
||||||
QPushButton *m_addButton;
|
QPushButton *m_addButton;
|
||||||
|
|
||||||
QSignalMapper *m_disableMapper;
|
|
||||||
QSignalMapper *m_upMapper;
|
|
||||||
QSignalMapper *m_downMapper;
|
|
||||||
QSignalMapper *m_removeMapper;
|
|
||||||
|
|
||||||
int m_leftMargin;
|
int m_leftMargin;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user