summaryrefslogtreecommitdiff
path: root/libopie
authorzecke <zecke>2003-09-04 12:51:49 (UTC)
committer zecke <zecke>2003-09-04 12:51:49 (UTC)
commitd11827ca5879b21488c189fb09f32ecf635644ae (patch) (side-by-side diff)
tree55e050283d70b67d5546745bcece440245055a7e /libopie
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 (limited to 'libopie') (more/less context) (show whitespace changes)
-rw-r--r--libopie/big-screen/osplitter.cpp5
1 files changed, 3 insertions, 2 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
@@ -373,76 +373,79 @@ void OSplitter::addToTab( const Opie::OSplitterContainer& con ) {
m_parentTab->addTab( wid, con.icon, con.name );
else
m_tabWidget->addTab( wid, con.icon, con.name );
}
/*
* adds a container to the box
*/
void OSplitter::addToBox( const Opie::OSplitterContainer& con ) {
QWidget* wid = con.widget;
wid->reparent(m_hbox, 0, QPoint(0, 0) );
}
/*
* Removes a widget from the tab
*/
void OSplitter::removeFromTab( QWidget* wid ) {
if (m_parentTab )
m_parentTab->removePage( wid );
else
m_tabWidget->removePage( wid );
}
/*
* switches over to a OTabWidget layout
* it is recursive
*/
void OSplitter::changeTab() {
/* if we're the owner of the tab widget */
if (m_tabWidget ) {
+ raise();
+ show();
m_tabWidget->setGeometry( frameRect() );
return;
}
qWarning(" New Tab Widget %s", name() );
/*
* and add all widgets this will reparent them
* delete m_hbox set it to 0
*
*/
OTabWidget *tab;
if ( m_parentTab ) {
+ hide();
tab = m_parentTab;
/* 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
tab = m_tabWidget = new OTabWidget( this );
connect(tab, SIGNAL(currentChanged(QWidget*) ),
this, SIGNAL(currentChanged(QWidget*) ) );
for ( ContainerList::Iterator it = m_container.begin(); it != m_container.end(); ++it ) {
qWarning("Widget is %s", (*it).name.latin1() );
addToTab( (*it) );
}
for ( OSplitter* split = m_splitter.first(); split; split = m_splitter.next() ) {
split->reparent(this, 0, QPoint(0, 0) );
split->setTabWidget( tab );
}
delete m_hbox;
m_hbox = 0;
if (!m_tabWidget )
return;
m_tabWidget->setGeometry( frameRect() );
m_tabWidget->show();
@@ -516,66 +519,64 @@ void OSplitter::commonChangeBox() {
}
/*
* sets the tabwidget, removes tabs, and relayouts the widget
*/
void OSplitter::setTabWidget( OTabWidget* wid) {
/* clean up cause m_parentTab will not be available for us */
if ( m_parentTab ) {
if (m_hbox )
m_parentTab->removePage( m_hbox );
else if (!m_container.isEmpty() ){
ContainerList::Iterator it = m_container.begin();
for ( ; it != m_container.end(); ++it )
m_parentTab->removePage( (*it).widget );
}
}
/* the parent Splitter changed so either make us indepent or dep */
m_parentTab = wid;
QWidget *tab = m_tabWidget;
QWidget *box = m_hbox;
m_hbox = 0; m_tabWidget = 0;
if ( layoutMode() )
changeTab();
else if (m_orient == Horizontal )
changeHBox();
else
changeVBox();
/* our own crap is added and children from change* */
- if (m_parentTab ) {
delete tab;
delete box;
}
-}
#if 0
void OSplitter::reparentAll() {
if (m_container.isEmpty() )
return;
ContainerList::Iterator it = m_container.begin();
for ( ; it != m_container.end(); ++it )
(*it).wid->reparent(0, 0, QPoint(0, 0) );
}
#endif
/**
* @internal
*/
bool OSplitter::layoutMode()const {
if ( size().width() > m_size_policy &&
m_orient == Horizontal ) {
return false;
}else if ( size().height() > m_size_policy &&
m_orient == Vertical ) {
return false;
}
return true;
}