diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-03-24 16:10:15 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-03-24 16:10:15 +0100 |
commit | 3b5c0bc0780f1749fed7c07bd8b691400a0282b7 (patch) | |
tree | 1022f5553ad5a0aca9b5f3b49ca38a01c2329d20 /src/widgets/widgets | |
parent | c79918733a194ebbe5a2fe1617c884659f3e4b9f (diff) | |
parent | 21f1738a94fc8544ece04b3b1ee03a11986fe59b (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
src/gui/image/qjpeghandler.cpp
Change-Id: I9db3acea7d5c82f5da679c8eaeb29431136665f0
Diffstat (limited to 'src/widgets/widgets')
-rw-r--r-- | src/widgets/widgets/qabstractscrollarea.cpp | 56 | ||||
-rw-r--r-- | src/widgets/widgets/qcombobox.cpp | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qlineedit_p.cpp | 12 | ||||
-rw-r--r-- | src/widgets/widgets/qlineedit_p.h | 3 | ||||
-rw-r--r-- | src/widgets/widgets/qmainwindow.cpp | 14 | ||||
-rw-r--r-- | src/widgets/widgets/qmenu.cpp | 22 | ||||
-rw-r--r-- | src/widgets/widgets/qmenu_p.h | 4 | ||||
-rw-r--r-- | src/widgets/widgets/qplaintextedit.cpp | 11 | ||||
-rw-r--r-- | src/widgets/widgets/qplaintextedit.h | 1 | ||||
-rw-r--r-- | src/widgets/widgets/qtoolbarlayout.cpp | 37 | ||||
-rw-r--r-- | src/widgets/widgets/qtoolbarlayout_p.h | 1 |
11 files changed, 110 insertions, 53 deletions
diff --git a/src/widgets/widgets/qabstractscrollarea.cpp b/src/widgets/widgets/qabstractscrollarea.cpp index db4ff8a2b7..e1e933cdd8 100644 --- a/src/widgets/widgets/qabstractscrollarea.cpp +++ b/src/widgets/widgets/qabstractscrollarea.cpp @@ -329,19 +329,21 @@ void QAbstractScrollAreaPrivate::setSingleFingerPanEnabled(bool on) void QAbstractScrollAreaPrivate::layoutChildren() { Q_Q(QAbstractScrollArea); - bool transient = q->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, vbar ? vbar : hbar); - bool needh = (hbarpolicy != Qt::ScrollBarAlwaysOff) && ((hbarpolicy == Qt::ScrollBarAlwaysOn && !transient) - || ((hbarpolicy == Qt::ScrollBarAsNeeded || transient) + bool htransient = hbar->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, hbar); + bool needh = (hbarpolicy != Qt::ScrollBarAlwaysOff) && ((hbarpolicy == Qt::ScrollBarAlwaysOn && !htransient) + || ((hbarpolicy == Qt::ScrollBarAsNeeded || htransient) && hbar->minimum() < hbar->maximum() && !hbar->sizeHint().isEmpty())); - bool needv = (vbarpolicy != Qt::ScrollBarAlwaysOff) && ((vbarpolicy == Qt::ScrollBarAlwaysOn && !transient) - || ((vbarpolicy == Qt::ScrollBarAsNeeded || transient) + bool vtransient = vbar->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, vbar); + bool needv = (vbarpolicy != Qt::ScrollBarAlwaysOff) && ((vbarpolicy == Qt::ScrollBarAlwaysOn && !vtransient) + || ((vbarpolicy == Qt::ScrollBarAsNeeded || vtransient) && vbar->minimum() < vbar->maximum() && !vbar->sizeHint().isEmpty())); QStyleOption opt(0); opt.init(q); - const int scrollOverlap = q->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarOverlap, - &opt, q); + + const int hscrollOverlap = hbar->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarOverlap, &opt, hbar); + const int vscrollOverlap = vbar->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarOverlap, &opt, vbar); #ifdef Q_WS_MAC QWidget * const window = q->window(); @@ -408,7 +410,7 @@ void QAbstractScrollAreaPrivate::layoutChildren() } #endif - QPoint cornerOffset((needv && scrollOverlap == 0) ? vsbExt : 0, (needh && scrollOverlap == 0) ? hsbExt : 0); + QPoint cornerOffset((needv && vscrollOverlap == 0) ? vsbExt : 0, (needh && hscrollOverlap == 0) ? hsbExt : 0); QRect controlsRect; QRect viewportRect; @@ -417,8 +419,8 @@ void QAbstractScrollAreaPrivate::layoutChildren() if ((frameStyle != QFrame::NoFrame) && q->style()->styleHint(QStyle::SH_ScrollView_FrameOnlyAroundContents, &opt, q)) { controlsRect = widgetRect; - const int extra = scrollOverlap + q->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarSpacing, &opt, q); - const QPoint cornerExtra(needv ? extra : 0, needh ? extra : 0); + const int spacing = q->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarSpacing, &opt, q); + const QPoint cornerExtra(needv ? spacing + vscrollOverlap : 0, needh ? spacing + hscrollOverlap : 0); QRect frameRect = widgetRect; frameRect.adjust(0, 0, -cornerOffset.x() - cornerExtra.x(), -cornerOffset.y() - cornerExtra.y()); q->setFrameRect(QStyle::visualRect(opt.direction, opt.rect, frameRect)); @@ -436,7 +438,7 @@ void QAbstractScrollAreaPrivate::layoutChildren() // If we have a corner widget and are only showing one scroll bar, we need to move it // to make room for the corner widget. - if (hasCornerWidget && (needv || needh) && scrollOverlap == 0) + if (hasCornerWidget && ((needv && vscrollOverlap == 0) || (needh && hscrollOverlap == 0))) cornerOffset = extPoint; #ifdef Q_WS_MAC @@ -452,7 +454,7 @@ void QAbstractScrollAreaPrivate::layoutChildren() // Some styles paints the corner if both scorllbars are showing and there is // no corner widget. Also, on the Mac we paint if there is a native // (transparent) sizegrip in the area where a corner widget would be. - if ((needv && needh && hasCornerWidget == false && scrollOverlap == 0) + if ((needv && needh && hasCornerWidget == false && hscrollOverlap == 0 && vscrollOverlap == 0) || ((needv || needh) #ifdef Q_WS_MAC && hasMacSizeGrip @@ -474,7 +476,7 @@ void QAbstractScrollAreaPrivate::layoutChildren() // move the scrollbars away from top/left headers int vHeaderRight = 0; int hHeaderBottom = 0; - if (scrollOverlap > 0 && (needv || needh)) { + if ((vscrollOverlap > 0 && needv) || (hscrollOverlap > 0 && needh)) { const QList<QHeaderView *> headers = q->findChildren<QHeaderView*>(); if (headers.count() <= 2) { Q_FOREACH (const QHeaderView *header, headers) { @@ -493,20 +495,22 @@ void QAbstractScrollAreaPrivate::layoutChildren() if (hasMacReverseSizeGrip) horizontalScrollBarRect.adjust(vsbExt, 0, 0, 0); #endif + if (!hasCornerWidget && htransient) #ifdef Q_OS_MAC - if (!hasCornerWidget && QSysInfo::macVersion() >= QSysInfo::MV_10_8 && transient) - horizontalScrollBarRect.adjust(0, 0, cornerOffset.x(), 0); + if (QSysInfo::macVersion() >= QSysInfo::MV_10_8) #endif + horizontalScrollBarRect.adjust(0, 0, cornerOffset.x(), 0); scrollBarContainers[Qt::Horizontal]->setGeometry(QStyle::visualRect(opt.direction, opt.rect, horizontalScrollBarRect)); scrollBarContainers[Qt::Horizontal]->raise(); } if (needv) { QRect verticalScrollBarRect (QPoint(cornerPoint.x(), controlsRect.top() + hHeaderBottom), QPoint(controlsRect.right(), cornerPoint.y() - 1)); + if (!hasCornerWidget && vtransient) #ifdef Q_OS_MAC - if (!hasCornerWidget && QSysInfo::macVersion() >= QSysInfo::MV_10_8 && transient) - verticalScrollBarRect.adjust(0, 0, 0, cornerOffset.y()); + if (QSysInfo::macVersion() >= QSysInfo::MV_10_8) #endif + verticalScrollBarRect.adjust(0, 0, 0, cornerOffset.y()); scrollBarContainers[Qt::Vertical]->setGeometry(QStyle::visualRect(opt.direction, opt.rect, verticalScrollBarRect)); scrollBarContainers[Qt::Vertical]->raise(); } @@ -957,10 +961,12 @@ bool QAbstractScrollArea::eventFilter(QObject *o, QEvent *e) { Q_D(QAbstractScrollArea); if ((o == d->hbar || o == d->vbar) && (e->type() == QEvent::HoverEnter || e->type() == QEvent::HoverLeave)) { - Qt::ScrollBarPolicy policy = o == d->hbar ? d->vbarpolicy : d->hbarpolicy; - if (policy == Qt::ScrollBarAsNeeded || style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, d->vbar ? d->vbar : d->hbar)) { - QScrollBar *sibling = o == d->hbar ? d->vbar : d->hbar; - d->setScrollBarTransient(sibling, e->type() == QEvent::HoverLeave); + if (d->hbarpolicy == Qt::ScrollBarAsNeeded && d->vbarpolicy == Qt::ScrollBarAsNeeded) { + QScrollBar *sbar = static_cast<QScrollBar*>(o); + QScrollBar *sibling = sbar == d->hbar ? d->vbar : d->hbar; + if (sbar->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, sbar) && + sibling->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, sibling)) + d->setScrollBarTransient(sibling, e->type() == QEvent::HoverLeave); } } return QFrame::eventFilter(o, e); @@ -1479,11 +1485,11 @@ bool QAbstractScrollAreaPrivate::canStartScrollingAt( const QPoint &startPos ) void QAbstractScrollAreaPrivate::flashScrollBars() { - Q_Q(QAbstractScrollArea); - bool transient = q->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, vbar ? vbar : hbar); - if ((hbarpolicy != Qt::ScrollBarAlwaysOff) && (hbarpolicy == Qt::ScrollBarAsNeeded || transient)) + bool htransient = hbar->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, hbar); + if ((hbarpolicy != Qt::ScrollBarAlwaysOff) && (hbarpolicy == Qt::ScrollBarAsNeeded || htransient)) hbar->d_func()->flash(); - if ((vbarpolicy != Qt::ScrollBarAlwaysOff) && (vbarpolicy == Qt::ScrollBarAsNeeded || transient)) + bool vtransient = vbar->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, vbar); + if ((vbarpolicy != Qt::ScrollBarAlwaysOff) && (vbarpolicy == Qt::ScrollBarAsNeeded || vtransient)) vbar->d_func()->flash(); } diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp index 17a6ededfe..e0f5ac1050 100644 --- a/src/widgets/widgets/qcombobox.cpp +++ b/src/widgets/widgets/qcombobox.cpp @@ -3057,6 +3057,8 @@ void QComboBox::keyReleaseEvent(QKeyEvent *e) Q_D(QComboBox); if (d->lineEdit) d->lineEdit->event(e); + else + QWidget::keyReleaseEvent(e); } /*! diff --git a/src/widgets/widgets/qlineedit_p.cpp b/src/widgets/widgets/qlineedit_p.cpp index 7521feb72d..adec9cae18 100644 --- a/src/widgets/widgets/qlineedit_p.cpp +++ b/src/widgets/widgets/qlineedit_p.cpp @@ -310,9 +310,7 @@ QLineEditIconButton::QLineEditIconButton(QWidget *parent) : QToolButton(parent) , m_opacity(0) { -#ifndef QT_NO_CURSOR - setCursor(Qt::ArrowCursor); -#endif + updateCursor(); setFocusPolicy(Qt::NoFocus); } @@ -343,11 +341,19 @@ void QLineEditIconButton::setOpacity(qreal value) void QLineEditIconButton::startOpacityAnimation(qreal endValue) { QPropertyAnimation *animation = new QPropertyAnimation(this, QByteArrayLiteral("opacity")); + connect(animation, &QAbstractAnimation::finished, this, &QLineEditIconButton::updateCursor); animation->setDuration(160); animation->setEndValue(endValue); animation->start(QAbstractAnimation::DeleteWhenStopped); } +void QLineEditIconButton::updateCursor() +{ +#ifndef QT_NO_CURSOR + setCursor(qFuzzyCompare(m_opacity, 1.0) || !parentWidget() ? QCursor(Qt::ArrowCursor) : parentWidget()->cursor()); +#endif +} + void QLineEditPrivate::_q_textChanged(const QString &text) { if (hasSideWidgets()) { diff --git a/src/widgets/widgets/qlineedit_p.h b/src/widgets/widgets/qlineedit_p.h index aa5b57a920..db8edee005 100644 --- a/src/widgets/widgets/qlineedit_p.h +++ b/src/widgets/widgets/qlineedit_p.h @@ -89,6 +89,9 @@ public: protected: void paintEvent(QPaintEvent *event); +private slots: + void updateCursor(); + private: void startOpacityAnimation(qreal endValue); diff --git a/src/widgets/widgets/qmainwindow.cpp b/src/widgets/widgets/qmainwindow.cpp index 07db78c06c..1d0268a244 100644 --- a/src/widgets/widgets/qmainwindow.cpp +++ b/src/widgets/widgets/qmainwindow.cpp @@ -1508,19 +1508,17 @@ void QMainWindow::setUnifiedTitleAndToolBarOnMac(bool set) #ifdef Q_OS_OSX Q_D(QMainWindow); if (isWindow()) { + d->useUnifiedToolBar = set; + createWinId(); + QPlatformNativeInterface *nativeInterface = QGuiApplication::platformNativeInterface(); QPlatformNativeInterface::NativeResourceForIntegrationFunction function = - nativeInterface->nativeResourceFunctionForIntegration("setContentBorderThickness"); + nativeInterface->nativeResourceFunctionForIntegration("enableContentBorderArea"); if (!function) return; // Not Cocoa platform plugin. - createWinId(); - - d->useUnifiedToolBar = set; - - const int toolBarHeight = 50; - typedef void (*SetContentBorderThicknessFunction)(QWindow *window, int topThickness, int bottomThickness); - (reinterpret_cast<SetContentBorderThicknessFunction>(function))(window()->windowHandle(), toolBarHeight, 0); + typedef void (*EnableContentBorderAreaFunction)(QWindow *window, bool enable); + (reinterpret_cast<EnableContentBorderAreaFunction>(function))(window()->windowHandle(), set); } #endif diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp index 2820608621..eb93e461c0 100644 --- a/src/widgets/widgets/qmenu.cpp +++ b/src/widgets/widgets/qmenu.cpp @@ -75,7 +75,6 @@ QT_BEGIN_NAMESPACE QMenu *QMenuPrivate::mouseDown = 0; -int QMenuPrivate::sloppyDelayTimer = 0; /* QMenu code */ // internal class used for the torn off popup @@ -433,10 +432,6 @@ QRect QMenuPrivate::actionRect(QAction *act) const return actionRects.at(index); } -#if defined(Q_OS_MAC) -static const qreal MenuFadeTimeInSec = 0.150; -#endif - void QMenuPrivate::hideUpToMenuBar() { Q_Q(QMenu); @@ -2891,6 +2886,7 @@ void QMenu::mouseMoveEvent(QMouseEvent *e) QAction *action = d->actionAt(e->pos()); if (!action || action->isSeparator()) { if (d->hasHadMouse + && d->sloppyDelayTimer == 0 // Keep things as they are while we're moving to the submenu && (!d->currentAction || (action && action->isSeparator()) || !(d->currentAction->menu() && d->currentAction->menu()->isVisible()))) d->setCurrentAction(0); @@ -2900,13 +2896,13 @@ void QMenu::mouseMoveEvent(QMouseEvent *e) } if (d->sloppyRegion.contains(e->pos())) { // If the timer is already running then don't start a new one unless the action is the same - if (d->sloppyAction != action && QMenuPrivate::sloppyDelayTimer != 0) { - killTimer(QMenuPrivate::sloppyDelayTimer); - QMenuPrivate::sloppyDelayTimer = 0; + if (d->sloppyAction != action && d->sloppyDelayTimer != 0) { + killTimer(d->sloppyDelayTimer); + d->sloppyDelayTimer = 0; } - if (QMenuPrivate::sloppyDelayTimer == 0) { + if (d->sloppyDelayTimer == 0) { d->sloppyAction = action; - QMenuPrivate::sloppyDelayTimer = startTimer(style()->styleHint(QStyle::SH_Menu_SubMenuPopupDelay, 0, this) * 6); + d->sloppyDelayTimer = startTimer(style()->styleHint(QStyle::SH_Menu_SubMenuPopupDelay, 0, this) * 6); } } else if (action != d->currentAction) { d->setCurrentAction(action, style()->styleHint(QStyle::SH_Menu_SubMenuPopupDelay, 0, this)); @@ -2948,9 +2944,9 @@ QMenu::timerEvent(QTimerEvent *e) } else if(d->menuDelayTimer.timerId() == e->timerId()) { d->menuDelayTimer.stop(); internalDelayedPopup(); - } else if(QMenuPrivate::sloppyDelayTimer == e->timerId()) { - killTimer(QMenuPrivate::sloppyDelayTimer); - QMenuPrivate::sloppyDelayTimer = 0; + } else if (d->sloppyDelayTimer == e->timerId()) { + killTimer(d->sloppyDelayTimer); + d->sloppyDelayTimer = 0; internalSetSloppyAction(); } else if(d->searchBufferTimer.timerId() == e->timerId()) { d->searchBuffer.clear(); diff --git a/src/widgets/widgets/qmenu_p.h b/src/widgets/widgets/qmenu_p.h index afd34a5c47..9d9851af64 100644 --- a/src/widgets/widgets/qmenu_p.h +++ b/src/widgets/widgets/qmenu_p.h @@ -92,7 +92,7 @@ public: cancelAction(0), #endif scroll(0), eventLoop(0), tearoff(0), tornoff(0), tearoffHighlighted(0), - hasCheckableItems(0), sloppyAction(0), doChildEffects(false), platformMenu(0) + hasCheckableItems(0), sloppyDelayTimer(0), sloppyAction(0), doChildEffects(false), platformMenu(0) #if defined(Q_OS_WINCE) && !defined(QT_NO_MENUBAR) ,wce_menu(0) @@ -204,7 +204,7 @@ public: mutable bool hasCheckableItems; //sloppy selection - static int sloppyDelayTimer; + int sloppyDelayTimer; mutable QAction *sloppyAction; QRegion sloppyRegion; diff --git a/src/widgets/widgets/qplaintextedit.cpp b/src/widgets/widgets/qplaintextedit.cpp index f6ec2a75aa..e41cb64463 100644 --- a/src/widgets/widgets/qplaintextedit.cpp +++ b/src/widgets/widgets/qplaintextedit.cpp @@ -1810,7 +1810,7 @@ void QPlainTextEdit::keyReleaseEvent(QKeyEvent *e) } } #else - Q_UNUSED(e); + QWidget::keyReleaseEvent(e); #endif } @@ -2185,6 +2185,13 @@ void QPlainTextEdit::scrollContentsBy(int dx, int /*dy*/) */ QVariant QPlainTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const { + return inputMethodQuery(property, QVariant()); +} + +/*!\internal + */ +QVariant QPlainTextEdit::inputMethodQuery(Qt::InputMethodQuery property, QVariant argument) const +{ Q_D(const QPlainTextEdit); QVariant v; switch (property) { @@ -2192,7 +2199,7 @@ QVariant QPlainTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const v = QWidget::inputMethodQuery(property); break; default: - v = d->control->inputMethodQuery(property, QVariant()); + v = d->control->inputMethodQuery(property, argument); const QPoint offset(-d->horizontalOffset(), -0); if (v.type() == QVariant::RectF) v = v.toRectF().toRect().translated(offset); diff --git a/src/widgets/widgets/qplaintextedit.h b/src/widgets/widgets/qplaintextedit.h index 1fb4625fb1..54cd3e14ed 100644 --- a/src/widgets/widgets/qplaintextedit.h +++ b/src/widgets/widgets/qplaintextedit.h @@ -185,6 +185,7 @@ public: int blockCount() const; QVariant inputMethodQuery(Qt::InputMethodQuery property) const; + Q_INVOKABLE QVariant inputMethodQuery(Qt::InputMethodQuery query, QVariant argument) const; public Q_SLOTS: diff --git a/src/widgets/widgets/qtoolbarlayout.cpp b/src/widgets/widgets/qtoolbarlayout.cpp index fe919feba9..020d180778 100644 --- a/src/widgets/widgets/qtoolbarlayout.cpp +++ b/src/widgets/widgets/qtoolbarlayout.cpp @@ -39,6 +39,7 @@ ** ****************************************************************************/ +#include <qapplication.h> #include <qaction.h> #include <qwidgetaction.h> #include <qtoolbar.h> @@ -47,6 +48,9 @@ #include <qmenu.h> #include <qdebug.h> #include <qmath.h> +#ifdef Q_OS_OSX +#include <qpa/qplatformnativeinterface.h> +#endif #include "qmainwindowlayout_p.h" #include "qtoolbarextension_p.h" @@ -341,6 +345,37 @@ static bool defaultWidgetAction(QToolBarItem *item) return a != 0 && a->defaultWidget() == item->widget(); } +void QToolBarLayout::updateMacBorderMetrics() +{ +#ifdef Q_OS_OSX + QToolBar *tb = qobject_cast<QToolBar*>(parentWidget()); + if (!tb) + return; + + QRect rect = geometry(); + + QMainWindow *mainWindow = qobject_cast<QMainWindow*>(tb->parentWidget()); + if (!mainWindow || !mainWindow->isWindow() || !mainWindow->unifiedTitleAndToolBarOnMac()) + return; + + QPlatformNativeInterface *nativeInterface = QApplication::platformNativeInterface(); + QPlatformNativeInterface::NativeResourceForIntegrationFunction function = + nativeInterface->nativeResourceFunctionForIntegration("registerContentBorderArea"); + if (!function) + return; // Not Cocoa platform plugin. + + QPoint upper = tb->mapToParent(rect.topLeft()); + QPoint lower = tb->mapToParent(rect.bottomLeft() + QPoint(0, 1)); + + typedef void (*RegisterContentBorderAreaFunction)(QWindow *window, void *identifier, int upper, int lower); + if (mainWindow->toolBarArea(tb) == Qt::TopToolBarArea) { + (reinterpret_cast<RegisterContentBorderAreaFunction>(function))(tb->window()->windowHandle(), this, upper.y(), lower.y()); + } else { + (reinterpret_cast<RegisterContentBorderAreaFunction>(function))(tb->window()->windowHandle(), this, 0, 0); + } +#endif +} + void QToolBarLayout::setGeometry(const QRect &rect) { QToolBar *tb = qobject_cast<QToolBar*>(parentWidget()); @@ -355,6 +390,8 @@ void QToolBarLayout::setGeometry(const QRect &rect) QLayout::setGeometry(rect); + updateMacBorderMetrics(); + bool ranOutOfSpace = false; if (!animating) ranOutOfSpace = layoutActions(rect.size()); diff --git a/src/widgets/widgets/qtoolbarlayout_p.h b/src/widgets/widgets/qtoolbarlayout_p.h index 8605a9a6ac..b250f3adee 100644 --- a/src/widgets/widgets/qtoolbarlayout_p.h +++ b/src/widgets/widgets/qtoolbarlayout_p.h @@ -111,6 +111,7 @@ public: void updateMarginAndSpacing(); bool hasExpandFlag() const; + void updateMacBorderMetrics(); public Q_SLOTS: void setExpanded(bool b); |