diff options
author | con <qtc-committer@nokia.com> | 2009-07-16 18:04:08 +0200 |
---|---|---|
committer | con <qtc-committer@nokia.com> | 2009-07-16 18:08:41 +0200 |
commit | ee041b655979dc5dfa608fe08d03d261319f9166 (patch) | |
tree | 583d3119bdced4101360b6a30027f51f04a8048f /src/libs/utils/styledbar.cpp | |
parent | bb44837d7c7e1a1ac33d029b3613252b9d4b9f58 (diff) | |
download | qt-creator-ee041b655979dc5dfa608fe08d03d261319f9166.tar.gz |
Simplify drawing of styled bar by just using the style.
Diffstat (limited to 'src/libs/utils/styledbar.cpp')
-rw-r--r-- | src/libs/utils/styledbar.cpp | 63 |
1 files changed, 10 insertions, 53 deletions
diff --git a/src/libs/utils/styledbar.cpp b/src/libs/utils/styledbar.cpp index 99a86437d0..8911af6d6f 100644 --- a/src/libs/utils/styledbar.cpp +++ b/src/libs/utils/styledbar.cpp @@ -6,6 +6,7 @@ #include <QtGui/QPainter> #include <QtGui/QPixmapCache> #include <QtGui/QStyle> +#include <QtGui/QStyleOption> using namespace Core::Utils; @@ -30,48 +31,10 @@ void StyledBar::paintEvent(QPaintEvent *event) { Q_UNUSED(event) QPainter painter(this); - - QRect selfRect = rect(); - QString key; - key.sprintf("mh_toolbar %d %d %d", selfRect.width(), selfRect.height(), StyleHelper::baseColor().rgb());; - - QPixmap pixmap; - QPainter *p = &painter; - if (StyleHelper::usePixmapCache() && !QPixmapCache::find(key, pixmap)) { - pixmap = QPixmap(selfRect.size()); - p = new QPainter(&pixmap); - selfRect = QRect(0, 0, selfRect.width(), selfRect.height()); - } - - // Map offset for global window gradient - QPoint offset = window()->mapToGlobal(selfRect.topLeft()) - - mapToGlobal(selfRect.topLeft()); - QRect gradientSpan; - gradientSpan = QRect(offset, window()->size()); - StyleHelper::horizontalGradient(p, gradientSpan, selfRect); - - p->setPen(StyleHelper::borderColor()); - - // Note: This is a hack to determine if the - // toolbar should draw the top or bottom outline - // (needed for the find toolbar for instance) - QColor lighter(255, 255, 255, 40); - if (property("topBorder").toBool()) { - p->drawLine(selfRect.topLeft(), selfRect.topRight()); - p->setPen(lighter); - p->drawLine(selfRect.topLeft() + QPoint(0, 1), selfRect.topRight() + QPoint(0, 1)); - } else { - p->drawLine(selfRect.bottomLeft(), selfRect.bottomRight()); - p->setPen(lighter); - p->drawLine(selfRect.topLeft(), selfRect.topRight()); - } - - if (StyleHelper::usePixmapCache() && !QPixmapCache::find(key, pixmap)) { - painter.drawPixmap(selfRect.topLeft(), pixmap); - p->end(); - delete p; - QPixmapCache::insert(key, pixmap); - } + QStyleOption option; + option.rect = rect(); + option.state = QStyle::State_Horizontal; + style()->drawControl(QStyle::CE_ToolBar, &option, &painter, this); } StyledSeparator::StyledSeparator(QWidget *parent) @@ -84,15 +47,9 @@ void StyledSeparator::paintEvent(QPaintEvent *event) { Q_UNUSED(event) QPainter painter(this); - QRect selfRect = rect(); - - QColor separatorColor = StyleHelper::borderColor(); - separatorColor.setAlpha(100); - painter.setPen(separatorColor); - const int margin = 6; - const int offset = selfRect.width()/2; - painter.drawLine(selfRect.bottomLeft().x() + offset, - selfRect.bottomLeft().y() - margin, - selfRect.topLeft().x() + offset, - selfRect.topLeft().y() + margin); + QStyleOption option; + option.rect = rect(); + option.state = QStyle::State_Horizontal; + option.palette = palette(); + style()->drawPrimitive(QStyle::PE_IndicatorToolBarSeparator, &option, &painter, this); } |