Diffstat (limited to 'libopie/big-screen/osplitter.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie/big-screen/osplitter.cpp | 55 |
1 files changed, 38 insertions, 17 deletions
diff --git a/libopie/big-screen/osplitter.cpp b/libopie/big-screen/osplitter.cpp index d06568f..47f856d 100644 --- a/libopie/big-screen/osplitter.cpp +++ b/libopie/big-screen/osplitter.cpp @@ -78,2 +78,3 @@ OSplitter::OSplitter( Orientation orient, QWidget* parent, const char* name, WFl OSplitter::~OSplitter() { + qWarning("Deleted Splitter"); m_splitter.setAutoDelete( true ); @@ -156,3 +157,3 @@ void OSplitter::addWidget( OSplitter* split ) { if (m_tabWidget ) - split->setTabWidget( m_tabWidget ); + setTabWidget( m_parentTab ); else{ @@ -308,3 +309,3 @@ QWidget* OSplitter::currentWidget() const{ -#if 0 + /** @@ -314,3 +315,4 @@ QWidget* OSplitter::currentWidget() const{ QSize OSplitter::sizeHint()const { - return QSize(10, 10); + if (m_parentTab ) + return QFrame::sizeHint(); @@ -323,5 +325,10 @@ QSize OSplitter::sizeHint()const { QSize OSplitter::minimumSizeHint()const { - return QSize(10, 10 ); + if (m_parentTab ) + return QFrame::minimumSizeHint(); + if (m_hbox) + return m_hbox->sizeHint(); + else + return m_tabWidget->sizeHint(); } -#endif + @@ -337,3 +344,3 @@ void OSplitter::resizeEvent( QResizeEvent* res ) { bool mode = true; - qWarning("New size is width = %d height = %d", res->size().width(), res->size().height() ); + qWarning("New size is width = %d height = %d %s", res->size().width(), res->size().height(), name() ); if ( res->size().width() > m_size_policy && @@ -348,3 +355,4 @@ void OSplitter::resizeEvent( QResizeEvent* res ) { }else if ( res->size().height() > m_size_policy && - m_size_policy == Vertical ) { + m_orient == Vertical ) { + qWarning("Changng to vbox %s", name() ); changeVBox(); @@ -400,3 +408,3 @@ void OSplitter::changeTab() { - qWarning(" New Tab Widget "); + qWarning(" New Tab Widget %s", name() ); /* @@ -409,3 +417,8 @@ void OSplitter::changeTab() { tab = m_parentTab; - tab->removePage( this ); + /* expensive but needed cause we're called from setTabWidget and resizeEvent*/ + if (!m_container.isEmpty() ) { + ContainerList::Iterator it = m_container.begin(); + for (; it != m_container.end(); ++it ) + m_parentTab->removePage( (*it).widget ); + } }else @@ -421,4 +434,6 @@ void OSplitter::changeTab() { - for ( OSplitter* split = m_splitter.first(); split; split = m_splitter.next() ) + for ( OSplitter* split = m_splitter.first(); split; split = m_splitter.next() ) { + split->reparent(this, 0, QPoint(0, 0) ); split->setTabWidget( tab ); + } @@ -445,3 +460,3 @@ void OSplitter::changeHBox() { - qWarning("new HBox"); + qWarning("new HBox %s", name() ); m_hbox = new QHBox( this ); @@ -456,3 +471,3 @@ void OSplitter::changeVBox() { - qWarning("New VBOX"); + qWarning("New VBOX %s", name() ); m_hbox = new QVBox( this ); @@ -470,2 +485,3 @@ void OSplitter::changeVBox() { void OSplitter::commonChangeBox() { + qWarning(" Name of Splitters is %s", name() ); @@ -483,2 +499,4 @@ void OSplitter::commonChangeBox() { con.widget = split; +// con.widget = split->m_tabWidget ? static_cast<QWidget*>(split->m_tabWidget) +// : static_cast<QWidget*>(split->m_hbox); addToBox( con ); @@ -489,4 +507,5 @@ void OSplitter::commonChangeBox() { if (m_parentTab ) - m_parentTab->addTab(this, iconName(), label() ); + m_parentTab->addTab(m_hbox, iconName(), label() ); else { + qWarning(" setting Box geometry for %s", name() ); m_hbox->setGeometry( frameRect() ); @@ -505,3 +524,3 @@ void OSplitter::setTabWidget( OTabWidget* wid) { if (m_hbox ) - m_parentTab->removePage( this ); + m_parentTab->removePage( m_hbox ); else if (!m_container.isEmpty() ){ @@ -528,4 +547,6 @@ void OSplitter::setTabWidget( OTabWidget* wid) { /* our own crap is added and children from change* */ - delete tab; - delete box; + if (m_parentTab ) { + delete tab; + delete box; + } } @@ -554,3 +575,3 @@ bool OSplitter::layoutMode()const { }else if ( size().height() > m_size_policy && - m_size_policy == Vertical ) { + m_orient == Vertical ) { return false; |