//
// 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 "BranchSpecMenu.h"
#include "ImageManager.h"
#include "ServerThread.h"
#include "todo.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
BranchSpecMenu::BranchSpecMenu( QWidget* parent, const char* name ) :
QPopupMenu( parent, name )
{
insertItem( "New...", this, SLOT(slotNew()) );
insertItem( "Edit Spec...", this, SLOT(slotEditSpec()) );
insertItem( "Describe", this, SLOT(slotDescribe()) );
insertItem( "Delete", this, SLOT(slotDelete()) );
insertSeparator();
insertItem( "Inegrate from Spec...", this, SLOT(slotIntegrateFromSpec()) );
insertSeparator();
insertItem( "View Branches", this, SLOT(slotViewBranches()) );
}
BranchSpecMenu::~BranchSpecMenu()
{
}
void BranchSpecMenu::setListView( BranchSpecTable* view )
{
ASSERT( view != NULL );
_branchSpecTable = view;
}
void BranchSpecMenu::slotIntegrateFromSpec()
{
TODO();
}
void BranchSpecMenu::slotDelete()
{
TODO();
}
void BranchSpecMenu::slotNew()
{
TODO();
}
void BranchSpecMenu::slotDescribe()
{
TODO();
}
void BranchSpecMenu::slotEditSpec()
{
TODO();
}
void BranchSpecMenu::slotViewBranches()
{
ServerThread< BranchSpecMenu, BranchSpecMenuFuncPtr >* t =
new ServerThread< BranchSpecMenu, BranchSpecMenuFuncPtr >
( this, &BranchSpecMenu::_viewBranches );
}
void BranchSpecMenu::_viewBranches()
{
ASSERT( _branchSpecTable != NULL );
_branchSpecTable->clear();
Perforce::BranchSpec* bs;
Perforce::BranchSpecList branches = Perforce::BranchSpec::getBranches();
for (bs = branches.first(); bs != NULL; bs = branches.next()) {
ASSERT( bs != NULL );
_branchSpecTable->addBranchSpec( bs );
}
emit showBranchSpecs( BRANCH_SPEC_TABLE );
}
BranchSpecTable::BranchSpecTable( QWidget* parent, const char* name ) :
QListView( parent, name )
{
setSelectionMode( Single );
setAllColumnsShowFocus ( true );
addColumn( "Branch" );
addColumn( "Owner" );
addColumn( "Lock" );
addColumn( "Date" );
addColumn( "Description" );
}
void BranchSpecTable::addBranchSpec( const Perforce::BranchSpec* bs )
{
ASSERT( bs != NULL );
QListViewItem* item = new QListViewItem(
this,
bs->getBranchName(),
bs->getOwner(),
Perforce::BranchSpec::lockToString( bs->getLock() ),
bs->getDate().toString(),
bs->getDescription() );
item->setPixmap( 0, ImageManager::getInstance()->getPixmap("branch.png") );
}