From 23eab78f510a9cfb050980f522dc23409e23fbdb Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Mon, 12 Feb 2018 22:44:32 +0100 Subject: QToolBar: Fix QToolbar extension button icon after LayoutDirectionChange When the layout direction is changed after the QToolButton is created, the extension button icon was not updated. Task-number: QTBUG-66344 Change-Id: I8690b2c42c4f485a39490f16b15b8ee58e6f4ace Reviewed-by: Friedemann Kleint --- src/widgets/widgets/qtoolbarextension.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'src/widgets/widgets/qtoolbarextension.cpp') diff --git a/src/widgets/widgets/qtoolbarextension.cpp b/src/widgets/widgets/qtoolbarextension.cpp index 47cf16e0cc..bbe7eddaa4 100644 --- a/src/widgets/widgets/qtoolbarextension.cpp +++ b/src/widgets/widgets/qtoolbarextension.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "qtoolbarextension_p.h" -#include +#include #include #include #include @@ -47,10 +47,11 @@ QT_BEGIN_NAMESPACE QToolBarExtension::QToolBarExtension(QWidget *parent) : QToolButton(parent) + , m_orientation(Qt::Horizontal) { setObjectName(QLatin1String("qt_toolbar_ext_button")); setAutoRaise(true); - setOrientation(Qt::Horizontal); + setOrientation(m_orientation); setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); setCheckable(true); } @@ -63,7 +64,8 @@ void QToolBarExtension::setOrientation(Qt::Orientation o) setIcon(style()->standardIcon(QStyle::SP_ToolBarHorizontalExtensionButton, &opt)); } else { setIcon(style()->standardIcon(QStyle::SP_ToolBarVerticalExtensionButton, &opt)); - } + } + m_orientation = o; } void QToolBarExtension::paintEvent(QPaintEvent *) @@ -83,6 +85,18 @@ QSize QToolBarExtension::sizeHint() const return QSize(ext, ext); } +bool QToolBarExtension::event(QEvent *event) +{ + switch (event->type()) { + case QEvent::LayoutDirectionChange: + setOrientation(m_orientation); + break; + default: + break; + } + return QToolButton::event(event); +} + QT_END_NAMESPACE #include "moc_qtoolbarextension_p.cpp" -- cgit v1.2.3