summaryrefslogtreecommitdiff
authorzecke <zecke>2003-09-04 12:51:49 (UTC)
committer zecke <zecke>2003-09-04 12:51:49 (UTC)
commitd11827ca5879b21488c189fb09f32ecf635644ae (patch) (unidiff)
tree55e050283d70b67d5546745bcece440245055a7e
parent2ec64be7f5250e851f44107552e89aff62922d44 (diff)
downloadopie-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
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/big-screen/osplitter.cpp9
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 */
382void OSplitter::addToBox( const Opie::OSplitterContainer& con ) { 382void 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 */
391void OSplitter::removeFromTab( QWidget* wid ) { 391void 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 */
402void OSplitter::changeTab() { 402void 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
556void OSplitter::reparentAll() { 557void 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 */
571bool OSplitter::layoutMode()const { 572bool 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 &&