summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets/qmdisubwindow.cpp
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@qt.io>2017-02-27 20:04:45 -0800
committerJake Petroules <jake.petroules@qt.io>2017-02-28 19:21:53 +0000
commit8d0b46c3ae506ee81d37755083708fbdee2a712c (patch)
tree7f6ddd1e5658c844fb3c2248df07b651251374a6 /src/widgets/widgets/qmdisubwindow.cpp
parent6ed4ff25352e4580e5792b8393981520a1800223 (diff)
Remove more tight coupling between QMdiSubWindow and QMacStyle
This technically just changes a compile time check to a run time check and better options should be explored later, but it removes the compile time dependency for now. Change-Id: I58c5599baf2c338e88bd558a82093835124d6f67 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/widgets/widgets/qmdisubwindow.cpp')
-rw-r--r--src/widgets/widgets/qmdisubwindow.cpp23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/widgets/widgets/qmdisubwindow.cpp b/src/widgets/widgets/qmdisubwindow.cpp
index a627c86871..34b64145e3 100644
--- a/src/widgets/widgets/qmdisubwindow.cpp
+++ b/src/widgets/widgets/qmdisubwindow.cpp
@@ -194,6 +194,11 @@ static const Qt::WindowFlags CustomizeWindowFlags =
static const int BoundaryMargin = 5;
+static inline bool isMacStyle(QStyle *style)
+{
+ return style->inherits("QMacStyle");
+}
+
static inline int getMoveDeltaComponent(uint cflags, uint moveFlag, uint resizeFlag,
int delta, int maxDelta, int minDelta)
{
@@ -1077,7 +1082,7 @@ void QMdiSubWindowPrivate::updateCursor()
#ifndef QT_NO_CURSOR
Q_Q(QMdiSubWindow);
#if QT_CONFIG(style_mac)
- if (qobject_cast<QMacStyle *>(q->style()))
+ if (isMacStyle(q->style()))
return;
#endif
@@ -1505,7 +1510,7 @@ void QMdiSubWindowPrivate::processClickedSubControl()
break;
case QStyle::SC_TitleBarMinButton:
#if QT_CONFIG(style_mac)
- if (qobject_cast<QMacStyle *>(q->style())) {
+ if (isMacStyle(q->style())) {
if (q->isMinimized())
q->showNormal();
else
@@ -1522,7 +1527,7 @@ void QMdiSubWindowPrivate::processClickedSubControl()
break;
case QStyle::SC_TitleBarMaxButton:
#if QT_CONFIG(style_mac)
- if (qobject_cast<QMacStyle *>(q->style())) {
+ if (isMacStyle(q->style())) {
if (q->isMaximized())
q->showNormal();
else
@@ -1569,7 +1574,7 @@ QRegion QMdiSubWindowPrivate::getRegion(Operation operation) const
QRegion region;
#if QT_CONFIG(style_mac)
- if (qobject_cast<QMacStyle *>(q->style()))
+ if (isMacStyle(q->style()))
return region;
#endif
@@ -2192,7 +2197,7 @@ void QMdiSubWindowPrivate::setSizeGrip(QSizeGrip *newSizeGrip)
newSizeGrip->setFixedSize(newSizeGrip->sizeHint());
bool putSizeGripInLayout = layout ? true : false;
#if QT_CONFIG(style_mac)
- if (qobject_cast<QMacStyle *>(q->style()))
+ if (isMacStyle(q->style()))
putSizeGripInLayout = false;
#endif
if (putSizeGripInLayout) {
@@ -2844,7 +2849,7 @@ bool QMdiSubWindow::event(QEvent *event)
d->isWidgetHiddenByUs = false;
if (!parent()) {
#if !defined(QT_NO_SIZEGRIP) && QT_CONFIG(style_mac)
- if (qobject_cast<QMacStyle *>(style()))
+ if (isMacStyle(style()))
delete d->sizeGrip;
#endif
setOption(RubberBandResize, false);
@@ -2939,7 +2944,7 @@ void QMdiSubWindow::showEvent(QShowEvent *showEvent)
}
#if !defined(QT_NO_SIZEGRIP) && QT_CONFIG(style_mac)
- if (qobject_cast<QMacStyle *>(style()) && !d->sizeGrip
+ if (isMacStyle(style()) && !d->sizeGrip
&& !(windowFlags() & Qt::FramelessWindowHint)) {
d->setSizeGrip(new QSizeGrip(this));
Q_ASSERT(d->sizeGrip);
@@ -3334,7 +3339,7 @@ void QMdiSubWindow::mouseMoveEvent(QMouseEvent *mouseEvent)
d->hoveredSubControl, this);
}
#if QT_CONFIG(style_mac)
- if (qobject_cast<QMacStyle *>(style()) && !hoverRegion.isEmpty())
+ if (isMacStyle(style()) && !hoverRegion.isEmpty())
hoverRegion += QRegion(0, 0, width(), d->titleBarHeight(options));
#endif
if (!hoverRegion.isEmpty())
@@ -3544,7 +3549,7 @@ QSize QMdiSubWindow::minimumSizeHint() const
if (d->sizeGrip && d->sizeGrip->isVisibleTo(const_cast<QMdiSubWindow *>(this)))
sizeGripHeight = d->sizeGrip->height();
#if QT_CONFIG(style_mac)
- else if (parent() && qobject_cast<QMacStyle *>(style()) && !d->sizeGrip)
+ else if (parent() && isMacStyle(style()) && !d->sizeGrip)
sizeGripHeight = style()->pixelMetric(QStyle::PM_SizeGripSize, 0, this);
#endif
minHeight = qMax(minHeight, decorationHeight + sizeGripHeight);