You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdevelop/vcs/cvsservice/cvslogdialog.cpp

114 lines
3.8 KiB

/***************************************************************************
* Copyright (C) 200?-2003 by KDevelop Authors *
* www.kdevelop.org *
* *
* 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 <tqvbox.h>
#include <tqregexp.h>
#include <tqdir.h>
#include <tqstringlist.h>
#include <tdemessagebox.h>
#include <kcursor.h>
#include <tdelocale.h>
#include <kdebug.h>
#include <cvsjob_stub.h>
#include <cvsservice_stub.h>
#include "cvsoptions.h"
#include "cvslogpage.h"
#include "cvsdiffpage.h"
#include "cvslogdialog.h"
///////////////////////////////////////////////////////////////////////////////
// class CVSLogDialog
///////////////////////////////////////////////////////////////////////////////
CVSLogDialog::CVSLogDialog( CvsService_stub *cvsService, TQWidget *parent, const char *name, int )
: KDialogBase( Tabbed, i18n("CVS Log & Diff Dialog"), Close, Close,
parent, name? name : "logformdialog", false /*modal*/, true /*separator*/ ),
m_cvsLogPage( 0 ), m_cvsService( cvsService )
{
setWFlags( getWFlags() | WDestructiveClose );
TQVBox *vbox = addVBoxPage( i18n("Log From CVS") );
m_cvsLogPage = new CVSLogPage( m_cvsService, vbox );
connect( m_cvsLogPage, TQ_SIGNAL(diffRequested(const TQString&, const TQString&, const TQString&)),
this, TQ_SLOT(slotDiffRequested(const TQString&, const TQString&, const TQString&)) );
}
///////////////////////////////////////////////////////////////////////////////
CVSLogDialog::~CVSLogDialog()
{
kdDebug(9006) << "CVSLogDialog::~CVSLogDialog()" << endl;
}
///////////////////////////////////////////////////////////////////////////////
void CVSLogDialog::startLog( const TQString &workDir, const TQString &pathName )
{
kdDebug(9006) << "CVSLogDialog::start() here! workDir = " << workDir <<
", pathName = " << pathName << endl;
// displayActionFeedback( true );
/*
TQVBox *vbox = addVBoxPage( i18n("Log From CVS: ") + pathName );
m_cvsLogPage = new CVSLogPage( m_cvsService, vbox );
this->resize( m_cvsLogPage->size() );
connect( m_cvsLogPage, TQ_SIGNAL(linkClicked(const TQString&, const TQString&)),
this, TQ_SLOT(slotDiffRequested(const TQString&, const TQString&)) );
*/
m_cvsLogPage->startLog( workDir, pathName );
}
///////////////////////////////////////////////////////////////////////////////
void CVSLogDialog::slotDiffRequested( const TQString &pathName, const TQString &revA, const TQString &revB )
{
kdDebug(9006) << "CVSLogDialog::slotDiffRequested()" << endl;
// Create a new CVSDiffPage and start diffing process
TQString diffTitle = i18n("Diff between %1 and %2").arg( revA ).arg( revB );
TQVBox *vbox = addVBoxPage( diffTitle );
CVSDiffPage *diffPage = new CVSDiffPage( m_cvsService, vbox );
diffPage->startDiff( pathName, revA, revB );
}
///////////////////////////////////////////////////////////////////////////////
void CVSLogDialog::slotCancel()
{
// Hmmm ...
KDialogBase::slotCancel();
}
///////////////////////////////////////////////////////////////////////////////
void CVSLogDialog::displayActionFeedback( bool working )
{
if (working)
{
setCursor( KCursor::waitCursor() );
}
else
{
setCursor( KCursor::arrowCursor() );
}
}
#include "cvslogdialog.moc"