author | harlekin <harlekin> | 2002-10-05 22:15:43 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2002-10-05 22:15:43 (UTC) |
commit | 94180a2019a945e6a492405dc6a30420c760529f (patch) (side-by-side diff) | |
tree | d50e2c308b94a563f82db8bd9086cfc46da09c0f /libopie | |
parent | 4e27d072b90cf1d877f0f31b44da10639ff3803f (diff) | |
download | opie-94180a2019a945e6a492405dc6a30420c760529f.zip opie-94180a2019a945e6a492405dc6a30420c760529f.tar.gz opie-94180a2019a945e6a492405dc6a30420c760529f.tar.bz2 |
making otabwidget more simular to qtabwidget - drw
-rw-r--r-- | libopie/otabwidget.cpp | 32 | ||||
-rw-r--r-- | libopie/otabwidget.h | 17 |
2 files changed, 49 insertions, 0 deletions
diff --git a/libopie/otabwidget.cpp b/libopie/otabwidget.cpp index d5b963b..1f3fbb0 100644 --- a/libopie/otabwidget.cpp +++ b/libopie/otabwidget.cpp @@ -95,4 +95,5 @@ OTabWidget::OTabWidget( QWidget *parent, const char *name, TabStyle s, TabPositi } + tabs.setAutoDelete( TRUE ); currentTab= 0x0; } @@ -138,4 +139,33 @@ void OTabWidget::addTab( QWidget *child, const QString &icon, const QString &lab } +void OTabWidget::removePage( QWidget *childwidget ) +{ + if ( childwidget ) + { + OTabInfo *tab = tabs.first(); + while ( tab && tab->control() != childwidget ) + { + tab = tabs.next(); + } + if ( tab && tab->control() == childwidget ) + { + tabBar->setTabEnabled( tab->id(), FALSE ); + tabBar->removeTab( tabBar->tab( tab->id() ) ); + int i = 0; + while ( i < tabList->count() && tabList->text( i ) != tab->label() ) + { + i++; + } + if ( tabList->text( i ) == tab->label() ) + { + tabList->removeItem( i ); + } + widgetStack->removeWidget( childwidget ); + tabs.remove( tab ); + setUpLayout(); + } + } +} + void OTabWidget::setCurrentTab( QWidget *childwidget ) { @@ -231,4 +261,6 @@ void OTabWidget::selectTab( OTabInfo *tab ) widgetStack->raiseWidget( tab->control() ); + + emit currentChanged( tab->control() ); } diff --git a/libopie/otabwidget.h b/libopie/otabwidget.h index bacda07..d61fe9e 100644 --- a/libopie/otabwidget.h +++ b/libopie/otabwidget.h @@ -119,4 +119,12 @@ public: /** + * @fn removePage( QWidget *widget ) + * @brief Remove widget from control. Does not delete widget. + * + * @param widget Widget control to be removed. + */ + void removePage( QWidget * ); + +/** * @fn tabStyle() * @brief Returns current widget selection control style. @@ -212,4 +220,13 @@ private: void setUpLayout(); +signals: +/** + * @fn currentChanegd( QWidget *widget ) + * @brief This signal is emitted whenever the widget has changed. + * + * @param widget Pointer to new current widget. + */ + void currentChanged( QWidget * ); + private slots: |