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 setHoverCloseButton(
true);
00019 connect(
this, SIGNAL(closeRequest(
QWidget*)),
this, SLOT(closeTab(
QWidget*)));
00020 }
00021
00022 KMdiDocumentViewTabWidget::~KMdiDocumentViewTabWidget() {
00023 }
00024
00025
void KMdiDocumentViewTabWidget::closeTab(
QWidget* w) {
00026 w->close();
00027 }
00028
void KMdiDocumentViewTabWidget::addTab (
QWidget * child,
const QString & label ) {
00029 KTabWidget::addTab(child,label);
00030 showPage(child);
00031 maybeShow();
00032 }
00033
00034
void KMdiDocumentViewTabWidget::addTab (
QWidget * child,
const QIconSet & iconset,
const QString & label ) {
00035 KTabWidget::addTab(child,iconset,label);
00036 showPage(child);
00037 maybeShow();
00038 }
00039
00040
void KMdiDocumentViewTabWidget::addTab (
QWidget * child,
QTab * tab ) {
00041 KTabWidget::addTab(child,tab);
00042 showPage(child);
00043 maybeShow();
00044 }
00045
00046
void KMdiDocumentViewTabWidget::insertTab (
QWidget * child,
const QString & label,
int index) {
00047 KTabWidget::insertTab(child,label,index);
00048 showPage(child);
00049 maybeShow();
00050 tabBar()->repaint();
00051 }
00052
00053
void KMdiDocumentViewTabWidget::insertTab (
QWidget * child,
const QIconSet & iconset,
const QString & label,
int index ) {
00054 KTabWidget::insertTab(child,iconset,label,index);
00055 showPage(child);
00056 maybeShow();
00057 tabBar()->repaint();
00058 }
00059
00060
void KMdiDocumentViewTabWidget::insertTab (
QWidget * child,
QTab * tab,
int index) {
00061 KTabWidget::insertTab(child,tab,index);
00062 showPage(child);
00063 maybeShow();
00064 tabBar()->repaint();
00065 }
00066
00067
void KMdiDocumentViewTabWidget::removePage (
QWidget * w ) {
00068 KTabWidget::removePage(w);
00069 maybeShow();
00070 }
00071
00072
void KMdiDocumentViewTabWidget::updateIconInView(
QWidget *w,
QPixmap icon )
00073 {
00074 changeTab(w,icon,tabLabel(w));
00075 }
00076
00077
void KMdiDocumentViewTabWidget::updateCaptionInView(
QWidget *w,
const QString &caption )
00078 {
00079 changeTab(w, caption);
00080 }
00081
00082
void KMdiDocumentViewTabWidget::maybeShow()
00083 {
00084
if ( m_visibility == KMdi::AlwaysShowTabs )
00085 {
00086 tabBar()->show();
00087
if (cornerWidget())
00088 {
00089
if (count() == 0)
00090 cornerWidget()->hide();
00091
else
00092 cornerWidget()->show();
00093 }
00094 }
00095
00096
if ( m_visibility == KMdi::ShowWhenMoreThanOneTab )
00097 {
00098
if (count()<2) tabBar()->hide();
00099
if (count()>1) tabBar()->show();
00100
if (cornerWidget())
00101 {
00102
if (count() < 2)
00103 cornerWidget()->hide();
00104
else
00105 cornerWidget()->show();
00106 }
00107 }
00108
00109
if ( m_visibility == KMdi::NeverShowTabs )
00110 {
00111 tabBar()->hide();
00112 }
00113 }
00114
00115
void KMdiDocumentViewTabWidget::setTabWidgetVisibility( KMdi::TabWidgetVisibility visibility )
00116 {
00117 m_visibility = visibility;
00118 maybeShow();
00119 }
00120
00121 KMdi::TabWidgetVisibility KMdiDocumentViewTabWidget::tabWidgetVisibility( )
00122 {
00123
return m_visibility;
00124 }
00125
00126
#ifndef NO_INCLUDE_MOCFILES
00127
#include "kmdidocumentviewtabwidget.moc"
00128
#endif