author | zecke <zecke> | 2003-09-04 12:51:49 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-09-04 12:51:49 (UTC) |
commit | d11827ca5879b21488c189fb09f32ecf635644ae (patch) (unidiff) | |
tree | 55e050283d70b67d5546745bcece440245055a7e | |
parent | 2ec64be7f5250e851f44107552e89aff62922d44 (diff) | |
download | opie-d11827ca5879b21488c189fb09f32ecf635644ae.zip opie-d11827ca5879b21488c189fb09f32ecf635644ae.tar.gz opie-d11827ca5879b21488c189fb09f32ecf635644ae.tar.bz2 |
Thanks to eilers for spotting this.
The second osplitter correctly adds it widgets
to the tab but is visible as well so better
hide it
-rw-r--r-- | libopie/big-screen/osplitter.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libopie/big-screen/osplitter.cpp b/libopie/big-screen/osplitter.cpp index 47f856d..b09bc94 100644 --- a/libopie/big-screen/osplitter.cpp +++ b/libopie/big-screen/osplitter.cpp | |||
@@ -381,60 +381,63 @@ void OSplitter::addToTab( const Opie::OSplitterContainer& con ) { | |||
381 | */ | 381 | */ |
382 | void OSplitter::addToBox( const Opie::OSplitterContainer& con ) { | 382 | void OSplitter::addToBox( const Opie::OSplitterContainer& con ) { |
383 | QWidget* wid = con.widget; | 383 | QWidget* wid = con.widget; |
384 | wid->reparent(m_hbox, 0, QPoint(0, 0) ); | 384 | wid->reparent(m_hbox, 0, QPoint(0, 0) ); |
385 | } | 385 | } |
386 | 386 | ||
387 | 387 | ||
388 | /* | 388 | /* |
389 | * Removes a widget from the tab | 389 | * Removes a widget from the tab |
390 | */ | 390 | */ |
391 | void OSplitter::removeFromTab( QWidget* wid ) { | 391 | void OSplitter::removeFromTab( QWidget* wid ) { |
392 | if (m_parentTab ) | 392 | if (m_parentTab ) |
393 | m_parentTab->removePage( wid ); | 393 | m_parentTab->removePage( wid ); |
394 | else | 394 | else |
395 | m_tabWidget->removePage( wid ); | 395 | m_tabWidget->removePage( wid ); |
396 | } | 396 | } |
397 | 397 | ||
398 | /* | 398 | /* |
399 | * switches over to a OTabWidget layout | 399 | * switches over to a OTabWidget layout |
400 | * it is recursive | 400 | * it is recursive |
401 | */ | 401 | */ |
402 | void OSplitter::changeTab() { | 402 | void OSplitter::changeTab() { |
403 | /* if we're the owner of the tab widget */ | 403 | /* if we're the owner of the tab widget */ |
404 | if (m_tabWidget ) { | 404 | if (m_tabWidget ) { |
405 | raise(); | ||
406 | show(); | ||
405 | m_tabWidget->setGeometry( frameRect() ); | 407 | m_tabWidget->setGeometry( frameRect() ); |
406 | return; | 408 | return; |
407 | } | 409 | } |
408 | 410 | ||
409 | qWarning(" New Tab Widget %s", name() ); | 411 | qWarning(" New Tab Widget %s", name() ); |
410 | /* | 412 | /* |
411 | * and add all widgets this will reparent them | 413 | * and add all widgets this will reparent them |
412 | * delete m_hbox set it to 0 | 414 | * delete m_hbox set it to 0 |
413 | * | 415 | * |
414 | */ | 416 | */ |
415 | OTabWidget *tab; | 417 | OTabWidget *tab; |
416 | if ( m_parentTab ) { | 418 | if ( m_parentTab ) { |
419 | hide(); | ||
417 | tab = m_parentTab; | 420 | tab = m_parentTab; |
418 | /* expensive but needed cause we're called from setTabWidget and resizeEvent*/ | 421 | /* expensive but needed cause we're called from setTabWidget and resizeEvent*/ |
419 | if (!m_container.isEmpty() ) { | 422 | if (!m_container.isEmpty() ) { |
420 | ContainerList::Iterator it = m_container.begin(); | 423 | ContainerList::Iterator it = m_container.begin(); |
421 | for (; it != m_container.end(); ++it ) | 424 | for (; it != m_container.end(); ++it ) |
422 | m_parentTab->removePage( (*it).widget ); | 425 | m_parentTab->removePage( (*it).widget ); |
423 | } | 426 | } |
424 | }else | 427 | }else |
425 | tab = m_tabWidget = new OTabWidget( this ); | 428 | tab = m_tabWidget = new OTabWidget( this ); |
426 | 429 | ||
427 | connect(tab, SIGNAL(currentChanged(QWidget*) ), | 430 | connect(tab, SIGNAL(currentChanged(QWidget*) ), |
428 | this, SIGNAL(currentChanged(QWidget*) ) ); | 431 | this, SIGNAL(currentChanged(QWidget*) ) ); |
429 | 432 | ||
430 | for ( ContainerList::Iterator it = m_container.begin(); it != m_container.end(); ++it ) { | 433 | for ( ContainerList::Iterator it = m_container.begin(); it != m_container.end(); ++it ) { |
431 | qWarning("Widget is %s", (*it).name.latin1() ); | 434 | qWarning("Widget is %s", (*it).name.latin1() ); |
432 | addToTab( (*it) ); | 435 | addToTab( (*it) ); |
433 | } | 436 | } |
434 | 437 | ||
435 | for ( OSplitter* split = m_splitter.first(); split; split = m_splitter.next() ) { | 438 | for ( OSplitter* split = m_splitter.first(); split; split = m_splitter.next() ) { |
436 | split->reparent(this, 0, QPoint(0, 0) ); | 439 | split->reparent(this, 0, QPoint(0, 0) ); |
437 | split->setTabWidget( tab ); | 440 | split->setTabWidget( tab ); |
438 | } | 441 | } |
439 | 442 | ||
440 | 443 | ||
@@ -524,52 +527,50 @@ void OSplitter::setTabWidget( OTabWidget* wid) { | |||
524 | if (m_hbox ) | 527 | if (m_hbox ) |
525 | m_parentTab->removePage( m_hbox ); | 528 | m_parentTab->removePage( m_hbox ); |
526 | else if (!m_container.isEmpty() ){ | 529 | else if (!m_container.isEmpty() ){ |
527 | ContainerList::Iterator it = m_container.begin(); | 530 | ContainerList::Iterator it = m_container.begin(); |
528 | for ( ; it != m_container.end(); ++it ) | 531 | for ( ; it != m_container.end(); ++it ) |
529 | m_parentTab->removePage( (*it).widget ); | 532 | m_parentTab->removePage( (*it).widget ); |
530 | } | 533 | } |
531 | } | 534 | } |
532 | /* the parent Splitter changed so either make us indepent or dep */ | 535 | /* the parent Splitter changed so either make us indepent or dep */ |
533 | 536 | ||
534 | m_parentTab = wid; | 537 | m_parentTab = wid; |
535 | 538 | ||
536 | QWidget *tab = m_tabWidget; | 539 | QWidget *tab = m_tabWidget; |
537 | QWidget *box = m_hbox; | 540 | QWidget *box = m_hbox; |
538 | m_hbox = 0; m_tabWidget = 0; | 541 | m_hbox = 0; m_tabWidget = 0; |
539 | 542 | ||
540 | if ( layoutMode() ) | 543 | if ( layoutMode() ) |
541 | changeTab(); | 544 | changeTab(); |
542 | else if (m_orient == Horizontal ) | 545 | else if (m_orient == Horizontal ) |
543 | changeHBox(); | 546 | changeHBox(); |
544 | else | 547 | else |
545 | changeVBox(); | 548 | changeVBox(); |
546 | 549 | ||
547 | /* our own crap is added and children from change* */ | 550 | /* our own crap is added and children from change* */ |
548 | if (m_parentTab ) { | 551 | delete tab; |
549 | delete tab; | 552 | delete box; |
550 | delete box; | ||
551 | } | ||
552 | } | 553 | } |
553 | 554 | ||
554 | 555 | ||
555 | #if 0 | 556 | #if 0 |
556 | void OSplitter::reparentAll() { | 557 | void OSplitter::reparentAll() { |
557 | if (m_container.isEmpty() ) | 558 | if (m_container.isEmpty() ) |
558 | return; | 559 | return; |
559 | 560 | ||
560 | ContainerList::Iterator it = m_container.begin(); | 561 | ContainerList::Iterator it = m_container.begin(); |
561 | for ( ; it != m_container.end(); ++it ) | 562 | for ( ; it != m_container.end(); ++it ) |
562 | (*it).wid->reparent(0, 0, QPoint(0, 0) ); | 563 | (*it).wid->reparent(0, 0, QPoint(0, 0) ); |
563 | 564 | ||
564 | 565 | ||
565 | } | 566 | } |
566 | #endif | 567 | #endif |
567 | 568 | ||
568 | /** | 569 | /** |
569 | * @internal | 570 | * @internal |
570 | */ | 571 | */ |
571 | bool OSplitter::layoutMode()const { | 572 | bool OSplitter::layoutMode()const { |
572 | if ( size().width() > m_size_policy && | 573 | if ( size().width() > m_size_policy && |
573 | m_orient == Horizontal ) { | 574 | m_orient == Horizontal ) { |
574 | return false; | 575 | return false; |
575 | }else if ( size().height() > m_size_policy && | 576 | }else if ( size().height() > m_size_policy && |