/* 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 #include #include #include #include "bugsystem.h" #include "bugserver.h" #include "buglvi.h" using namespace KBugBusterMainWindow; BugLVI::BugLVI( TDEListView *parent , const Bug &bug ) : TDEListViewItem( 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 ) ); } TDEListViewItem::paintCell( p, newCg, column, width, align ); } void BugLVI::setCommandState( BugCommand::State state) { mCommandState = state; }