//
// QPerforce is a gui interface to the perforce revision control
// system. It is based on the qt library, and should be easily portable
// across any platform that has this toolkit available.
//
// Copyright (C) 2002 Jacob Gladish
//
// 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.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
#include "SubmittedChangeList.h"
#include <qpixmap.h>
#include <qstringlist.h>
QPixmap* SubmittedChangeListsTable::_triangleBitmap = NULL;
Perforce::SubmittedChangeList::SubmittedChangeList( int num,
const QDate& date,
const QString& user,
const QString& desc ) :
_number( num ),
_date( date ),
_user( user ),
_description( desc )
{
}
Perforce::SubmittedChangeList::~SubmittedChangeList()
{
}
Perforce::SubmittedChangeList*
Perforce::SubmittedChangeList::createNewChangeList( const QString& p4Out )
{
QString temp;
int start = 0, end = 0;
// find first space
start = p4Out.find( ' ' );
end = p4Out.find( "on", start ) - 1;
temp = p4Out.mid( start + 1, (end-start) );
// qDebug( "Number: %s", temp.latin1() );
int number = temp.toInt();
start = p4Out.find( "on", end ) + 3;
end = p4Out.find( "by", start ) - 1;
temp = p4Out.mid( start, (end-start) );
// qDebug( "Date: %s", temp.latin1() );
// split date
QStringList dList = QStringList::split( "/", temp );
int year = dList[0].toInt();
int month = dList[1].toInt();
int day = dList[2].toInt();
start = p4Out.find( "by", start ) + 3;
end = p4Out.find( '\'', start );
temp = p4Out.mid( start, (end-start-1) );
// qDebug( "By: %s", temp.latin1() );
QString user = temp;
start = end + 1;
end = p4Out.find( '\'', end + 1 );
temp = p4Out.mid( start, (end-start) );
// qDebug( "Description: %s", temp.latin1() );
QString description = temp;
QDate t( year, month, day );
return new Perforce::SubmittedChangeList( number,
t,
user,
description );
}
SubmittedChangeListsTable::SubmittedChangeListsTable( QWidget* parent,
const char* name ) :
QListView( parent, name )
{
// setNumCols( 4 );
setSelectionMode( Extended );
setSorting( 0, false );
addColumn( "Changelist" );
addColumn( "Date" );
addColumn( "User" );
addColumn( "Description" );
if (_triangleBitmap == NULL) {
_triangleBitmap = new QPixmap();
if (!_triangleBitmap->load("user_head.bmp")) {
qWarning( "Failed to load 'user_head.bmp'" );
}
}
}
void SubmittedChangeListsTable::addSubmittedChangeList(
const Perforce::SubmittedChangeList* scl
)
{
ASSERT( scl != NULL );
// qDebug( "Adding user to view: %s", u->getUserName().latin1() );
QString listNumber;
listNumber.setNum( scl->getChangeListNumber() );
QListViewItem* item = new QListViewItem(
this,
listNumber,
scl->getDate().toString(),
scl->getUser(),
scl->getDescription() );
item->setPixmap( 0, *_triangleBitmap );
}