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);
|
||||
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);
|
||||
|
||||
@@ -56,7 +56,8 @@ public:
|
||||
enum State {
|
||||
Expanded,
|
||||
Collapsed,
|
||||
NoSummary
|
||||
NoSummary,
|
||||
OnlySummary
|
||||
};
|
||||
|
||||
explicit DetailsWidget(QWidget *parent = 0);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -180,6 +180,8 @@ void BuildStepListWidget::init(BuildStepList *bsl)
|
||||
|
||||
for (int i = 0; i < bsl->count(); ++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);
|
||||
}
|
||||
|
||||
@@ -261,7 +263,11 @@ void BuildStepListWidget::addBuildStep(int pos)
|
||||
BuildStep *newStep = m_buildStepList->at(pos);
|
||||
addBuildStepWidget(pos, newStep);
|
||||
BuildStepsWidgetData *s = m_buildStepsData.at(pos);
|
||||
// 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();
|
||||
|
||||
Reference in New Issue
Block a user