author | zecke <zecke> | 2002-10-11 22:32:31 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-10-11 22:32:31 (UTC) |
commit | ffa7f45a2100b7c438a437fce2d3a47608bd36e3 (patch) (unidiff) | |
tree | ccfa8b0c7490d2a271ff7f5edc19ae8e14e277f1 | |
parent | c8c961b4106f49f544195733cef17af5f15f6bb8 (diff) | |
download | opie-ffa7f45a2100b7c438a437fce2d3a47608bd36e3.zip opie-ffa7f45a2100b7c438a437fce2d3a47608bd36e3.tar.gz opie-ffa7f45a2100b7c438a437fce2d3a47608bd36e3.tar.bz2 |
Fix from drw for his widget. This sounds a bit paradox
Remove Page and Inserting one again crashed...
This patch fixes this problem
-rw-r--r-- | libopie/otabwidget.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libopie/otabwidget.cpp b/libopie/otabwidget.cpp index 1f3fbb0..6ef4034 100644 --- a/libopie/otabwidget.cpp +++ b/libopie/otabwidget.cpp | |||
@@ -89,17 +89,17 @@ OTabWidget::OTabWidget( QWidget *parent, const char *name, TabStyle s, TabPositi | |||
89 | tabBarStack->raiseWidget( tabList ); | 89 | tabBarStack->raiseWidget( tabList ); |
90 | } | 90 | } |
91 | 91 | ||
92 | if ( tabBarPosition == Bottom ) | 92 | if ( tabBarPosition == Bottom ) |
93 | { | 93 | { |
94 | tabBar->setShape( QTabBar::RoundedBelow ); | 94 | tabBar->setShape( QTabBar::RoundedBelow ); |
95 | } | 95 | } |
96 | 96 | ||
97 | tabs.setAutoDelete( TRUE ); | 97 | //tabs.setAutoDelete( TRUE ); |
98 | currentTab= 0x0; | 98 | currentTab= 0x0; |
99 | } | 99 | } |
100 | 100 | ||
101 | OTabWidget::~OTabWidget() | 101 | OTabWidget::~OTabWidget() |
102 | { | 102 | { |
103 | } | 103 | } |
104 | 104 | ||
105 | void OTabWidget::addTab( QWidget *child, const QString &icon, const QString &label ) | 105 | void OTabWidget::addTab( QWidget *child, const QString &icon, const QString &label ) |
@@ -135,17 +135,17 @@ void OTabWidget::addTab( QWidget *child, const QString &icon, const QString &lab | |||
135 | 135 | ||
136 | OTabInfo *tabinfo = new OTabInfo( tabid, child, icon, label ); | 136 | OTabInfo *tabinfo = new OTabInfo( tabid, child, icon, label ); |
137 | tabs.append( tabinfo ); | 137 | tabs.append( tabinfo ); |
138 | selectTab( tabinfo ); | 138 | selectTab( tabinfo ); |
139 | } | 139 | } |
140 | 140 | ||
141 | void OTabWidget::removePage( QWidget *childwidget ) | 141 | void OTabWidget::removePage( QWidget *childwidget ) |
142 | { | 142 | { |
143 | if ( childwidget ) | 143 | if ( childwidget ) |
144 | { | 144 | { |
145 | OTabInfo *tab = tabs.first(); | 145 | OTabInfo *tab = tabs.first(); |
146 | while ( tab && tab->control() != childwidget ) | 146 | while ( tab && tab->control() != childwidget ) |
147 | { | 147 | { |
148 | tab = tabs.next(); | 148 | tab = tabs.next(); |
149 | } | 149 | } |
150 | if ( tab && tab->control() == childwidget ) | 150 | if ( tab && tab->control() == childwidget ) |
151 | { | 151 | { |
@@ -157,16 +157,18 @@ void OTabWidget::removePage( QWidget *childwidget ) | |||
157 | i++; | 157 | i++; |
158 | } | 158 | } |
159 | if ( tabList->text( i ) == tab->label() ) | 159 | if ( tabList->text( i ) == tab->label() ) |
160 | { | 160 | { |
161 | tabList->removeItem( i ); | 161 | tabList->removeItem( i ); |
162 | } | 162 | } |
163 | widgetStack->removeWidget( childwidget ); | 163 | widgetStack->removeWidget( childwidget ); |
164 | tabs.remove( tab ); | 164 | tabs.remove( tab ); |
165 | delete tab; | ||
166 | currentTab = tabs.current(); | ||
165 | setUpLayout(); | 167 | setUpLayout(); |
166 | } | 168 | } |
167 | } | 169 | } |
168 | } | 170 | } |
169 | 171 | ||
170 | void OTabWidget::setCurrentTab( QWidget *childwidget ) | 172 | void OTabWidget::setCurrentTab( QWidget *childwidget ) |
171 | { | 173 | { |
172 | OTabInfo *newtab = tabs.first(); | 174 | OTabInfo *newtab = tabs.first(); |
@@ -244,17 +246,17 @@ QPixmap OTabWidget::loadSmooth( const QString &name ) | |||
244 | } | 246 | } |
245 | 247 | ||
246 | void OTabWidget::selectTab( OTabInfo *tab ) | 248 | void OTabWidget::selectTab( OTabInfo *tab ) |
247 | { | 249 | { |
248 | if ( tabBarStyle == IconTab ) | 250 | if ( tabBarStyle == IconTab ) |
249 | { | 251 | { |
250 | if ( currentTab ) | 252 | if ( currentTab ) |
251 | { | 253 | { |
252 | tabBar->tab( currentTab->id() )->setText( QString::null ); | 254 | tabBar->tab( currentTab->id() )->setText( "" ); |
253 | setUpLayout(); | 255 | setUpLayout(); |
254 | } | 256 | } |
255 | tabBar->tab( tab->id() )->setText( tab->label() ); | 257 | tabBar->tab( tab->id() )->setText( tab->label() ); |
256 | currentTab = tab; | 258 | currentTab = tab; |
257 | } | 259 | } |
258 | tabBar->setCurrentTab( tab->id() ); | 260 | tabBar->setCurrentTab( tab->id() ); |
259 | setUpLayout(); | 261 | setUpLayout(); |
260 | tabBar->update(); | 262 | tabBar->update(); |