diff options
author | con <qtc-committer@nokia.com> | 2010-02-01 17:22:05 +0100 |
---|---|---|
committer | con <qtc-committer@nokia.com> | 2010-02-01 18:34:46 +0100 |
commit | 255348643e9df7f7efa54ef0318db8ecbf1471d9 (patch) | |
tree | 6774d0ca6e26d330eb10370aa1c4a5522b6cb2e7 /src/libs/utils/detailswidget.cpp | |
parent | 61d52820ee10a711340fc0a9f24d4dcf71ee0ded (diff) | |
download | qt-creator-255348643e9df7f7efa54ef0318db8ecbf1471d9.tar.gz |
Remove the summary part from the most commonly used project configuration pages.
Reviewed-by: dt
Diffstat (limited to 'src/libs/utils/detailswidget.cpp')
-rw-r--r-- | src/libs/utils/detailswidget.cpp | 49 |
1 files changed, 26 insertions, 23 deletions
diff --git a/src/libs/utils/detailswidget.cpp b/src/libs/utils/detailswidget.cpp index bb190223b9..ba4ff259c0 100644 --- a/src/libs/utils/detailswidget.cpp +++ b/src/libs/utils/detailswidget.cpp @@ -58,6 +58,7 @@ DetailsWidget::DetailsWidget(QWidget *parent) : m_summaryLabel(new QLabel(this)), m_toolWidget(0), m_widget(0), + m_state(Collapsed), m_hovered(false) { m_summaryLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); @@ -69,11 +70,9 @@ DetailsWidget::DetailsWidget(QWidget *parent) : m_grid->addWidget(m_summaryLabel, 0, 1); m_grid->addWidget(m_detailsButton, 0, 2); - m_detailsButton->setEnabled(false); - m_summaryLabel->setEnabled(true); - connect(m_detailsButton, SIGNAL(toggled(bool)), this, SLOT(setExpanded(bool))); + updateControls(); } DetailsWidget::~DetailsWidget() @@ -90,7 +89,7 @@ void DetailsWidget::paintEvent(QPaintEvent *paintEvent) QPoint topLeft(m_summaryLabel->geometry().left(), contentsRect().top()); const QRect paintArea(topLeft, contentsRect().bottomRight()); - if (!isExpanded()) { + if (m_state != Expanded) { if (m_collapsedPixmap.isNull() || m_collapsedPixmap.size() != size()) m_collapsedPixmap = cacheBackground(paintArea.size(), false); @@ -125,23 +124,32 @@ QString DetailsWidget::summaryText() const return m_summaryLabel->text(); } -bool DetailsWidget::isExpanded() const +DetailsWidget::State DetailsWidget::state() const { - if (!m_widget) - return false; - return m_widget->isVisible(); + return m_state; } -void DetailsWidget::setExpanded(bool expand) +void DetailsWidget::setState(State state) { - if (!m_widget || isExpanded() == expand) + if (state == m_state) return; + m_state = state; + updateControls(); +} - m_summaryLabel->setEnabled(!expand); - m_widget->setVisible(expand); - m_detailsButton->setChecked(expand); +void DetailsWidget::setExpanded(bool expanded) +{ + setState(expanded ? Expanded : Collapsed); +} - emit expanded(expand); +void DetailsWidget::updateControls() +{ + if (m_widget) + m_widget->setVisible(m_state == Expanded || m_state == NoSummary); + m_detailsButton->setChecked(m_state == Expanded && m_widget); + m_summaryLabel->setEnabled(m_state == Collapsed && m_widget); + m_detailsButton->setVisible(m_state != NoSummary); + m_summaryLabel->setVisible(m_state != NoSummary); } QWidget *DetailsWidget::widget() const @@ -154,23 +162,18 @@ void DetailsWidget::setWidget(QWidget *widget) if (m_widget == widget) return; - const bool wasExpanded(isExpanded()); - - if (m_widget) + if (m_widget) { m_grid->removeWidget(m_widget); + delete m_widget; + } m_widget = widget; if (m_widget) { - m_widget->setVisible(wasExpanded); m_widget->setContentsMargins(MARGIN, MARGIN, MARGIN, MARGIN); m_grid->addWidget(m_widget, 1, 1, 1, 2); - m_detailsButton->setEnabled(true); - m_detailsButton->setChecked(wasExpanded); - } else { - m_detailsButton->setEnabled(false); - m_detailsButton->setChecked(false); } + updateControls(); } void DetailsWidget::setToolWidget(QWidget *widget) |