TranslationSelectionDialog.cpp
Go to the documentation of this file.00001 #include "TranslationSelectionDialog.h"
00002
00003 TranslationSelectionDialog::TranslationSelectionDialog( const QString& caption, const QString& message, const QStringList& languages, int selectionMode, Controller* controller, QWidget* parent )
00004 : QDialog( parent, 0, TRUE ), controller( controller ) {
00005 init( caption, message, languages, selectionMode );
00006 }
00007
00008 void TranslationSelectionDialog::init( const QString& caption, const QString& message, const QStringList& languages, int selectionMode ) {
00009 QFont mediumFont( controller->getPreferences().getMediumFont() );
00010
00011 messageLabel = new QLabel( message, this, "MessageLabel" );
00012
00013 languageList = new SmartListView( this, "LanguageList" );
00014 languageList->setStretchColumn( 0 );
00015 languageList->setAllColumnsShowFocus( true );
00016 languageList->addColumn( tr( "Languages" ) );
00017 for( QStringList::ConstIterator it = languages.begin(); it != languages.end(); it++ ) {
00018 QString lang = *it;
00019 QCheckListItem* item = new QCheckListItem( languageList, QObject::tr( lang ), QCheckListItem::CheckBox );
00020 switch( selectionMode ) {
00021 case selectionModeTargetLanguage :
00022 if( lang == controller->getPreferences().getTestLanguage() )
00023 item->setOn( true );
00024 break;
00025 case selectionModeStudyLanguages :
00026 if( controller->getPreferences().isStudyLanguage( lang ) )
00027 item->setOn( true );
00028 break;
00029 case selectionModeAllLanguages :
00030 item->setOn( true );
00031 break;
00032 }
00033 languageList->insertItem( item );
00034 }
00035 checkAllLanguagesButton = new QPushButton( tr( "CheckAllLanguages" ), this, "CheckAllLanguagesButton" );
00036 connect( checkAllLanguagesButton, SIGNAL( clicked() ), this, SLOT( checkAllLanguages() ) );
00037
00038 mainLayout = new QVBoxLayout( this );
00039 mainLayout->setMargin( 10 );
00040 mainLayout->setSpacing( 2 );
00041 mainLayout->addWidget( messageLabel );
00042 mainLayout->addWidget( languageList, 1 );
00043 mainLayout->addWidget( checkAllLanguagesButton );
00044
00045 setCaption( caption );
00046 }
00047
00048 TranslationSelectionDialog::~TranslationSelectionDialog() {
00049 }
00050
00051 QStringList TranslationSelectionDialog::getSelectedLanguages() {
00052 QStringList selectedLanguages;
00053 for( QCheckListItem* item = (QCheckListItem*)languageList->firstChild(); item; item = (QCheckListItem*)item->nextSibling() ) {
00054 if( item->isOn() )
00055 selectedLanguages.append( Util::getLanguageCode( item->text() ) );
00056 }
00057 return( selectedLanguages );
00058 }
00059
00060 void TranslationSelectionDialog::checkAllLanguages() const {
00061 for( QCheckListItem* item = (QCheckListItem*)languageList->firstChild(); item; item = (QCheckListItem*)item->nextSibling() ) {
00062 item->setOn( true );
00063 }
00064 }