diff options
author | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2016-01-08 17:43:04 +0100 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2016-01-22 16:38:23 +0000 |
commit | 39ee51674db3dbafa30646836ece7ced4db14273 (patch) | |
tree | 8ad33186af734f5f72dd0523f40ac413bf1d2a4c | |
parent | ced9575cf22a57e759b2e8c34ee0be60d35a2f56 (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.cpp | 14 |
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())) |