summaryrefslogtreecommitdiffstats
path: root/src/widgets/styles/qwindowsstyle.cpp
diff options
context:
space:
mode:
authorJens Bache-Wiig <jens.bache-wiig@digia.com>2012-09-26 17:27:05 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-09-27 15:37:29 +0200
commit9bdd7e2239a3ff66ffc469834a094c9b5a111ab9 (patch)
treefde29f5b7571499d18b8ebd0c3616f389b8e7cf9 /src/widgets/styles/qwindowsstyle.cpp
parentb80216c9f38c6e129bc7c779f5b769f0aa86441b (diff)
More consistent dock widget painting on Windows
Before we would draw dock widget handles on windows classic and no handles on XP, Vista and Windows 8. This would make it very hard to make a consistent look and feel across those styles. I also added a workaround to avoid the redundant toolbar borders when they are used outside of the toolbar areas. Change-Id: Ib703453677fcac8d51b2180abe45527297af0a80 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Diffstat (limited to 'src/widgets/styles/qwindowsstyle.cpp')
-rw-r--r--src/widgets/styles/qwindowsstyle.cpp41
1 files changed, 10 insertions, 31 deletions
diff --git a/src/widgets/styles/qwindowsstyle.cpp b/src/widgets/styles/qwindowsstyle.cpp
index dccf88ac26..355ecf8a35 100644
--- a/src/widgets/styles/qwindowsstyle.cpp
+++ b/src/widgets/styles/qwindowsstyle.cpp
@@ -377,6 +377,9 @@ int QWindowsStyle::pixelMetric(PixelMetric pm, const QStyleOption *opt, const QW
case PM_MenuVMargin:
ret = 1;
break;
+ case PM_DockWidgetSeparatorExtent:
+ ret = int(QStyleHelper::dpiScaled(4.));
+ break;
#ifndef QT_NO_TABBAR
case PM_TabBarTabShiftHorizontal:
ret = 0;
@@ -1699,31 +1702,9 @@ void QWindowsStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt,
qDrawWinPanel(p, opt->rect, popupPal, opt->state & State_Sunken);
break; }
#ifndef QT_NO_DOCKWIDGET
- case PE_IndicatorDockWidgetResizeHandle: {
- QPen oldPen = p->pen();
- p->setPen(opt->palette.light().color());
- if (opt->state & State_Horizontal) {
- p->drawLine(opt->rect.left(), opt->rect.top(),
- opt->rect.right(), opt->rect.top());
- p->setPen(opt->palette.dark().color());
- p->drawLine(opt->rect.left(), opt->rect.bottom() - 1,
- opt->rect.right(), opt->rect.bottom() - 1);
- p->setPen(opt->palette.shadow().color());
- p->drawLine(opt->rect.left(), opt->rect.bottom(),
- opt->rect.right(), opt->rect.bottom());
- } else {
- p->drawLine(opt->rect.left(), opt->rect.top(),
- opt->rect.left(), opt->rect.bottom());
- p->setPen(opt->palette.dark().color());
- p->drawLine(opt->rect.right() - 1, opt->rect.top(),
- opt->rect.right() - 1, opt->rect.bottom());
- p->setPen(opt->palette.shadow().color());
- p->drawLine(opt->rect.right(), opt->rect.top(),
- opt->rect.right(), opt->rect.bottom());
- }
- p->setPen(oldPen);
- break; }
-case PE_FrameDockWidget:
+ case PE_IndicatorDockWidgetResizeHandle:
+ break;
+ case PE_FrameDockWidget:
if (qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
proxy()->drawPrimitive(QStyle::PE_FrameWindow, opt, p, w);
}
@@ -2286,8 +2267,11 @@ void QWindowsStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPai
#ifndef QT_NO_TOOLBAR
case CE_ToolBar:
if (const QStyleOptionToolBar *toolbar = qstyleoption_cast<const QStyleOptionToolBar *>(opt)) {
- QRect rect = opt->rect;
+ // Reserve the beveled appearance only for mainwindow toolbars
+ if (!(widget && qobject_cast<const QMainWindow*> (widget->parentWidget())))
+ break;
+ QRect rect = opt->rect;
bool paintLeftBorder = true;
bool paintRightBorder = true;
bool paintBottomBorder = true;
@@ -2513,11 +2497,6 @@ void QWindowsStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPai
}
p->fillRect(r.adjusted(0, 0, 0, -3), fillBrush);
}
- p->setPen(dwOpt->palette.color(QPalette::Light));
- if (!widget || !widget->isWindow()) {
- p->drawLine(r.topLeft(), r.topRight());
- p->setPen(dwOpt->palette.color(QPalette::Dark));
- p->drawLine(r.bottomLeft(), r.bottomRight()); }
}
if (!dwOpt->title.isEmpty()) {
QFont oldFont = p->font();