diff options
author | Gabriel de Dietrich <gabriel.dietrich-de@nokia.com> | 2010-04-23 08:22:44 (GMT) |
---|---|---|
committer | Gabriel de Dietrich <gabriel.dietrich-de@nokia.com> | 2010-04-23 09:18:52 (GMT) |
commit | 4743831d128dfad4ac9fbafa6e7544dbe7fb7ed2 (patch) | |
tree | bdf4fbcd035ac238efa1eb73bc60fd5105d7e2d0 /src | |
parent | 66da5958bc3ec0df60e76bb32ead94bfe7b2eac7 (diff) | |
download | Qt-4743831d128dfad4ac9fbafa6e7544dbe7fb7ed2.zip Qt-4743831d128dfad4ac9fbafa6e7544dbe7fb7ed2.tar.gz Qt-4743831d128dfad4ac9fbafa6e7544dbe7fb7ed2.tar.bz2 |
QTabBar: Widgets inside the tab bar where not properly laid out after moveTab()
Only the leftmost tab was being correctly laid out after the move due
to a mistake in QTabBarPrivate::layoutTab().
Auto-test included.
Reviewed-by: Thierry
Task-number: QTBUG-10052
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/widgets/qtabbar.cpp | 15 | ||||
-rw-r--r-- | src/gui/widgets/qtabbar_p.h | 2 |
2 files changed, 6 insertions, 11 deletions
diff --git a/src/gui/widgets/qtabbar.cpp b/src/gui/widgets/qtabbar.cpp index 7559311..d03a2f4 100644 --- a/src/gui/widgets/qtabbar.cpp +++ b/src/gui/widgets/qtabbar.cpp @@ -580,16 +580,10 @@ void QTabBarPrivate::layoutTab(int index) } } -void QTabBarPrivate::layoutWidgets(int index) +void QTabBarPrivate::layoutWidgets(int start) { Q_Q(QTabBar); - int start = 0; - int end = q->count(); - if (index != -1) { - start = qMax(index, 0); - end = qMin(end, start + 1); - } - for (int i = start; i < end; ++i) { + for (int i = start; i < q->count(); ++i) { layoutTab(i); } } @@ -1171,8 +1165,9 @@ void QTabBar::setCurrentIndex(int index) update(); d->makeVisible(index); d->tabList[index].lastTab = oldIndex; - d->layoutWidgets(oldIndex); - d->layoutWidgets(index); + if (oldIndex >= 0 && oldIndex < count()) + d->layoutTab(oldIndex); + d->layoutTab(index); #ifdef QT3_SUPPORT emit selected(index); #endif diff --git a/src/gui/widgets/qtabbar_p.h b/src/gui/widgets/qtabbar_p.h index 83636e6..37741f7 100644 --- a/src/gui/widgets/qtabbar_p.h +++ b/src/gui/widgets/qtabbar_p.h @@ -178,7 +178,7 @@ public: void refresh(); void layoutTabs(); - void layoutWidgets(int index = -1); + void layoutWidgets(int start = 0); void layoutTab(int index); void updateMacBorderMetrics(); void setupMovableTab(); |