//
// 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
//
// TODO: find legit copyright.
//
#include "User.h"
#include "ConfigOptions.h"
namespace Perforce {
User::User( const QString& uname,
const QString& email,
const QString& fullName,
int month,
int day,
int year ) : _userName( uname ),
_email( email ),
_fullName( fullName ),
_lastAccess( month, day, year )
{
}
User* User::createNewUser( const QString& p4out )
{
return new User( p4out );
}
User::User( const QString& p4Output )
{
int start = 0;
int end = 0;
end = p4Output.find( '<' );
_userName = p4Output.mid( start, end - 1 );
// qDebug( "UserName: %s", _userName.latin1() );
start = end + 1;
end = p4Output.find( '>', start );
_email = p4Output.mid( start, (end - start) );
// qDebug( "Email: %s", _email.latin1() );
start = p4Output.find( '(', start );
end = p4Output.find( ')', start );
_fullName = p4Output.mid( start + 1, (end - start - 1) );
// qDebug( "FullName: %s", _fullName.latin1() );
// should be pointing to the 'a' in "accessed"
start = p4Output.find( "accessed", start) + 9;
end = p4Output.find( '/', start );
int year = p4Output.mid( start, (end - start) ).toInt();
ASSERT( year > 1900 );
start = end + 1;
end = p4Output.find( '/', end + 1);
int month = p4Output.mid( start, (end-start)).toInt();
// qDebug( "Month: %s", p4Output.mid(start,end-start).latin1() );
start = end + 1;
int day = p4Output.mid(start,(p4Output.length()-start) ).toInt();
// qDebug( "Day: %s", p4Output.mid(start,(p4Output.length()-start)).latin1() );
_lastAccess = QDate( year, month, day );
}
User::~User()
{
}
} // end namespace
QPixmap* UserTable::_userBitmap = NULL;
//========================================================================
// The UserTable is not in the perforce namespace
//
UserTable::UserTable( QWidget* parent, const char* name ) :
QListView( parent, name )
{
// setNumCols( 4 );
setSelectionMode( Extended );
addColumn( "Name" );
addColumn( "Email" );
addColumn( "Full Name" );
addColumn( "Last Accessed" );
if (_userBitmap == NULL) {
_userBitmap = new QPixmap();
// int cFlags = Color;
QString bitmapDir = ConfigOptions::getInstance()->getImageDir();
if (!_userBitmap->load(bitmapDir + "/user.png")) {
qWarning( "Failed to load image" );
}
}
}
void UserTable::addUser( const Perforce::User* u )
{
ASSERT( u != NULL );
// qDebug( "Adding user to view: %s", u->getUserName().latin1() );
QListViewItem* item = new QListViewItem(
this,
u->getUserName(),
u->getEmail(),
u->getFullName(),
u->getLastAccessed().toString() );
item->setPixmap( 0, *_userBitmap );
}