summaryrefslogtreecommitdiff
path: root/libopie2
authorzecke <zecke>2005-03-06 14:04:57 (UTC)
committer zecke <zecke>2005-03-06 14:04:57 (UTC)
commit125fa91f604cf9b7f3272798e72b6725fca9e23f (patch) (unidiff)
treef7d328df5173a56254b6d5c8627eb53f897d9ebe /libopie2
parentfe51b2ed0ec3bccbcac880623123d2abc5d71a4e (diff)
downloadopie-125fa91f604cf9b7f3272798e72b6725fca9e23f.zip
opie-125fa91f604cf9b7f3272798e72b6725fca9e23f.tar.gz
opie-125fa91f604cf9b7f3272798e72b6725fca9e23f.tar.bz2
-When going back from BigScreen to SmallScreen we resize the widgetstack,
show it and raise the 'main widget' This should fix all bugs alwin spotted while deploying OWidgetStack on Opie-Eye
Diffstat (limited to 'libopie2') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opieui/big-screen/owidgetstack.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/libopie2/opieui/big-screen/owidgetstack.cpp b/libopie2/opieui/big-screen/owidgetstack.cpp
index 00194b4..ac46cca 100644
--- a/libopie2/opieui/big-screen/owidgetstack.cpp
+++ b/libopie2/opieui/big-screen/owidgetstack.cpp
@@ -288,49 +288,49 @@ void OWidgetStack::raiseWidget( QWidget* wid) {
288 * and raise the widget specified by the parameter. 288 * and raise the widget specified by the parameter.
289 * Note that this method does not use visibleWIdget but remembers 289 * Note that this method does not use visibleWIdget but remembers
290 * the last raisedWidget 290 * the last raisedWidget
291 */ 291 */
292void OWidgetStack::hideWidget( int id) { 292void OWidgetStack::hideWidget( int id) {
293 /* hiding our main widget wouldn't be smart */ 293 /* hiding our main widget wouldn't be smart */
294 if ( m_mode == BigScreen && m_last != m_mWidget ) 294 if ( m_mode == BigScreen && m_last != m_mWidget )
295 m_last->hide(); 295 m_last->hide();
296 raiseWidget( id ); 296 raiseWidget( id );
297} 297}
298 298
299/** 299/**
300 * This is overloaded and only differs in the parameters 300 * This is overloaded and only differs in the parameters
301 * it takes. 301 * it takes.
302 */ 302 */
303void OWidgetStack::hideWidget( QWidget* wid) { 303void OWidgetStack::hideWidget( QWidget* wid) {
304 /* still not smart */ 304 /* still not smart */
305 if ( m_mode == BigScreen && m_last != m_mWidget ) 305 if ( m_mode == BigScreen && m_last != m_mWidget )
306 m_last->hide(); 306 m_last->hide();
307 307
308 raiseWidget( wid ); 308 raiseWidget( wid );
309} 309}
310 310
311 311
312bool OWidgetStack::eventFilter( QObject* obj, QEvent* e) { 312bool OWidgetStack::eventFilter( QObject*, QEvent* e) {
313 if ( e->type() == QEvent::Resize && !m_forced ) { 313 if ( e->type() == QEvent::Resize && !m_forced ) {
314 QResizeEvent *res = static_cast<QResizeEvent*>( e ); 314 QResizeEvent *res = static_cast<QResizeEvent*>( e );
315 QSize size = res->size(); 315 QSize size = res->size();
316 if ( size.width() >= mode_size ) 316 if ( size.width() >= mode_size )
317 switchTop(); 317 switchTop();
318 else 318 else
319 switchStack(); 319 switchStack();
320 } 320 }
321 return false; 321 return false;
322} 322}
323 323
324 324
325/** 325/**
326 * @internal_resons 326 * @internal_resons
327 */ 327 */
328void OWidgetStack::resizeEvent( QResizeEvent* ev ) { 328void OWidgetStack::resizeEvent( QResizeEvent* ev ) {
329 QFrame::resizeEvent( ev ); 329 QFrame::resizeEvent( ev );
330 if (m_mode == SmallScreen ) 330 if (m_mode == SmallScreen )
331 m_stack->setGeometry( frameRect() ); 331 m_stack->setGeometry( frameRect() );
332 else 332 else
333 if (m_mWidget ) 333 if (m_mWidget )
334 m_mWidget->setGeometry( frameRect() ); 334 m_mWidget->setGeometry( frameRect() );
335 335
336} 336}
@@ -367,62 +367,67 @@ void OWidgetStack::setMainWindow( QWidget* wid ) {
367 m_mWidget = wid; 367 m_mWidget = wid;
368} 368}
369 369
370/** 370/**
371 * this is an overloaded member and only differs 371 * this is an overloaded member and only differs
372 * in the type of arguments. 372 * in the type of arguments.
373 * @see setMainWindow(QWidget*) 373 * @see setMainWindow(QWidget*)
374 */ 374 */
375void OWidgetStack::setMainWindow( int id) { 375void OWidgetStack::setMainWindow( int id) {
376 setMainWindow( widget( id ) ); 376 setMainWindow( widget( id ) );
377} 377}
378 378
379 379
380/* 380/*
381 * this function switches to a stack ;) 381 * this function switches to a stack ;)
382 */ 382 */
383void OWidgetStack::switchStack() { 383void OWidgetStack::switchStack() {
384 if (m_stack ) { 384 if (m_stack ) {
385 m_stack->setGeometry( frameRect() ); 385 m_stack->setGeometry( frameRect() );
386 return; 386 return;
387 } 387 }
388 388
389 m_mode = SmallScreen; 389 m_mode = SmallScreen;
390 m_stack = new QWidgetStack(this); 390 m_stack = new QWidgetStack(this);
391 m_stack->setGeometry( frameRect() );
392 m_stack->show();
391 393
392 connect(m_stack, SIGNAL(aboutToShow(QWidget*) ), 394 connect(m_stack, SIGNAL(aboutToShow(QWidget*) ),
393 this, SIGNAL(aboutToShow(QWidget*) ) ); 395 this, SIGNAL(aboutToShow(QWidget*) ) );
394 connect(m_stack, SIGNAL(aboutToShow(int) ), 396 connect(m_stack, SIGNAL(aboutToShow(int) ),
395 this, SIGNAL(aboutToShow(int) ) ); 397 this, SIGNAL(aboutToShow(int) ) );
396 398
397 /* now reparent the widgets... luckily QWidgetSatck does most of the work */ 399 /* now reparent the widgets... luckily QWidgetSatck does most of the work */
398 if (m_list.isEmpty() ) 400 if (m_list.isEmpty() )
399 return; 401 return;
400 402
401 QMap<int, QWidget*>::Iterator it = m_list.begin(); 403 QMap<int, QWidget*>::Iterator it = m_list.begin();
402 for ( ; it != m_list.end(); ++it ) 404 for ( ; it != m_list.end(); ++it )
403 m_stack->addWidget( it.data(), it.key() ); 405 m_stack->addWidget( it.data(), it.key() );
404 406
407 if ( m_mWidget )
408 m_stack->raiseWidget( m_mWidget );
409
405 410
406} 411}
407 412
408/* 413/*
409 * we will switch to top level mode 414 * we will switch to top level mode
410 * reparent the list of widgets and then delete the stack 415 * reparent the list of widgets and then delete the stack
411 */ 416 */
412void OWidgetStack::switchTop() { 417void OWidgetStack::switchTop() {
413 m_mode = BigScreen; 418 m_mode = BigScreen;
414 /* this works because it is guaranteed that switchStack was called at least once*/ 419 /* this works because it is guaranteed that switchStack was called at least once*/
415 if (!m_stack && m_mWidget) { 420 if (!m_stack && m_mWidget) {
416 m_mWidget->setGeometry( frameRect() ); 421 m_mWidget->setGeometry( frameRect() );
417 return; 422 return;
418 }else if (!m_stack) 423 }else if (!m_stack)
419 return; 424 return;
420 425
421 if (!m_list.isEmpty() ) { 426 if (!m_list.isEmpty() ) {
422 QMap<int, QWidget*>::Iterator it = m_list.begin(); 427 QMap<int, QWidget*>::Iterator it = m_list.begin();
423 for ( ; it != m_list.end(); ++it ) { 428 for ( ; it != m_list.end(); ++it ) {
424 /* better than reparenting twice */ 429 /* better than reparenting twice */
425 if ( it.data() == m_mWidget ) { 430 if ( it.data() == m_mWidget ) {
426 m_mWidget->reparent(this, 0, frameRect().topLeft() ); 431 m_mWidget->reparent(this, 0, frameRect().topLeft() );
427 m_mWidget->setGeometry( frameRect() ); 432 m_mWidget->setGeometry( frameRect() );
428 m_mWidget->show(); 433 m_mWidget->show();