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.
tdesdk/kbugbuster/gui/buglvi.cpp

110 lines
3.1 KiB

/*
buglvi.cpp - Custom TQListViewItem that holds a Bug object
copyright : (c) 2001 by Martijn Klingens
email : klingens@kde.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 <tqfont.h>
#include <tqpainter.h>
#include <kstringhandler.h>
#include <kdebug.h>
#include "bugsystem.h"
#include "bugserver.h"
#include "buglvi.h"
using namespace KBugBusterMainWindow;
BugLVI::BugLVI( KListView *parent , const Bug &bug )
: KListViewItem( parent, bug.number() + " ",
i18n( "1 day", "%n days", bug.age() ),
bug.title(), //KStringHandler::csqueeze( bug.title(), 70 ),
Bug::statusLabel( bug.status() ),
Bug::severityLabel( bug.severity() ),
bug.submitter().fullName() )
{
m_bug = bug;
bool hasCommands = BugSystem::self()->server()->hasCommandsFor( bug );
mCommandState = hasCommands ? BugCommand::Queued : BugCommand::None;
if ( bug.age() == 0xFFFFFFFF )
setText( 1, i18n( "Unknown" ) );
Person developer = bug.developerTODO();
if ( !developer.name.isEmpty() )
setText( 3, i18n( "%1 (%2)" ).arg( Bug::statusLabel( bug.status() ), developer.name ) );
}
BugLVI::~BugLVI()
{
}
TQString BugLVI::key( int column, bool /* ascending */ ) const
{
TQString key;
if ( column == 0 )
{
key = text( 0 ).rightJustify( 10, '0' );
}
else if ( column == 1 )
{
if ( m_bug.age() == 0xFFFFFFFF )
key = "0";
else
key = TQString::number( m_bug.age() ).rightJustify( 10, '0' );
}
else if ( column == 4 )
{
key = TQString::number( 10 - m_bug.severity() );
key += m_bug.number().rightJustify( 10, '0' );
}
else
{
key = text( column );
}
return key;
}
void BugLVI::paintCell(TQPainter* p, const TQColorGroup& cg,
int column, int width, int align)
{
TQColorGroup newCg = cg;
if ( mCommandState == BugCommand::Queued ) {
TQFont font = p->font();
font.setBold( true );
p->setFont( font );
} else if ( mCommandState == BugCommand::Sent ) {
TQFont font = p->font();
font.setItalic( true );
p->setFont( font );
} else if ( m_bug.status() == Bug::Closed ) {
// Different color for closed bugs
newCg.setColor( TQColorGroup::Text, cg.color( TQColorGroup::Dark ) );
}
KListViewItem::paintCell( p, newCg, column, width, align );
}
void BugLVI::setCommandState( BugCommand::State state)
{
mCommandState = state;
}
// vim: set et ts=4 sw=4 sts=4: