void QuizFrame::editCurrentTerm() { if( controller->isQuizInProgress() ) { Folder* vocabTree = controller->getVocabTree(); Term* term = controller->getCurrentTerm(); if( !term ) { QMessageBox::warning( this, QObject::tr( "Information" ), tr( "DissociatedWord" ) ); return; } Vocabulary* vocab = vocabTree->getVocabulary( term->getVocabId() ); if( vocab == NULL || !vocab->isTermExists( term->getId() ) ) { QMessageBox::warning( this, QObject::tr( "Information" ), tr( "DissociatedWord" ) ); return; } TermDialog dialog( *vocab, controller, this, *term ); int result = dialog.exec(); if( result ) { QString firstLang( controller->getQuizFirstLanguage() ); QString testLang( controller->getQuizTestLanguage() ); Term newTerm = dialog.getTerm(); Translation firstLangTrans = newTerm.getTranslation( firstLang ); Translation testLangTrans = newTerm.getTranslation( testLang ); term->addTranslation( firstLangTrans ); term->addTranslation( testLangTrans ); BilingualKey commentKey( firstLang, testLang ); term->addComment( commentKey, newTerm.getComment( commentKey ) ); term->setImagePath( newTerm.getImagePath() ); vocab->setModificationDate( QDateTime::currentDateTime() ); vocab->setDirty( true ); setTerm( newTerm ); } } }
void QuizFrame::setTerm( const Term& term ) { Translation firstLangTranslation = term.getTranslation( controller->getQuizFirstLanguage() ); Translation testLangTranslation = term.getTranslation( controller->getQuizTestLanguage() ); const QString firstLangWord = firstLangTranslation.getWord(); const QString testLangAlt = testLangTranslation.getAlt(); const QString testLangWord = testLangTranslation.getWord(); QString comment; BilingualKey commentKey( controller->getQuizFirstLanguage(), controller->getQuizTestLanguage() ); if( term.isCommentExists( commentKey ) ) comment = term.getComment( commentKey ); firstLangTermLineEdit->setText( firstLangWord ); firstLangTermLineEdit->setCursorPosition( 0 ); testLangTermAltLineEdit->setText( testLangAlt ); testLangTermAltLineEdit->setCursorPosition( 0 ); testLangTermLineEdit->setText( testLangWord ); testLangTermLineEdit->setCursorPosition( 0 ); commentMultiLineEdit->setText( comment ); Folder* vocabTree = controller->getVocabTree(); Vocabulary* vocab = vocabTree->getVocabulary( term.getVocabId() ); if( vocab ) { QString absPath = controller->getResolvedImagePath( term.getImagePath(), *vocab ); setImage( absPath ); } }