48 lines
1.6 KiB
Diff
48 lines
1.6 KiB
Diff
From 733d1afd03908d695aa8a6518f453b9ff0e5b8a2 Mon Sep 17 00:00:00 2001
|
|
From: Robert Knight <robertknight@gmail.com>
|
|
Date: Sun, 20 Apr 2008 16:28:31 +0200
|
|
Subject: [PATCH 05/13] When tabs are inserted or removed in a QTabBar,
|
|
QTabBarPrivate::refresh() is called to update the layout. If the
|
|
tabbar widget is hidden, this just sets a boolean variable
|
|
(layoutDirty) and returns, so the parent widget's layout is not
|
|
notified about the possible geometry change.
|
|
|
|
Prior to Qt 4.4 this was not a problem because the geometry was
|
|
recalculated in QTabBar::sizeHint() if the layoutDirty variable was
|
|
set. In Qt 4.4 however the layout caches size hint information in
|
|
QWidgetItemV2. Since the cache information is not invalidated, the
|
|
layout may end up using out-of-date size hint information to compute
|
|
the widget size.
|
|
|
|
If the QTabBar is empty when QTabBar::sizeHint() is called, it will
|
|
return a size with a height of 0, which will be kept in the cache and
|
|
so the tab bar will never be shown.
|
|
|
|
This patch fixes the problem by calling updateGeometry() whenever the
|
|
tab bar's layout is refreshed.
|
|
|
|
qt-bugs@ issue : 208185
|
|
Trolltech task ID : 208349
|
|
bugs.kde.org number : 159014
|
|
---
|
|
src/gui/widgets/qtabbar.cpp | 2 +-
|
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
|
|
diff --git a/src/gui/widgets/qtabbar.cpp b/src/gui/widgets/qtabbar.cpp
|
|
index 419d456..41107a0 100644
|
|
--- a/src/gui/widgets/qtabbar.cpp
|
|
+++ b/src/gui/widgets/qtabbar.cpp
|
|
@@ -678,8 +678,8 @@ void QTabBarPrivate::refresh()
|
|
layoutTabs();
|
|
makeVisible(currentIndex);
|
|
q->update();
|
|
- q->updateGeometry();
|
|
}
|
|
+ q->updateGeometry();
|
|
}
|
|
|
|
/*!
|
|
--
|
|
1.6.5.1
|
|
|