-rw-r--r-- | libopie/otabwidget.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libopie/otabwidget.cpp b/libopie/otabwidget.cpp index 1b8c085..3a9a5ec 100644 --- a/libopie/otabwidget.cpp +++ b/libopie/otabwidget.cpp | |||
@@ -1,419 +1,419 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | 3 | ||
4 | Copyright (c) 2002 Dan Williams <williamsdr@acm.org> | 4 | Copyright (c) 2002 Dan Williams <williamsdr@acm.org> |
5 | =. | 5 | =. |
6 | .=l. | 6 | .=l. |
7 | .>+-= | 7 | .>+-= |
8 | _;:, .> :=|. This program is free software; you can | 8 | _;:, .> :=|. This program is free software; you can |
9 | .> <`_, > . <= redistribute it and/or modify it under | 9 | .> <`_, > . <= redistribute it and/or modify it under |
10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
11 | .="- .-=="i, .._ License as published by the Free Software | 11 | .="- .-=="i, .._ License as published by the Free Software |
12 | - . .-<_> .<> Foundation; either version 2 of the License, | 12 | - . .-<_> .<> Foundation; either version 2 of the License, |
13 | ._= =} : or (at your option) any later version. | 13 | ._= =} : or (at your option) any later version. |
14 | .%`+i> _;_. | 14 | .%`+i> _;_. |
15 | .i_,=:_. -<s. This program is distributed in the hope that | 15 | .i_,=:_. -<s. This program is distributed in the hope that |
16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
17 | : .. .:, . . . without even the implied warranty of | 17 | : .. .:, . . . without even the implied warranty of |
18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
20 | ..}^=.= = ; Library General Public License for more | 20 | ..}^=.= = ; Library General Public License for more |
21 | ++= -. .` .: details. | 21 | ++= -. .` .: details. |
22 | : = ...= . :.=- | 22 | : = ...= . :.=- |
23 | -. .:....=;==+<; You should have received a copy of the GNU | 23 | -. .:....=;==+<; You should have received a copy of the GNU |
24 | -_. . . )=. = Library General Public License along with | 24 | -_. . . )=. = Library General Public License along with |
25 | -- :-=` this library; see the file COPYING.LIB. | 25 | -- :-=` this library; see the file COPYING.LIB. |
26 | If not, write to the Free Software Foundation, | 26 | If not, write to the Free Software Foundation, |
27 | Inc., 59 Temple Place - Suite 330, | 27 | Inc., 59 Temple Place - Suite 330, |
28 | Boston, MA 02111-1307, USA. | 28 | Boston, MA 02111-1307, USA. |
29 | 29 | ||
30 | */ | 30 | */ |
31 | 31 | ||
32 | #include "otabwidget.h" | 32 | #include "otabwidget.h" |
33 | 33 | ||
34 | #include <qpe/applnk.h> | ||
34 | #include <qpe/config.h> | 35 | #include <qpe/config.h> |
35 | #include <qpe/resource.h> | 36 | #include <qpe/resource.h> |
36 | #include <opie/otabbar.h> | 37 | #include <opie/otabbar.h> |
37 | 38 | ||
38 | #include <qcombobox.h> | 39 | #include <qcombobox.h> |
39 | #include <qwidgetstack.h> | 40 | #include <qwidgetstack.h> |
40 | 41 | ||
41 | OTabWidget::OTabWidget( QWidget *parent, const char *name, TabStyle s, TabPosition p ) | 42 | OTabWidget::OTabWidget( QWidget *parent, const char *name, TabStyle s, TabPosition p ) |
42 | : QWidget( parent, name ) | 43 | : QWidget( parent, name ) |
43 | { | 44 | { |
44 | if ( s == Global ) | 45 | if ( s == Global ) |
45 | { | 46 | { |
46 | Config config( "qpe" ); | 47 | Config config( "qpe" ); |
47 | config.setGroup( "Appearance" ); | 48 | config.setGroup( "Appearance" ); |
48 | s = ( TabStyle ) config.readNumEntry( "TabStyle", (int) IconTab ); | 49 | s = ( TabStyle ) config.readNumEntry( "TabStyle", (int) IconTab ); |
49 | if ( s <= Global || s > IconList) | 50 | if ( s <= Global || s > IconList) |
50 | { | 51 | { |
51 | s = IconTab; | 52 | s = IconTab; |
52 | } | 53 | } |
53 | QString pos = config.readEntry( "TabPosition", "Top"); | 54 | QString pos = config.readEntry( "TabPosition", "Top"); |
54 | if ( pos == "Bottom" ) | 55 | if ( pos == "Bottom" ) |
55 | { | 56 | { |
56 | p = Bottom; | 57 | p = Bottom; |
57 | } | 58 | } |
58 | else | 59 | else |
59 | { | 60 | { |
60 | p = Top; | 61 | p = Top; |
61 | } | 62 | } |
62 | } | 63 | } |
63 | 64 | ||
64 | widgetStack = new QWidgetStack( this, "widgetstack" ); | 65 | widgetStack = new QWidgetStack( this, "widgetstack" ); |
65 | widgetStack->setFrameStyle( QFrame::NoFrame ); | 66 | widgetStack->setFrameStyle( QFrame::NoFrame ); |
66 | widgetStack->setLineWidth( style().defaultFrameWidth() ); | 67 | widgetStack->setLineWidth( style().defaultFrameWidth() ); |
67 | 68 | ||
68 | tabBarStack = new QWidgetStack( this, "tabbarstack" ); | 69 | tabBarStack = new QWidgetStack( this, "tabbarstack" ); |
69 | 70 | ||
70 | tabBar = new OTabBar( tabBarStack, "tabbar" ); | 71 | tabBar = new OTabBar( tabBarStack, "tabbar" ); |
71 | tabBarStack->addWidget( tabBar, 0 ); | 72 | tabBarStack->addWidget( tabBar, 0 ); |
72 | connect( tabBar, SIGNAL( selected( int ) ), this, SLOT( slotTabBarSelected( int ) ) ); | 73 | connect( tabBar, SIGNAL( selected( int ) ), this, SLOT( slotTabBarSelected( int ) ) ); |
73 | 74 | ||
74 | tabList = new QComboBox( false, tabBarStack, "tablist" ); | 75 | tabList = new QComboBox( false, tabBarStack, "tablist" ); |
75 | tabBarStack->addWidget( tabList, 1 ); | 76 | tabBarStack->addWidget( tabList, 1 ); |
76 | connect( tabList, SIGNAL( activated( int ) ), this, SLOT( slotTabListSelected( int ) ) ); | 77 | connect( tabList, SIGNAL( activated( int ) ), this, SLOT( slotTabListSelected( int ) ) ); |
77 | 78 | ||
78 | tabBarPosition = p; | 79 | tabBarPosition = p; |
79 | setTabStyle( s ); | 80 | setTabStyle( s ); |
80 | setTabPosition( p ); | 81 | setTabPosition( p ); |
81 | 82 | ||
82 | currTab= 0x0; | 83 | currTab= 0x0; |
83 | } | 84 | } |
84 | 85 | ||
85 | OTabWidget::~OTabWidget() | 86 | OTabWidget::~OTabWidget() |
86 | { | 87 | { |
87 | } | 88 | } |
88 | 89 | ||
89 | void OTabWidget::addTab( QWidget *child, const QString &icon, const QString &label ) | 90 | void OTabWidget::addTab( QWidget *child, const QString &icon, const QString &label ) |
90 | { | 91 | { |
91 | QPixmap iconset = loadSmooth( icon ); | 92 | QPixmap iconset = loadSmooth( icon ); |
92 | 93 | ||
93 | QTab *tab = new QTab(); | 94 | QTab *tab = new QTab(); |
94 | if ( tabBarStyle == IconTab ) | 95 | if ( tabBarStyle == IconTab ) |
95 | { | 96 | { |
96 | tab->label = QString::null; | 97 | tab->label = QString::null; |
97 | } | 98 | } |
98 | else | 99 | else |
99 | { | 100 | { |
100 | tab->label = label; | 101 | tab->label = label; |
101 | } | 102 | } |
102 | if ( tabBarStyle == IconTab || tabBarStyle == IconList ) | 103 | if ( tabBarStyle == IconTab || tabBarStyle == IconList ) |
103 | { | 104 | { |
104 | tab->iconset = new QIconSet( iconset ); | 105 | tab->iconset = new QIconSet( iconset ); |
105 | } | 106 | } |
106 | int tabid = tabBar->addTab( tab ); | 107 | int tabid = tabBar->addTab( tab ); |
107 | 108 | ||
108 | if ( tabBarStyle == IconTab || tabBarStyle == IconList ) | 109 | if ( tabBarStyle == IconTab || tabBarStyle == IconList ) |
109 | { | 110 | { |
110 | tabList->insertItem( iconset, label, -1 ); | 111 | tabList->insertItem( iconset, label, -1 ); |
111 | } | 112 | } |
112 | else | 113 | else |
113 | { | 114 | { |
114 | tabList->insertItem( label ); | 115 | tabList->insertItem( label ); |
115 | } | 116 | } |
116 | 117 | ||
117 | widgetStack->addWidget( child, tabid ); | 118 | widgetStack->addWidget( child, tabid ); |
118 | widgetStack->raiseWidget( child ); | 119 | widgetStack->raiseWidget( child ); |
119 | widgetStack->setFrameStyle( QFrame::StyledPanel | QFrame::Raised ); | 120 | widgetStack->setFrameStyle( QFrame::StyledPanel | QFrame::Raised ); |
120 | 121 | ||
121 | OTabInfo *tabinfo = new OTabInfo( tabid, child, icon, label ); | 122 | OTabInfo *tabinfo = new OTabInfo( tabid, child, icon, label ); |
122 | tabs.append( tabinfo ); | 123 | tabs.append( tabinfo ); |
123 | selectTab( tabinfo ); | 124 | selectTab( tabinfo ); |
124 | } | 125 | } |
125 | 126 | ||
126 | void OTabWidget::removePage( QWidget *childwidget ) | 127 | void OTabWidget::removePage( QWidget *childwidget ) |
127 | { | 128 | { |
128 | if ( childwidget ) | 129 | if ( childwidget ) |
129 | { | 130 | { |
130 | OTabInfo *tab = tabs.first(); | 131 | OTabInfo *tab = tabs.first(); |
131 | while ( tab && tab->control() != childwidget ) | 132 | while ( tab && tab->control() != childwidget ) |
132 | { | 133 | { |
133 | tab = tabs.next(); | 134 | tab = tabs.next(); |
134 | } | 135 | } |
135 | if ( tab && tab->control() == childwidget ) | 136 | if ( tab && tab->control() == childwidget ) |
136 | { | 137 | { |
137 | tabBar->setTabEnabled( tab->id(), FALSE ); | 138 | tabBar->setTabEnabled( tab->id(), FALSE ); |
138 | tabBar->removeTab( tabBar->tab( tab->id() ) ); | 139 | tabBar->removeTab( tabBar->tab( tab->id() ) ); |
139 | int i = 0; | 140 | int i = 0; |
140 | while ( i < tabList->count() && tabList->text( i ) != tab->label() ) | 141 | while ( i < tabList->count() && tabList->text( i ) != tab->label() ) |
141 | { | 142 | { |
142 | i++; | 143 | i++; |
143 | } | 144 | } |
144 | if ( tabList->text( i ) == tab->label() ) | 145 | if ( tabList->text( i ) == tab->label() ) |
145 | { | 146 | { |
146 | tabList->removeItem( i ); | 147 | tabList->removeItem( i ); |
147 | } | 148 | } |
148 | widgetStack->removeWidget( childwidget ); | 149 | widgetStack->removeWidget( childwidget ); |
149 | tabs.remove( tab ); | 150 | tabs.remove( tab ); |
150 | delete tab; | 151 | delete tab; |
151 | currTab = tabs.current(); | 152 | currTab = tabs.current(); |
152 | if ( !currTab ) | 153 | if ( !currTab ) |
153 | { | 154 | { |
154 | widgetStack->setFrameStyle( QFrame::NoFrame ); | 155 | widgetStack->setFrameStyle( QFrame::NoFrame ); |
155 | } | 156 | } |
156 | 157 | ||
157 | setUpLayout(); | 158 | setUpLayout(); |
158 | } | 159 | } |
159 | } | 160 | } |
160 | } | 161 | } |
161 | 162 | ||
162 | void OTabWidget::changeTab( QWidget *widget, const QString &iconset, const QString &label) | 163 | void OTabWidget::changeTab( QWidget *widget, const QString &iconset, const QString &label) |
163 | { | 164 | { |
164 | OTabInfo *currtab = tabs.first(); | 165 | OTabInfo *currtab = tabs.first(); |
165 | while ( currtab && currtab->control() != widget ) | 166 | while ( currtab && currtab->control() != widget ) |
166 | { | 167 | { |
167 | currtab = tabs.next(); | 168 | currtab = tabs.next(); |
168 | } | 169 | } |
169 | if ( currtab && currtab->control() == widget ) | 170 | if ( currtab && currtab->control() == widget ) |
170 | { | 171 | { |
171 | QTab *tab = tabBar->tab( currtab->id() ); | 172 | QTab *tab = tabBar->tab( currtab->id() ); |
172 | QPixmap icon( loadSmooth( iconset ) ); | 173 | QPixmap icon( loadSmooth( iconset ) ); |
173 | tab->setText( label ); | 174 | tab->setText( label ); |
174 | if ( tabBarStyle == IconTab ) | 175 | if ( tabBarStyle == IconTab ) |
175 | tab->setIconSet( icon ); | 176 | tab->setIconSet( icon ); |
176 | int i = 0; | 177 | int i = 0; |
177 | while ( i < tabList->count() && tabList->text( i ) != currtab->label() ) | 178 | while ( i < tabList->count() && tabList->text( i ) != currtab->label() ) |
178 | { | 179 | { |
179 | i++; | 180 | i++; |
180 | } | 181 | } |
181 | if ( i < tabList->count() && tabList->text( i ) == currtab->label() ) | 182 | if ( i < tabList->count() && tabList->text( i ) == currtab->label() ) |
182 | { | 183 | { |
183 | if ( tabBarStyle == IconTab || tabBarStyle == IconList ) | 184 | if ( tabBarStyle == IconTab || tabBarStyle == IconList ) |
184 | { | 185 | { |
185 | tabList->changeItem( icon, label, i ); | 186 | tabList->changeItem( icon, label, i ); |
186 | } | 187 | } |
187 | else | 188 | else |
188 | { | 189 | { |
189 | tabList->changeItem( label, i ); | 190 | tabList->changeItem( label, i ); |
190 | } | 191 | } |
191 | } | 192 | } |
192 | currtab->setLabel( label ); | 193 | currtab->setLabel( label ); |
193 | currtab->setIcon( iconset ); | 194 | currtab->setIcon( iconset ); |
194 | } | 195 | } |
195 | setUpLayout(); | 196 | setUpLayout(); |
196 | } | 197 | } |
197 | 198 | ||
198 | void OTabWidget::setCurrentTab( QWidget *childwidget ) | 199 | void OTabWidget::setCurrentTab( QWidget *childwidget ) |
199 | { | 200 | { |
200 | OTabInfo *currtab = tabs.first(); | 201 | OTabInfo *currtab = tabs.first(); |
201 | while ( currtab && currtab->control() != childwidget ) | 202 | while ( currtab && currtab->control() != childwidget ) |
202 | { | 203 | { |
203 | currtab = tabs.next(); | 204 | currtab = tabs.next(); |
204 | } | 205 | } |
205 | if ( currtab && currtab->control() == childwidget ) | 206 | if ( currtab && currtab->control() == childwidget ) |
206 | { | 207 | { |
207 | selectTab( currtab ); | 208 | selectTab( currtab ); |
208 | } | 209 | } |
209 | } | 210 | } |
210 | 211 | ||
211 | void OTabWidget::setCurrentTab( const QString &tabname ) | 212 | void OTabWidget::setCurrentTab( const QString &tabname ) |
212 | { | 213 | { |
213 | OTabInfo *newtab = tabs.first(); | 214 | OTabInfo *newtab = tabs.first(); |
214 | while ( newtab && newtab->label() != tabname ) | 215 | while ( newtab && newtab->label() != tabname ) |
215 | { | 216 | { |
216 | newtab = tabs.next(); | 217 | newtab = tabs.next(); |
217 | } | 218 | } |
218 | if ( newtab && newtab->label() == tabname ) | 219 | if ( newtab && newtab->label() == tabname ) |
219 | { | 220 | { |
220 | selectTab( newtab ); | 221 | selectTab( newtab ); |
221 | } | 222 | } |
222 | } | 223 | } |
223 | 224 | ||
224 | void OTabWidget::setCurrentTab(int tabindex) { | 225 | void OTabWidget::setCurrentTab(int tabindex) { |
225 | OTabInfo *newtab = tabs.first(); | 226 | OTabInfo *newtab = tabs.first(); |
226 | while ( newtab && newtab->id() != tabindex ) | 227 | while ( newtab && newtab->id() != tabindex ) |
227 | { | 228 | { |
228 | newtab = tabs.next(); | 229 | newtab = tabs.next(); |
229 | } | 230 | } |
230 | if ( newtab && newtab->id() == tabindex ) | 231 | if ( newtab && newtab->id() == tabindex ) |
231 | { | 232 | { |
232 | selectTab( newtab ); | 233 | selectTab( newtab ); |
233 | } | 234 | } |
234 | } | 235 | } |
235 | 236 | ||
236 | 237 | ||
237 | OTabWidget::TabStyle OTabWidget::tabStyle() const | 238 | OTabWidget::TabStyle OTabWidget::tabStyle() const |
238 | { | 239 | { |
239 | return tabBarStyle; | 240 | return tabBarStyle; |
240 | } | 241 | } |
241 | 242 | ||
242 | void OTabWidget::setTabStyle( TabStyle s ) | 243 | void OTabWidget::setTabStyle( TabStyle s ) |
243 | { | 244 | { |
244 | tabBarStyle = s; | 245 | tabBarStyle = s; |
245 | if ( tabBarStyle == TextTab || tabBarStyle == IconTab ) | 246 | if ( tabBarStyle == TextTab || tabBarStyle == IconTab ) |
246 | { | 247 | { |
247 | QTab *currtab; | 248 | QTab *currtab; |
248 | for ( OTabInfo *tabinfo = tabs.first(); tabinfo; tabinfo = tabs.next() ) | 249 | for ( OTabInfo *tabinfo = tabs.first(); tabinfo; tabinfo = tabs.next() ) |
249 | { | 250 | { |
250 | currtab = tabBar->tab( tabinfo->id() ); | 251 | currtab = tabBar->tab( tabinfo->id() ); |
251 | if ( tabBarStyle == IconTab ) | 252 | if ( tabBarStyle == IconTab ) |
252 | { | 253 | { |
253 | currtab->iconset = new QIconSet( loadSmooth( tabinfo->icon() ) ); | 254 | currtab->iconset = new QIconSet( loadSmooth( tabinfo->icon() ) ); |
254 | if ( tabinfo == currTab ) | 255 | if ( tabinfo == currTab ) |
255 | currtab->setText( tabinfo->label() ); | 256 | currtab->setText( tabinfo->label() ); |
256 | else | 257 | else |
257 | currtab->setText( QString::null ); | 258 | currtab->setText( QString::null ); |
258 | } | 259 | } |
259 | else | 260 | else |
260 | { | 261 | { |
261 | currtab->iconset = 0x0; | 262 | currtab->iconset = 0x0; |
262 | currtab->setText( tabinfo->label() ); | 263 | currtab->setText( tabinfo->label() ); |
263 | } | 264 | } |
264 | } | 265 | } |
265 | tabBarStack->raiseWidget( tabBar ); | 266 | tabBarStack->raiseWidget( tabBar ); |
266 | } | 267 | } |
267 | else if ( tabBarStyle == TextList || tabBarStyle == IconList ) | 268 | else if ( tabBarStyle == TextList || tabBarStyle == IconList ) |
268 | { | 269 | { |
269 | tabList->clear(); | 270 | tabList->clear(); |
270 | for ( OTabInfo *tabinfo = tabs.first(); tabinfo; tabinfo = tabs.next() ) | 271 | for ( OTabInfo *tabinfo = tabs.first(); tabinfo; tabinfo = tabs.next() ) |
271 | { | 272 | { |
272 | if ( tabBarStyle == IconList ) | 273 | if ( tabBarStyle == IconList ) |
273 | { | 274 | { |
274 | tabList->insertItem( loadSmooth( tabinfo->icon() ), tabinfo->label() ); | 275 | tabList->insertItem( loadSmooth( tabinfo->icon() ), tabinfo->label() ); |
275 | } | 276 | } |
276 | else | 277 | else |
277 | { | 278 | { |
278 | tabList->insertItem( tabinfo->label() ); | 279 | tabList->insertItem( tabinfo->label() ); |
279 | } | 280 | } |
280 | } | 281 | } |
281 | tabBarStack->raiseWidget( tabList ); | 282 | tabBarStack->raiseWidget( tabList ); |
282 | } | 283 | } |
283 | setUpLayout(); | 284 | setUpLayout(); |
284 | } | 285 | } |
285 | 286 | ||
286 | OTabWidget::TabPosition OTabWidget::tabPosition() const | 287 | OTabWidget::TabPosition OTabWidget::tabPosition() const |
287 | { | 288 | { |
288 | return tabBarPosition; | 289 | return tabBarPosition; |
289 | } | 290 | } |
290 | 291 | ||
291 | void OTabWidget::setTabPosition( TabPosition p ) | 292 | void OTabWidget::setTabPosition( TabPosition p ) |
292 | { | 293 | { |
293 | tabBarPosition = p; | 294 | tabBarPosition = p; |
294 | if ( tabBarPosition == Top ) | 295 | if ( tabBarPosition == Top ) |
295 | { | 296 | { |
296 | tabBar->setShape( QTabBar::RoundedAbove ); | 297 | tabBar->setShape( QTabBar::RoundedAbove ); |
297 | } | 298 | } |
298 | else | 299 | else |
299 | { | 300 | { |
300 | tabBar->setShape( QTabBar::RoundedBelow ); | 301 | tabBar->setShape( QTabBar::RoundedBelow ); |
301 | } | 302 | } |
302 | setUpLayout(); | 303 | setUpLayout(); |
303 | } | 304 | } |
304 | 305 | ||
305 | void OTabWidget::slotTabBarSelected( int id ) | 306 | void OTabWidget::slotTabBarSelected( int id ) |
306 | { | 307 | { |
307 | OTabInfo *newtab = tabs.first(); | 308 | OTabInfo *newtab = tabs.first(); |
308 | while ( newtab && newtab->id() != id ) | 309 | while ( newtab && newtab->id() != id ) |
309 | { | 310 | { |
310 | newtab = tabs.next(); | 311 | newtab = tabs.next(); |
311 | } | 312 | } |
312 | if ( newtab && newtab->id() == id ) | 313 | if ( newtab && newtab->id() == id ) |
313 | { | 314 | { |
314 | selectTab( newtab ); | 315 | selectTab( newtab ); |
315 | } | 316 | } |
316 | } | 317 | } |
317 | 318 | ||
318 | void OTabWidget::slotTabListSelected( int index ) | 319 | void OTabWidget::slotTabListSelected( int index ) |
319 | { | 320 | { |
320 | OTabInfo *newtab = tabs.at( index ); | 321 | OTabInfo *newtab = tabs.at( index ); |
321 | if ( newtab ) | 322 | if ( newtab ) |
322 | { | 323 | { |
323 | selectTab( newtab ); | 324 | selectTab( newtab ); |
324 | } | 325 | } |
325 | } | 326 | } |
326 | 327 | ||
327 | QPixmap OTabWidget::loadSmooth( const QString &name ) | 328 | QPixmap OTabWidget::loadSmooth( const QString &name ) |
328 | { | 329 | { |
329 | QImage image = Resource::loadImage( name ); | 330 | QPixmap p; |
330 | QPixmap pixmap; | 331 | p.convertFromImage( Resource::loadImage( name ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); |
331 | pixmap.convertFromImage( image.smoothScale( 14, 14 ) ); | 332 | return p; |
332 | return pixmap; | ||
333 | } | 333 | } |
334 | 334 | ||
335 | void OTabWidget::selectTab( OTabInfo *tab ) | 335 | void OTabWidget::selectTab( OTabInfo *tab ) |
336 | { | 336 | { |
337 | if ( tabBarStyle == IconTab ) | 337 | if ( tabBarStyle == IconTab ) |
338 | { | 338 | { |
339 | if ( currTab ) | 339 | if ( currTab ) |
340 | { | 340 | { |
341 | tabBar->tab( currTab->id() )->setText( QString::null ); | 341 | tabBar->tab( currTab->id() )->setText( QString::null ); |
342 | setUpLayout(); | 342 | setUpLayout(); |
343 | } | 343 | } |
344 | tabBar->tab( tab->id() )->setText( tab->label() ); | 344 | tabBar->tab( tab->id() )->setText( tab->label() ); |
345 | tabBar->setCurrentTab( tab->id() ); | 345 | tabBar->setCurrentTab( tab->id() ); |
346 | setUpLayout(); | 346 | setUpLayout(); |
347 | tabBar->update(); | 347 | tabBar->update(); |
348 | } | 348 | } |
349 | else | 349 | else |
350 | { | 350 | { |
351 | tabBar->setCurrentTab( tab->id() ); | 351 | tabBar->setCurrentTab( tab->id() ); |
352 | } | 352 | } |
353 | 353 | ||
354 | widgetStack->raiseWidget( tab->control() ); | 354 | widgetStack->raiseWidget( tab->control() ); |
355 | 355 | ||
356 | emit currentChanged( tab->control() ); | 356 | emit currentChanged( tab->control() ); |
357 | 357 | ||
358 | currTab = tab; | 358 | currTab = tab; |
359 | } | 359 | } |
360 | 360 | ||
361 | void OTabWidget::setUpLayout() | 361 | void OTabWidget::setUpLayout() |
362 | { | 362 | { |
363 | tabBar->layoutTabs(); | 363 | tabBar->layoutTabs(); |
364 | QSize t( tabBarStack->sizeHint() ); | 364 | QSize t( tabBarStack->sizeHint() ); |
365 | if ( tabBarStyle == IconTab ) | 365 | if ( tabBarStyle == IconTab ) |
366 | { | 366 | { |
367 | if ( t.width() > width() ) | 367 | if ( t.width() > width() ) |
368 | t.setWidth( width() ); | 368 | t.setWidth( width() ); |
369 | } | 369 | } |
370 | else | 370 | else |
371 | { | 371 | { |
372 | t.setWidth( width() ); | 372 | t.setWidth( width() ); |
373 | } | 373 | } |
374 | int lw = widgetStack->lineWidth(); | 374 | int lw = widgetStack->lineWidth(); |
375 | if ( tabBarPosition == Bottom ) | 375 | if ( tabBarPosition == Bottom ) |
376 | { | 376 | { |
377 | tabBarStack->setGeometry( QMAX(0, lw-2), height() - t.height() - lw, t.width(), t.height() ); | 377 | tabBarStack->setGeometry( QMAX(0, lw-2), height() - t.height() - lw, t.width(), t.height() ); |
378 | widgetStack->setGeometry( 0, 0, width(), height()-t.height()+QMAX(0, lw-2) ); | 378 | widgetStack->setGeometry( 0, 0, width(), height()-t.height()+QMAX(0, lw-2) ); |
379 | } | 379 | } |
380 | else | 380 | else |
381 | { | 381 | { |
382 | tabBarStack->setGeometry( QMAX(0, lw-2), 0, t.width(), t.height() ); | 382 | tabBarStack->setGeometry( QMAX(0, lw-2), 0, t.width(), t.height() ); |
383 | widgetStack->setGeometry( 0, t.height()-lw, width(), height()-t.height()+QMAX( 0, lw-2 ) ); | 383 | widgetStack->setGeometry( 0, t.height()-lw, width(), height()-t.height()+QMAX( 0, lw-2 ) ); |
384 | } | 384 | } |
385 | 385 | ||
386 | if ( autoMask() ) | 386 | if ( autoMask() ) |
387 | updateMask(); | 387 | updateMask(); |
388 | } | 388 | } |
389 | 389 | ||
390 | QSize OTabWidget::sizeHint() const | 390 | QSize OTabWidget::sizeHint() const |
391 | { | 391 | { |
392 | QSize s( widgetStack->sizeHint() ); | 392 | QSize s( widgetStack->sizeHint() ); |
393 | QSize t( tabBarStack->sizeHint() ); | 393 | QSize t( tabBarStack->sizeHint() ); |
394 | return QSize( QMAX( s.width(), t.width() ), s.height() + t.height() ); | 394 | return QSize( QMAX( s.width(), t.width() ), s.height() + t.height() ); |
395 | } | 395 | } |
396 | 396 | ||
397 | void OTabWidget::resizeEvent( QResizeEvent * ) | 397 | void OTabWidget::resizeEvent( QResizeEvent * ) |
398 | { | 398 | { |
399 | setUpLayout(); | 399 | setUpLayout(); |
400 | } | 400 | } |
401 | 401 | ||
402 | int OTabWidget::currentTab() | 402 | int OTabWidget::currentTab() |
403 | { | 403 | { |
404 | if ( currTab ) | 404 | if ( currTab ) |
405 | { | 405 | { |
406 | return currTab->id(); | 406 | return currTab->id(); |
407 | } | 407 | } |
408 | return -1; | 408 | return -1; |
409 | } | 409 | } |
410 | 410 | ||
411 | QWidget* OTabWidget::currentWidget()const | 411 | QWidget* OTabWidget::currentWidget()const |
412 | { | 412 | { |
413 | if ( currTab ) | 413 | if ( currTab ) |
414 | { | 414 | { |
415 | return currTab->control(); | 415 | return currTab->control(); |
416 | } | 416 | } |
417 | 417 | ||
418 | return 0; | 418 | return 0; |
419 | } | 419 | } |