summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets
diff options
context:
space:
mode:
authorChristian Ehrlicher <ch.ehrlicher@gmx.de>2018-02-12 22:44:32 +0100
committerChristian Ehrlicher <ch.ehrlicher@gmx.de>2018-02-15 20:00:23 +0000
commit23eab78f510a9cfb050980f522dc23409e23fbdb (patch)
tree2a515b8def09828c6792e9e258000c05e22f9558 /src/widgets/widgets
parentede6c447560b9419ee9d2991059e488a7d5a3208 (diff)
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 <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/widgets/widgets')
-rw-r--r--src/widgets/widgets/qtoolbarextension.cpp20
-rw-r--r--src/widgets/widgets/qtoolbarextension_p.h6
2 files changed, 23 insertions, 3 deletions
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 <qpixmap.h>
+#include <qevent.h>
#include <qstyle.h>
#include <qstylepainter.h>
#include <qstyleoption.h>
@@ -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"
diff --git a/src/widgets/widgets/qtoolbarextension_p.h b/src/widgets/widgets/qtoolbarextension_p.h
index a388f1e40f..146e0e58c1 100644
--- a/src/widgets/widgets/qtoolbarextension_p.h
+++ b/src/widgets/widgets/qtoolbarextension_p.h
@@ -69,6 +69,12 @@ public:
public Q_SLOTS:
void setOrientation(Qt::Orientation o);
+
+protected:
+ bool event(QEvent *e) override;
+
+private:
+ Qt::Orientation m_orientation;
};
QT_END_NAMESPACE