summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets/qdockwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/widgets/qdockwidget.cpp')
-rw-r--r--src/widgets/widgets/qdockwidget.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/widgets/widgets/qdockwidget.cpp b/src/widgets/widgets/qdockwidget.cpp
index 84cb78a474..6c871aae2c 100644
--- a/src/widgets/widgets/qdockwidget.cpp
+++ b/src/widgets/widgets/qdockwidget.cpp
@@ -45,6 +45,7 @@
#include <qdrawutil.h>
#include <qevent.h>
#include <qfontmetrics.h>
+#include <qproxystyle.h>
#include <qwindow.h>
#include <qscreen.h>
#include <qmainwindow.h>
@@ -166,6 +167,10 @@ static inline bool isWindowsStyle(const QStyle *style)
if (style->inherits("QStyleSheetStyle"))
effectiveStyle = static_cast<const QStyleSheetStyle *>(style)->baseStyle();
#endif
+#if !defined(QT_NO_STYLE_PROXY)
+ if (style->inherits("QProxyStyle"))
+ effectiveStyle = static_cast<const QProxyStyle *>(style)->baseStyle();
+#endif
return effectiveStyle->inherits("QWindowsStyle");
}
@@ -691,7 +696,6 @@ void QDockWidget::initStyleOption(QStyleOptionDockWidget *option) const
// If we are in a floating tab, init from the parent because the attributes and the geometry
// of the title bar should be taken from the floating window.
option->initFrom(floatingTab && !isFloating() ? parentWidget() : this);
- option->fontMetrics = QFontMetrics(d->font);
option->rect = dwlayout->titleArea();
option->title = d->fixedWindowTitle;
option->closable = hasFeature(this, QDockWidget::DockWidgetClosable);
@@ -1468,6 +1472,7 @@ void QDockWidget::closeEvent(QCloseEvent *event)
void QDockWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event)
+ Q_D(QDockWidget);
QDockWidgetLayout *layout
= qobject_cast<QDockWidgetLayout*>(this->layout());
@@ -1488,7 +1493,11 @@ void QDockWidget::paintEvent(QPaintEvent *event)
// the title may wish to extend out to all sides (eg. Vista style)
QStyleOptionDockWidget titleOpt;
initStyleOption(&titleOpt);
- p.setFont(d_func()->font);
+ if (font() == QApplication::font("QDockWidget")) {
+ titleOpt.fontMetrics = QFontMetrics(d->font);
+ p.setFont(d->font);
+ }
+
p.drawControl(QStyle::CE_DockWidgetTitle, titleOpt);
}
}