mirror of
https://bitbucket.org/smil3y/kde-extraapps.git
synced 2025-02-24 19:02:53 +00:00
86 lines
2.6 KiB
C++
86 lines
2.6 KiB
C++
/***************************************************************************
|
|
* Copyright 2007 Robert Gruber <rgruber@users.sourceforge.net> *
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#include "cvsmainview.h"
|
|
|
|
#include <KLocale>
|
|
#include <KDebug>
|
|
|
|
#include "cvsplugin.h"
|
|
#include "cvsjob.h"
|
|
#include "cvsgenericoutputview.h"
|
|
|
|
CvsMainView::CvsMainView( CvsPlugin *plugin, QWidget* parent )
|
|
: QWidget( parent ),
|
|
Ui::CvsMainViewBase(),
|
|
m_plugin(plugin)
|
|
{
|
|
Ui::CvsMainViewBase::setupUi(this);
|
|
setWindowTitle(i18n("CVS"));
|
|
|
|
// CvsPlugin will notify when a job finished
|
|
connect(m_plugin, SIGNAL(jobFinished(KJob*)),
|
|
this, SLOT(slotJobFinished(KJob*)));
|
|
|
|
// allow appending of new views
|
|
connect(m_plugin, SIGNAL(addNewTabToMainView(QWidget*,QString)),
|
|
this, SLOT(slotAddTab(QWidget*,QString)) );
|
|
|
|
// create a default output view
|
|
m_mainview = new CvsGenericOutputView;
|
|
tabwidget->addTab( m_mainview, i18n("CVS") );
|
|
|
|
// add a close button as corner widget
|
|
m_closeButton = new QToolButton(tabwidget);
|
|
m_closeButton->setIcon( KIcon( "tab-close" ) );
|
|
m_closeButton->adjustSize();
|
|
m_closeButton->setAutoRaise(true);
|
|
m_closeButton->setEnabled(false);
|
|
tabwidget->setCornerWidget( m_closeButton );
|
|
connect(m_closeButton, SIGNAL(clicked()),
|
|
this, SLOT(slotTabClose()));
|
|
}
|
|
|
|
CvsMainView::~CvsMainView()
|
|
{
|
|
delete m_mainview;
|
|
}
|
|
|
|
void CvsMainView::slotAddTab(QWidget * tab, const QString& label)
|
|
{
|
|
kDebug(9500) << "adding tab:" << label;
|
|
|
|
int idx = tabwidget->addTab( tab, label );
|
|
tabwidget->setCurrentIndex(idx);
|
|
|
|
if (tabwidget->count() > 1)
|
|
m_closeButton->setEnabled(true);
|
|
}
|
|
|
|
void CvsMainView::slotJobFinished(KJob * job)
|
|
{
|
|
m_mainview->slotJobFinished(job);
|
|
tabwidget->setCurrentIndex(0);
|
|
}
|
|
|
|
void CvsMainView::slotTabClose()
|
|
{
|
|
int idx = tabwidget->currentIndex();
|
|
|
|
// don't allow to close the first tab
|
|
if (idx != 0)
|
|
tabwidget->removeTab( idx );
|
|
|
|
// if only the first tab remains, disable the close button
|
|
if (tabwidget->count() <= 1)
|
|
m_closeButton->setEnabled(false);
|
|
}
|
|
|
|
#include "moc_cvsmainview.cpp"
|