//
// 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
//
//
#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 );
}