summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@nokia.com>2011-12-08 14:29:24 +0100
committerDaniel Teske <daniel.teske@nokia.com>2011-12-08 17:20:55 +0100
commit90449d10e76c49fda0e9f107f8c24d3675ad2c57 (patch)
treec2366a19cbe2cb68739da54c96f9b4ef54274091 /src
parent8b1b49375446f4e76431292c50c40dfe7bf81e42 (diff)
downloadqt-creator-90449d10e76c49fda0e9f107f8c24d3675ad2c57.tar.gz
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>
Diffstat (limited to 'src')
-rw-r--r--src/libs/utils/detailswidget.cpp10
-rw-r--r--src/libs/utils/detailswidget.h3
-rw-r--r--src/plugins/projectexplorer/buildstep.h1
-rw-r--r--src/plugins/projectexplorer/buildstepspage.cpp10
4 files changed, 17 insertions, 7 deletions
diff --git a/src/libs/utils/detailswidget.cpp b/src/libs/utils/detailswidget.cpp
index 5e3cd1f9b3..97f8bdb5f0 100644
--- a/src/libs/utils/detailswidget.cpp
+++ b/src/libs/utils/detailswidget.cpp
@@ -139,8 +139,10 @@ QPixmap DetailsWidgetPrivate::cacheBackground(const QSize &size, bool expanded)
pixmap.fill(Qt::transparent);
QPainter p(&pixmap);
- int topHeight = qMax(m_detailsButton->height(),
- m_useCheckBox ? m_summaryCheckBox->height() : m_summaryLabel->height());
+ int topHeight = 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 fullRect(0, 0, size.width(), size.height());
#ifdef Q_WS_MAC
@@ -175,7 +177,7 @@ void DetailsWidgetPrivate::updateControls()
if (m_widget)
m_widget->setVisible(m_state == DetailsWidget::Expanded || m_state == DetailsWidget::NoSummary);
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_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());
const QRect paintArea(topLeft, contentsRect().bottomRight());
- if (d->m_state != Expanded) {
+ if (d->m_state == Collapsed) {
if (d->m_collapsedPixmap.isNull() ||
d->m_collapsedPixmap.size() != size())
d->m_collapsedPixmap = d->cacheBackground(paintArea.size(), false);
diff --git a/src/libs/utils/detailswidget.h b/src/libs/utils/detailswidget.h
index ac688ceac4..e15d354947 100644
--- a/src/libs/utils/detailswidget.h
+++ b/src/libs/utils/detailswidget.h
@@ -56,7 +56,8 @@ public:
enum State {
Expanded,
Collapsed,
- NoSummary
+ NoSummary,
+ OnlySummary
};
explicit DetailsWidget(QWidget *parent = 0);
diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h
index 37f2406e14..d0eb7f223d 100644
--- a/src/plugins/projectexplorer/buildstep.h
+++ b/src/plugins/projectexplorer/buildstep.h
@@ -140,6 +140,7 @@ public:
virtual QString summaryText() const = 0;
virtual QString additionalSummaryText() const { return QString(); }
virtual QString displayName() const = 0;
+ virtual bool showWidget() const { return true; }
signals:
void updateSummary();
diff --git a/src/plugins/projectexplorer/buildstepspage.cpp b/src/plugins/projectexplorer/buildstepspage.cpp
index e3637ee03b..b061118517 100644
--- a/src/plugins/projectexplorer/buildstepspage.cpp
+++ b/src/plugins/projectexplorer/buildstepspage.cpp
@@ -180,7 +180,9 @@ void BuildStepListWidget::init(BuildStepList *bsl)
for (int i = 0; i < bsl->count(); ++i) {
addBuildStep(i);
- m_buildStepsData.at(i)->detailsWidget->setState(Utils::DetailsWidget::Collapsed);
+ // 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_noStepsLabel->setVisible(bsl->isEmpty());
@@ -261,7 +263,11 @@ void BuildStepListWidget::addBuildStep(int pos)
BuildStep *newStep = m_buildStepList->at(pos);
addBuildStepWidget(pos, newStep);
BuildStepsWidgetData *s = m_buildStepsData.at(pos);
- s->detailsWidget->setState(Utils::DetailsWidget::Expanded);
+ // Expand new build steps by default
+ if (s->widget->showWidget())
+ s->detailsWidget->setState(Utils::DetailsWidget::Expanded);
+ else
+ s->detailsWidget->setState(Utils::DetailsWidget::OnlySummary);
m_noStepsLabel->setVisible(false);
updateBuildStepButtonsState();