forked from qt-creator/qt-creator
DetailsWidget: make cacheBackground public
Change-Id: Ib3725298f77f8ea878717e31bffceffc8bf1f7c6 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
@@ -69,7 +69,6 @@ class DetailsWidgetPrivate
|
|||||||
public:
|
public:
|
||||||
DetailsWidgetPrivate(QWidget *parent);
|
DetailsWidgetPrivate(QWidget *parent);
|
||||||
|
|
||||||
QPixmap cacheBackground(const QSize &size);
|
|
||||||
void updateControls();
|
void updateControls();
|
||||||
void changeHoverState(bool hovered);
|
void changeHoverState(bool hovered);
|
||||||
|
|
||||||
@@ -131,16 +130,12 @@ DetailsWidgetPrivate::DetailsWidgetPrivate(QWidget *parent) :
|
|||||||
m_grid->addWidget(m_additionalSummaryLabel, 1, 0, 1, 3);
|
m_grid->addWidget(m_additionalSummaryLabel, 1, 0, 1, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
QPixmap DetailsWidgetPrivate::cacheBackground(const QSize &size)
|
QPixmap DetailsWidget::createBackground(const QSize &size, int topHeight, QWidget *widget)
|
||||||
{
|
{
|
||||||
QPixmap pixmap(size);
|
QPixmap pixmap(size);
|
||||||
pixmap.fill(Qt::transparent);
|
pixmap.fill(Qt::transparent);
|
||||||
QPainter p(&pixmap);
|
QPainter p(&pixmap);
|
||||||
|
|
||||||
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 topRect(0, 0, size.width(), topHeight);
|
||||||
QRect fullRect(0, 0, size.width(), size.height());
|
QRect fullRect(0, 0, size.width(), size.height());
|
||||||
if (HostOsInfo::isMacHost())
|
if (HostOsInfo::isMacHost())
|
||||||
@@ -160,7 +155,7 @@ QPixmap DetailsWidgetPrivate::cacheBackground(const QSize &size)
|
|||||||
p.setBrush(Qt::NoBrush);
|
p.setBrush(Qt::NoBrush);
|
||||||
p.setPen(QColor(255,255,255,140));
|
p.setPen(QColor(255,255,255,140));
|
||||||
p.drawRoundedRect(fullRect.adjusted(1, 1, -2, -2), 2, 2);
|
p.drawRoundedRect(fullRect.adjusted(1, 1, -2, -2), 2, 2);
|
||||||
p.setPen(QPen(q->palette().color(QPalette::Mid)));
|
p.setPen(QPen(widget->palette().color(QPalette::Mid)));
|
||||||
|
|
||||||
return pixmap;
|
return pixmap;
|
||||||
}
|
}
|
||||||
@@ -263,15 +258,19 @@ 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());
|
||||||
|
|
||||||
|
int topHeight = d->m_useCheckBox ? d->m_summaryCheckBox->height() : d->m_summaryLabel->height();
|
||||||
|
if (d->m_state == DetailsWidget::Expanded || d->m_state == DetailsWidget::Collapsed) // Details Button is shown
|
||||||
|
topHeight = qMax(d->m_detailsButton->height(), topHeight);
|
||||||
|
|
||||||
if (d->m_state == Collapsed) {
|
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());
|
d->m_collapsedPixmap = createBackground(paintArea.size(), topHeight, this);
|
||||||
p.drawPixmap(paintArea, d->m_collapsedPixmap);
|
p.drawPixmap(paintArea, d->m_collapsedPixmap);
|
||||||
} else {
|
} else {
|
||||||
if (d->m_expandedPixmap.isNull() ||
|
if (d->m_expandedPixmap.isNull() ||
|
||||||
d->m_expandedPixmap.size() != size())
|
d->m_expandedPixmap.size() != size())
|
||||||
d->m_expandedPixmap = d->cacheBackground(paintArea.size());
|
d->m_expandedPixmap = createBackground(paintArea.size(), topHeight, this);
|
||||||
p.drawPixmap(paintArea, d->m_expandedPixmap);
|
p.drawPixmap(paintArea, d->m_expandedPixmap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,6 +86,8 @@ public:
|
|||||||
/// Sets an icon, only supported if useCheckBox is true
|
/// Sets an icon, only supported if useCheckBox is true
|
||||||
void setIcon(const QIcon &icon);
|
void setIcon(const QIcon &icon);
|
||||||
|
|
||||||
|
static QPixmap createBackground(const QSize &size, int topHeight, QWidget *widget);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void checked(bool);
|
void checked(bool);
|
||||||
void linkActivated(const QString &link);
|
void linkActivated(const QString &link);
|
||||||
|
|||||||
Reference in New Issue
Block a user