TermListItem.cpp
Go to the documentation of this file.00001 #include "TermListItem.h"
00002
00003 TermListItem::TermListItem( QListView* parent, Term* term, const QString& firstLanguage, const QString& testLanguage, bool isAltShown = true )
00004 : QCheckListItem( parent, "TermListItem", CheckBox ), term( term ), firstLanguage( firstLanguage ), testLanguage( testLanguage ),
00005 altShown( isAltShown ) {
00006 updateUi();
00007 }
00008
00009 TermListItem::~TermListItem() {
00010 }
00011
00012 void TermListItem::updateUi() {
00013 if( term ) {
00014 setOn( term->isMarkedForStudy() );
00015 if( term->isTranslationExists( firstLanguage ) ) {
00016 const Translation& firstLangTranslation = term->getTranslation( firstLanguage );
00017 setText( 0, firstLangTranslation.getWord() );
00018 }
00019 else
00020 setText( 0, QObject::tr( "Undefined" ) );
00021
00022 if( term->isTranslationExists( testLanguage ) ) {
00023 const Translation& testLangTranslation = term->getTranslation( testLanguage );
00024 QString testLangStr = testLangTranslation.getWord();
00025 if( altShown && testLangTranslation.getAlt().length() > 0 )
00026 testLangStr += " [" + testLangTranslation.getAlt() + "]";
00027 setText( 1, testLangStr );
00028 }
00029 else
00030 setText( 1, QObject::tr( "Undefined" ) );
00031 }
00032 }
00033
00034 void TermListItem::setOn( bool isOn ) {
00035 QCheckListItem::setOn( isOn );
00036 term->setMarkedForStudy( isOn );
00037 }
00038
00039 Term* TermListItem::getTerm() {
00040 return( term );
00041 }
00042
00043 void TermListItem::setFont( int column, const QFont& font ) {
00044 fonts[ column ] = font;
00045 }
00046
00047 QFont TermListItem::font( int column ) const {
00048 if( fonts.contains( column ) )
00049 return( fonts[ column ] );
00050 else
00051 return( listView()->font() );
00052 }
00053
00054 void TermListItem::paintCell( QPainter* p, const QColorGroup& cg, int column, int width, int align ) {
00055 if( !p )
00056 return;
00057
00058 QFont oldFont = p->font();
00059 p->setFont( font( column ) );
00060
00061 QCheckListItem::paintCell( p, cg, column, width, align );
00062
00063 QColorGroup colorGroup( cg );
00064 switch( column ) {
00065 case 0 :
00066 if( term && !term->isTranslationExists( firstLanguage ) )
00067 colorGroup.setColor( QColorGroup::Text, listView()->palette().color( QPalette::Disabled, QColorGroup::Text ) );
00068 break;
00069
00070 case 1 :
00071 if( term && !term->isTranslationExists( testLanguage ) )
00072 colorGroup.setColor( QColorGroup::Text, listView()->palette().color( QPalette::Disabled, QColorGroup::Text ) );
00073 break;
00074 }
00075
00076 QListViewItem::paintCell( p, colorGroup, column, width, align );
00077
00078 p->setFont( oldFont );
00079 }