-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 | |||
@@ -357,108 +357,111 @@ void OSplitter::resizeEvent( QResizeEvent* res ) { | |||
357 | qWarning("Changng to vbox %s", name() ); | 357 | qWarning("Changng to vbox %s", name() ); |
358 | changeVBox(); | 358 | changeVBox(); |
359 | mode = false; | 359 | mode = false; |
360 | } | 360 | } |
361 | 361 | ||
362 | emit sizeChanged(mode, m_orient ); | 362 | emit sizeChanged(mode, m_orient ); |
363 | } | 363 | } |
364 | 364 | ||
365 | /* | 365 | /* |
366 | * Adds a container to a tab either the parent tab | 366 | * Adds a container to a tab either the parent tab |
367 | * or our own | 367 | * or our own |
368 | */ | 368 | */ |
369 | void OSplitter::addToTab( const Opie::OSplitterContainer& con ) { | 369 | void OSplitter::addToTab( const Opie::OSplitterContainer& con ) { |
370 | QWidget *wid = con.widget; | 370 | QWidget *wid = con.widget; |
371 | // not needed widgetstack will reparent as well wid.reparent(m_tabWidget, wid->getWFlags(), QPoint(0, 0) ); | 371 | // not needed widgetstack will reparent as well wid.reparent(m_tabWidget, wid->getWFlags(), QPoint(0, 0) ); |
372 | if (m_parentTab ) | 372 | if (m_parentTab ) |
373 | m_parentTab->addTab( wid, con.icon, con.name ); | 373 | m_parentTab->addTab( wid, con.icon, con.name ); |
374 | else | 374 | else |
375 | m_tabWidget->addTab( wid, con.icon, con.name ); | 375 | m_tabWidget->addTab( wid, con.icon, con.name ); |
376 | } | 376 | } |
377 | 377 | ||
378 | 378 | ||
379 | /* | 379 | /* |
380 | * adds a container to the box | 380 | * adds a container to the box |
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 | ||
441 | delete m_hbox; | 444 | delete m_hbox; |
442 | m_hbox = 0; | 445 | m_hbox = 0; |
443 | if (!m_tabWidget ) | 446 | if (!m_tabWidget ) |
444 | return; | 447 | return; |
445 | 448 | ||
446 | m_tabWidget->setGeometry( frameRect() ); | 449 | m_tabWidget->setGeometry( frameRect() ); |
447 | m_tabWidget->show(); | 450 | m_tabWidget->show(); |
448 | 451 | ||
449 | } | 452 | } |
450 | 453 | ||
451 | /* | 454 | /* |
452 | * changes over to a box | 455 | * changes over to a box |
453 | * this is recursive as well | 456 | * this is recursive as well |
454 | */ | 457 | */ |
455 | void OSplitter::changeHBox() { | 458 | void OSplitter::changeHBox() { |
456 | if (m_hbox ) { | 459 | if (m_hbox ) { |
457 | m_hbox->setGeometry( frameRect() ); | 460 | m_hbox->setGeometry( frameRect() ); |
458 | return; | 461 | return; |
459 | } | 462 | } |
460 | 463 | ||
461 | qWarning("new HBox %s", name() ); | 464 | qWarning("new HBox %s", name() ); |
462 | m_hbox = new QHBox( this ); | 465 | m_hbox = new QHBox( this ); |
463 | commonChangeBox(); | 466 | commonChangeBox(); |
464 | } | 467 | } |
@@ -500,82 +503,80 @@ void OSplitter::commonChangeBox() { | |||
500 | // con.widget = split->m_tabWidget ? static_cast<QWidget*>(split->m_tabWidget) | 503 | // con.widget = split->m_tabWidget ? static_cast<QWidget*>(split->m_tabWidget) |
501 | // : static_cast<QWidget*>(split->m_hbox); | 504 | // : static_cast<QWidget*>(split->m_hbox); |
502 | addToBox( con ); | 505 | addToBox( con ); |
503 | } | 506 | } |
504 | 507 | ||
505 | 508 | ||
506 | 509 | ||
507 | if (m_parentTab ) | 510 | if (m_parentTab ) |
508 | m_parentTab->addTab(m_hbox, iconName(), label() ); | 511 | m_parentTab->addTab(m_hbox, iconName(), label() ); |
509 | else { | 512 | else { |
510 | qWarning(" setting Box geometry for %s", name() ); | 513 | qWarning(" setting Box geometry for %s", name() ); |
511 | m_hbox->setGeometry( frameRect() ); | 514 | m_hbox->setGeometry( frameRect() ); |
512 | m_hbox->show(); | 515 | m_hbox->show(); |
513 | delete m_tabWidget; | 516 | delete m_tabWidget; |
514 | m_tabWidget = 0; | 517 | m_tabWidget = 0; |
515 | } | 518 | } |
516 | } | 519 | } |
517 | 520 | ||
518 | /* | 521 | /* |
519 | * sets the tabwidget, removes tabs, and relayouts the widget | 522 | * sets the tabwidget, removes tabs, and relayouts the widget |
520 | */ | 523 | */ |
521 | void OSplitter::setTabWidget( OTabWidget* wid) { | 524 | void OSplitter::setTabWidget( OTabWidget* wid) { |
522 | /* clean up cause m_parentTab will not be available for us */ | 525 | /* clean up cause m_parentTab will not be available for us */ |
523 | if ( m_parentTab ) { | 526 | if ( m_parentTab ) { |
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 && |
576 | m_orient == Vertical ) { | 577 | m_orient == Vertical ) { |
577 | return false; | 578 | return false; |
578 | } | 579 | } |
579 | 580 | ||
580 | return true; | 581 | return true; |
581 | } | 582 | } |