forked from qt-creator/qt-creator
Make BuildStepConfigWidget hideable
Some steps only want to show a summary text. Change-Id: I125fa90c13f0757ea78b6b50834c43b1beb484c5 Reviewed-by: Nikolai Kosjar Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
This commit is contained in:
@@ -139,8 +139,10 @@ QPixmap DetailsWidgetPrivate::cacheBackground(const QSize &size, bool expanded)
|
|||||||
pixmap.fill(Qt::transparent);
|
pixmap.fill(Qt::transparent);
|
||||||
QPainter p(&pixmap);
|
QPainter p(&pixmap);
|
||||||
|
|
||||||
int topHeight = qMax(m_detailsButton->height(),
|
int topHeight = m_useCheckBox ? m_summaryCheckBox->height() : m_summaryLabel->height();
|
||||||
m_useCheckBox ? m_summaryCheckBox->height() : m_summaryLabel->height());
|
if (m_state == DetailsWidget::Expanded || m_state == DetailsWidget::Collapsed) // Details Button is shown
|
||||||
|
topHeight = qMax(m_detailsButton->height(), topHeight);
|
||||||
|
|
||||||
QRect topRect(0, 0, size.width(), topHeight);
|
QRect topRect(0, 0, size.width(), topHeight);
|
||||||
QRect fullRect(0, 0, size.width(), size.height());
|
QRect fullRect(0, 0, size.width(), size.height());
|
||||||
#ifdef Q_WS_MAC
|
#ifdef Q_WS_MAC
|
||||||
@@ -175,7 +177,7 @@ void DetailsWidgetPrivate::updateControls()
|
|||||||
if (m_widget)
|
if (m_widget)
|
||||||
m_widget->setVisible(m_state == DetailsWidget::Expanded || m_state == DetailsWidget::NoSummary);
|
m_widget->setVisible(m_state == DetailsWidget::Expanded || m_state == DetailsWidget::NoSummary);
|
||||||
m_detailsButton->setChecked(m_state == DetailsWidget::Expanded && m_widget);
|
m_detailsButton->setChecked(m_state == DetailsWidget::Expanded && m_widget);
|
||||||
m_detailsButton->setVisible(m_state != DetailsWidget::NoSummary);
|
m_detailsButton->setVisible(m_state == DetailsWidget::Expanded || m_state == DetailsWidget::Collapsed);
|
||||||
m_summaryLabel->setVisible(m_state != DetailsWidget::NoSummary && !m_useCheckBox);
|
m_summaryLabel->setVisible(m_state != DetailsWidget::NoSummary && !m_useCheckBox);
|
||||||
m_summaryCheckBox->setVisible(m_state != DetailsWidget::NoSummary && m_useCheckBox);
|
m_summaryCheckBox->setVisible(m_state != DetailsWidget::NoSummary && m_useCheckBox);
|
||||||
|
|
||||||
@@ -269,7 +271,7 @@ void DetailsWidget::paintEvent(QPaintEvent *paintEvent)
|
|||||||
QPoint topLeft(topLeftWidget->geometry().left() - MARGIN, contentsRect().top());
|
QPoint topLeft(topLeftWidget->geometry().left() - MARGIN, contentsRect().top());
|
||||||
const QRect paintArea(topLeft, contentsRect().bottomRight());
|
const QRect paintArea(topLeft, contentsRect().bottomRight());
|
||||||
|
|
||||||
if (d->m_state != Expanded) {
|
if (d->m_state == Collapsed) {
|
||||||
if (d->m_collapsedPixmap.isNull() ||
|
if (d->m_collapsedPixmap.isNull() ||
|
||||||
d->m_collapsedPixmap.size() != size())
|
d->m_collapsedPixmap.size() != size())
|
||||||
d->m_collapsedPixmap = d->cacheBackground(paintArea.size(), false);
|
d->m_collapsedPixmap = d->cacheBackground(paintArea.size(), false);
|
||||||
|
|||||||
@@ -56,7 +56,8 @@ public:
|
|||||||
enum State {
|
enum State {
|
||||||
Expanded,
|
Expanded,
|
||||||
Collapsed,
|
Collapsed,
|
||||||
NoSummary
|
NoSummary,
|
||||||
|
OnlySummary
|
||||||
};
|
};
|
||||||
|
|
||||||
explicit DetailsWidget(QWidget *parent = 0);
|
explicit DetailsWidget(QWidget *parent = 0);
|
||||||
|
|||||||
@@ -140,6 +140,7 @@ public:
|
|||||||
virtual QString summaryText() const = 0;
|
virtual QString summaryText() const = 0;
|
||||||
virtual QString additionalSummaryText() const { return QString(); }
|
virtual QString additionalSummaryText() const { return QString(); }
|
||||||
virtual QString displayName() const = 0;
|
virtual QString displayName() const = 0;
|
||||||
|
virtual bool showWidget() const { return true; }
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void updateSummary();
|
void updateSummary();
|
||||||
|
|||||||
@@ -180,6 +180,8 @@ void BuildStepListWidget::init(BuildStepList *bsl)
|
|||||||
|
|
||||||
for (int i = 0; i < bsl->count(); ++i) {
|
for (int i = 0; i < bsl->count(); ++i) {
|
||||||
addBuildStep(i);
|
addBuildStep(i);
|
||||||
|
// addBuilStep expands the config widget by default, which we don't want here
|
||||||
|
if (m_buildStepsData.at(i)->widget->showWidget())
|
||||||
m_buildStepsData.at(i)->detailsWidget->setState(Utils::DetailsWidget::Collapsed);
|
m_buildStepsData.at(i)->detailsWidget->setState(Utils::DetailsWidget::Collapsed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -261,7 +263,11 @@ void BuildStepListWidget::addBuildStep(int pos)
|
|||||||
BuildStep *newStep = m_buildStepList->at(pos);
|
BuildStep *newStep = m_buildStepList->at(pos);
|
||||||
addBuildStepWidget(pos, newStep);
|
addBuildStepWidget(pos, newStep);
|
||||||
BuildStepsWidgetData *s = m_buildStepsData.at(pos);
|
BuildStepsWidgetData *s = m_buildStepsData.at(pos);
|
||||||
|
// Expand new build steps by default
|
||||||
|
if (s->widget->showWidget())
|
||||||
s->detailsWidget->setState(Utils::DetailsWidget::Expanded);
|
s->detailsWidget->setState(Utils::DetailsWidget::Expanded);
|
||||||
|
else
|
||||||
|
s->detailsWidget->setState(Utils::DetailsWidget::OnlySummary);
|
||||||
|
|
||||||
m_noStepsLabel->setVisible(false);
|
m_noStepsLabel->setVisible(false);
|
||||||
updateBuildStepButtonsState();
|
updateBuildStepButtonsState();
|
||||||
|
|||||||
Reference in New Issue
Block a user