kmdidocumentviewtabwidget.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include <ktabbar.h>
00011 #include <kpopupmenu.h>
00012 #include "kmdidocumentviewtabwidget.h"
00013
00014 KMdiDocumentViewTabWidget::KMdiDocumentViewTabWidget( QWidget* parent, const char* name ) : KTabWidget( parent, name )
00015 {
00016 m_visibility = KMdi::ShowWhenMoreThanOneTab;
00017 tabBar() ->hide();
00018 #ifndef Q_WS_WIN //todo
00019
00020 setHoverCloseButton( true );
00021 #endif
00022
00023 connect( this, SIGNAL( closeRequest( QWidget* ) ), this, SLOT( closeTab( QWidget* ) ) );
00024 }
00025
00026 KMdiDocumentViewTabWidget::~KMdiDocumentViewTabWidget()
00027 {}
00028
00029 void KMdiDocumentViewTabWidget::closeTab( QWidget* w )
00030 {
00031 w->close();
00032 }
00033 void KMdiDocumentViewTabWidget::addTab ( QWidget * child, const QString & label )
00034 {
00035 KTabWidget::addTab( child, label );
00036 showPage( child );
00037 maybeShow();
00038 }
00039
00040 void KMdiDocumentViewTabWidget::addTab ( QWidget * child, const QIconSet & iconset, const QString & label )
00041 {
00042 KTabWidget::addTab( child, iconset, label );
00043 showPage( child );
00044 maybeShow();
00045 }
00046
00047 void KMdiDocumentViewTabWidget::addTab ( QWidget * child, QTab * tab )
00048 {
00049 KTabWidget::addTab( child, tab );
00050 showPage( child );
00051 maybeShow();
00052 }
00053
00054 void KMdiDocumentViewTabWidget::insertTab ( QWidget * child, const QString & label, int index )
00055 {
00056 KTabWidget::insertTab( child, label, index );
00057 showPage( child );
00058 maybeShow();
00059 tabBar() ->repaint();
00060 }
00061
00062 void KMdiDocumentViewTabWidget::insertTab ( QWidget * child, const QIconSet & iconset, const QString & label, int index )
00063 {
00064 KTabWidget::insertTab( child, iconset, label, index );
00065 showPage( child );
00066 maybeShow();
00067 tabBar() ->repaint();
00068 }
00069
00070 void KMdiDocumentViewTabWidget::insertTab ( QWidget * child, QTab * tab, int index )
00071 {
00072 KTabWidget::insertTab( child, tab, index );
00073 showPage( child );
00074 maybeShow();
00075 tabBar() ->repaint();
00076 }
00077
00078 void KMdiDocumentViewTabWidget::removePage ( QWidget * w )
00079 {
00080 KTabWidget::removePage( w );
00081 maybeShow();
00082 }
00083
00084 void KMdiDocumentViewTabWidget::updateIconInView( QWidget *w, QPixmap icon )
00085 {
00086 changeTab( w, icon, tabLabel( w ) );
00087 }
00088
00089 void KMdiDocumentViewTabWidget::updateCaptionInView( QWidget *w, const QString &caption )
00090 {
00091 changeTab( w, caption );
00092 }
00093
00094 void KMdiDocumentViewTabWidget::maybeShow()
00095 {
00096 if ( m_visibility == KMdi::AlwaysShowTabs )
00097 {
00098 tabBar() ->show();
00099 if ( cornerWidget() )
00100 {
00101 if ( count() == 0 )
00102 cornerWidget() ->hide();
00103 else
00104 cornerWidget() ->show();
00105 }
00106 }
00107
00108 if ( m_visibility == KMdi::ShowWhenMoreThanOneTab )
00109 {
00110 if ( count() < 2 )
00111 tabBar() ->hide();
00112 if ( count() > 1 )
00113 tabBar() ->show();
00114 if ( cornerWidget() )
00115 {
00116 if ( count() < 2 )
00117 cornerWidget() ->hide();
00118 else
00119 cornerWidget() ->show();
00120 }
00121 }
00122
00123 if ( m_visibility == KMdi::NeverShowTabs )
00124 {
00125 tabBar() ->hide();
00126 }
00127 }
00128
00129 void KMdiDocumentViewTabWidget::setTabWidgetVisibility( KMdi::TabWidgetVisibility visibility )
00130 {
00131 m_visibility = visibility;
00132 maybeShow();
00133 }
00134
00135 void KMdiDocumentViewTabWidget::moveTab( int from, int to )
00136 {
00137 emit initiateTabMove( from, to );
00138 KTabWidget::moveTab( from, to );
00139 }
00140
00141 KMdi::TabWidgetVisibility KMdiDocumentViewTabWidget::tabWidgetVisibility( )
00142 {
00143 return m_visibility;
00144 }
00145
00146
00147 #ifndef NO_INCLUDE_MOCFILES
00148 #include "kmdidocumentviewtabwidget.moc"
00149 #endif
00150
00151
00152
This file is part of the documentation for kmdi Library Version 3.4.2.