diff options
author | Darrell Anderson <[email protected]> | 2013-03-02 15:57:34 -0600 |
---|---|---|
committer | Darrell Anderson <[email protected]> | 2013-03-02 15:57:34 -0600 |
commit | 7c0b0c9dc9fcbe9c198925bdc7ee18ac6be49f4f (patch) | |
tree | c76702a7f6310fbe9d437e347535422e836e94e9 /tdemdi/tdemdidocumentviewtabwidget.cpp | |
parent | a2a38be7600e2a2c2b49c66902d912ca036a2c0f (diff) | |
parent | 27bbee9a5f9dcda53d8eb23863ee670ad1360e41 (diff) | |
download | tdelibs-7c0b0c9dc9fcbe9c198925bdc7ee18ac6be49f4f.tar.gz tdelibs-7c0b0c9dc9fcbe9c198925bdc7ee18ac6be49f4f.zip |
Merge branch 'master' of http://scm.trinitydesktop.org/scm/git/tdelibs
Diffstat (limited to 'tdemdi/tdemdidocumentviewtabwidget.cpp')
-rw-r--r-- | tdemdi/tdemdidocumentviewtabwidget.cpp | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/tdemdi/tdemdidocumentviewtabwidget.cpp b/tdemdi/tdemdidocumentviewtabwidget.cpp new file mode 100644 index 000000000..936125e7f --- /dev/null +++ b/tdemdi/tdemdidocumentviewtabwidget.cpp @@ -0,0 +1,148 @@ +//---------------------------------------------------------------------------- +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2 of the +// License, or (at your option) any later version. +// +//---------------------------------------------------------------------------- + +#include <tqtimer.h> + +#include <ktabbar.h> +#include <tdepopupmenu.h> +#include "tdemdidocumentviewtabwidget.h" + +KMdiDocumentViewTabWidget::KMdiDocumentViewTabWidget( TQWidget* parent, const char* name ) : KTabWidget( parent, name ) +{ + m_visibility = KMdi::ShowWhenMoreThanOneTab; + tabBar() ->hide(); + setHoverCloseButton( true ); + connect( this, TQT_SIGNAL( closeRequest( TQWidget* ) ), this, TQT_SLOT( closeTab( TQWidget* ) ) ); +} + +KMdiDocumentViewTabWidget::~KMdiDocumentViewTabWidget() +{} + +void KMdiDocumentViewTabWidget::closeTab( TQWidget* w ) +{ + w->close(); +} +void KMdiDocumentViewTabWidget::addTab ( TQWidget * child, const TQString & label ) +{ + KTabWidget::addTab( child, label ); + showPage( child ); + TQTimer::singleShot(0, this, TQT_SLOT(maybeShow())); +} + +void KMdiDocumentViewTabWidget::addTab ( TQWidget * child, const TQIconSet & iconset, const TQString & label ) +{ + KTabWidget::addTab( child, iconset, label ); + showPage( child ); + TQTimer::singleShot(0, this, TQT_SLOT(maybeShow())); +} + +void KMdiDocumentViewTabWidget::addTab ( TQWidget * child, TQTab * tab ) +{ + KTabWidget::addTab( child, tab ); + showPage( child ); + TQTimer::singleShot(0, this, TQT_SLOT(maybeShow())); +} + +void KMdiDocumentViewTabWidget::insertTab ( TQWidget * child, const TQString & label, int index ) +{ + KTabWidget::insertTab( child, label, index ); + showPage( child ); + TQTimer::singleShot(0, this, TQT_SLOT(maybeShow())); + tabBar() ->repaint(); +} + +void KMdiDocumentViewTabWidget::insertTab ( TQWidget * child, const TQIconSet & iconset, const TQString & label, int index ) +{ + KTabWidget::insertTab( child, iconset, label, index ); + showPage( child ); + TQTimer::singleShot(0, this, TQT_SLOT(maybeShow())); + tabBar() ->repaint(); +} + +void KMdiDocumentViewTabWidget::insertTab ( TQWidget * child, TQTab * tab, int index ) +{ + KTabWidget::insertTab( child, tab, index ); + showPage( child ); + TQTimer::singleShot(0, this, TQT_SLOT(maybeShow())); + tabBar() ->repaint(); +} + +void KMdiDocumentViewTabWidget::removePage ( TQWidget * w ) +{ + KTabWidget::removePage( w ); + TQTimer::singleShot(0, this, TQT_SLOT(maybeShow())); +} + +void KMdiDocumentViewTabWidget::updateIconInView( TQWidget *w, TQPixmap icon ) +{ + changeTab( w, icon, tabLabel( w ) ); +} + +void KMdiDocumentViewTabWidget::updateCaptionInView( TQWidget *w, const TQString &caption ) +{ + changeTab( w, caption ); +} + +void KMdiDocumentViewTabWidget::maybeShow() +{ + switch (m_visibility) + { + case KMdi::AlwaysShowTabs: + tabBar() ->show(); + if ( cornerWidget() ) + { + if ( count() == 0 ) + cornerWidget() ->hide(); + else + cornerWidget() ->show(); + } + break; + + case KMdi::ShowWhenMoreThanOneTab: + if ( count() < 2 ) + tabBar() ->hide(); + else tabBar() ->show(); + if ( cornerWidget() ) + { + if ( count() < 2 ) + cornerWidget() ->hide(); + else + cornerWidget() ->show(); + } + break; + case KMdi::NeverShowTabs: + tabBar() ->hide(); + break; + } +} + +void KMdiDocumentViewTabWidget::setTabWidgetVisibility( KMdi::TabWidgetVisibility visibility ) +{ + m_visibility = visibility; + maybeShow(); +} + +void KMdiDocumentViewTabWidget::moveTab( int from, int to ) +{ + emit initiateTabMove( from, to ); + KTabWidget::moveTab( from, to ); +} + +KMdi::TabWidgetVisibility KMdiDocumentViewTabWidget::tabWidgetVisibility( ) +{ + return m_visibility; +} + + +#ifndef NO_INCLUDE_MOCFILES +#include "tdemdidocumentviewtabwidget.moc" +#endif + +// kate: space-indent off; tab-width 4; replace-tabs off; indent-mode csands; + |