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