summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2016-01-08 17:43:04 +0100
committerOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2016-01-22 16:38:23 +0000
commit39ee51674db3dbafa30646836ece7ced4db14273 (patch)
tree8ad33186af734f5f72dd0523f40ac413bf1d2a4c
parentced9575cf22a57e759b2e8c34ee0be60d35a2f56 (diff)
bringToFront: fix handling of QTabWidgets
relying on them being handled implicitly by the QStackedWidget handling leaves the tab bars out of sync. Change-Id: Iecfc3600297846e70a48bc2ecf31921be29f48ab Reviewed-by: Frederic Marchal <frederic.marchal@wowtechnology.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
-rw-r--r--src/linguist/linguist/formpreviewview.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/linguist/linguist/formpreviewview.cpp b/src/linguist/linguist/formpreviewview.cpp
index 0c923c05f..31a736178 100644
--- a/src/linguist/linguist/formpreviewview.cpp
+++ b/src/linguist/linguist/formpreviewview.cpp
@@ -400,12 +400,16 @@ static void bringToFront(const TranslatableEntry &target)
for (QObject *obj = target.target.object; obj != 0; obj = obj->parent()) {
if (QWidget *w = qobject_cast<QWidget *>(obj)) {
#ifndef QT_NO_STACKEDWIDGET
- if (QStackedWidget *stack = qobject_cast<QStackedWidget *>(obj->parent()))
- stack->setCurrentWidget(w);
-#endif
+ if (QStackedWidget *stack = qobject_cast<QStackedWidget *>(obj->parent())) {
#ifndef QT_NO_TABWIDGET
- if (QTabWidget *tab = qobject_cast<QTabWidget *>(obj->parent()))
- tab->setCurrentWidget(w);
+ // Updating QTabWidget's embedded QStackedWidget does not update its
+ // QTabBar, so handle tab widgets explicitly.
+ if (QTabWidget *tab = qobject_cast<QTabWidget *>(stack->parent()))
+ tab->setCurrentWidget(w);
+ else
+#endif
+ stack->setCurrentWidget(w);
+ }
#endif
#ifndef QT_NO_TOOLBOX
if (QScrollArea *sv = qobject_cast<QScrollArea *>(obj->parent()))