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 }

Generated on Sun Mar 1 17:30:47 2009 for toMOTko by  doxygen 1.5.6