void Wikipedia::setLangCode(const QString &nLangCode) { if (nLangCode != m_langCode) { m_langCode = nLangCode; #ifdef QT_DEBUG qDebug() << "Changed langCode to" << m_langCode; #endif emit langCodeChanged(langCode()); getTranslation(); } }
void Wikipedia::getTranslation() { if (langCode().isEmpty() || entry().isEmpty()) { return; } QSettings s; QString lang = s.value(QStringLiteral("display/language")).toString().left(2).toUpper(); if (lang.isEmpty() || (lang == QLatin1String("C"))) { lang = QLocale::system().name().left(2); } QUrl wpURL; wpURL.setScheme(QStringLiteral("https")); if (lang == langCode()) { wpURL.setHost(QStringLiteral("%1.wikipedia.org").arg(langCode())); wpURL.setPath(QStringLiteral("/wiki/%1").arg(entry())); } else { QString enFallback; QMap<QString, QString> interWiki = reqTranslations(langCode(), entry()); if (interWiki.contains(QStringLiteral("en"))) { enFallback = interWiki.value(QStringLiteral("en")); } while (!interWiki.contains(lang) && (interWiki[QStringLiteral("cont")] != QStringLiteral(""))) { interWiki = reqTranslations(langCode(), entry(), interWiki[QStringLiteral("cont")]); if (interWiki.contains(QStringLiteral("en"))) { enFallback = interWiki.value(QStringLiteral("en")); } } if (interWiki.contains(lang)) { wpURL.setHost(QStringLiteral("%1.wikipedia.org").arg(lang)); wpURL.setPath(QStringLiteral("/wiki/%1").arg(interWiki[lang])); } else if (!enFallback.isEmpty()) { wpURL.setHost(QStringLiteral("en.wikipedia.org")); wpURL.setPath(QStringLiteral("/wiki/%1").arg(enFallback)); } else { wpURL.setHost(QStringLiteral("%1.wikipedia.org").arg(langCode())); wpURL.setPath(QStringLiteral("/wiki/%1").arg(entry())); } #ifdef QT_DEBUG qDebug() << "Wikipedia URL: " << wpURL; #endif } setUrl(wpURL); }
/*! change current index. if sytem language exists, then will update the translation of item "System" through changeSysText() */ bool QAbstractLangList::changeLangIndex(int index) { bool changed=false; if(index!=d->langIndexOld) { changed=true; d->langIndexOld=index; d->languageCode=langCode(d->langIndexOld); changeSysText(); //qDebug("index %d",d->langIndexOld); //emit langChanged(); if(d->ts->load(d->qms[index], d->qmDir)) #ifdef QAbstractLangList_QT4 qDebug()<<"load "+d->qms[index]+" succesful"; #else qDebug("load "+d->qms[index]+" succesful"); #endif //if this is in a dialog and we canceled, don't change the settings #ifdef NO_EZX QSettings settings(d->cfg,QSettings::NativeFormat); settings.setValue("Languages/LanguageIndex",index); #else SETUP_SET_Manager mgr(d->cfg, false); mgr.setSettingInfo("Languages", "LanguageIndex",index); #endif //NO_EZX #ifndef QAbstractLangList_QT4 //qDebug("TopLevelWidget: %s",topLevelWidget()->name()); #endif //QAbstractLangList_QT4 } return changed; }
void PreferencesDialog::accept() { cancelSetAccelKey(); if( !isRevealingSequenceSelectionValid() ) { tab->setCurrentWidget( quizPage ); QMessageBox::warning( this, QObject::tr( "Warning" ), tr( "RevealingOrderMandatory" ) ); return; } if( !isStudyLanguageSelectionValid() ) { tab->setCurrentWidget( languagePage ); QMessageBox::warning( this, QObject::tr( "Warning" ), tr( "StudyLanguagesMandatory" ) ); return; } prefs->setQuizLength( quizLengthSlider->value() ); prefs->clearRevealingSequences(); for( int i = 0; i < sequencesView->topLevelItemCount(); i++ ) { SequenceListItem* item = (SequenceListItem*)sequencesView->topLevelItem( i ); bool isChecked = ( item->checkState( 0 ) != Qt::Unchecked ); Sequence seq = item->getSequence(); seq.setEnabled( isChecked ); prefs->addRevealingSequence( seq ); } prefs->setLabelsFontFamily( labelsFontFamilyComboBox->currentText() ); int fontSizeNameListLength = sizeof( fontSizeNameList ) / sizeof( QString ); int labelsFontSizeModifier = labelsFontSizeComboBox->currentIndex() - ( fontSizeNameListLength - 1 ) / 2; prefs->setLabelsFontSizeModifier( labelsFontSizeModifier ); prefs->setFontFamily( fontFamilyComboBox->currentText() ); int fontSizeModifier = fontSizeComboBox->currentIndex() - ( fontSizeNameListLength - 1 ) / 2; prefs->setFontSizeModifier( fontSizeModifier ); prefs->clearFontOverrideFamilies(); prefs->clearFontOverrideSizes(); int fontOverrideCount = fontOverrideLabels.count(); for( int i = 0; i < fontOverrideCount; i++ ) { const QString& language = Util::getLanguageCode( fontOverrideLabels.at( i )->text() ); if( fontOverrideFamilyComboBoxes.at( i )->currentIndex() > 0 ) prefs->setFontOverrideFamily( language, fontOverrideFamilyComboBoxes.at( i )->currentText() ); if( fontOverrideSizeComboBoxes.at( i )->currentIndex() > 0 ) { int fontSizeModifier = ( fontOverrideSizeComboBoxes.at( i )->currentIndex() - 1 ) - ( fontSizeNameListLength - 1 ) / 2; prefs->setFontOverrideSize( language, fontSizeModifier ); } } bool firstLanguageExists = false; bool testLanguageExists = false; prefs->clearStudyLanguages(); for( int i = 0; i < studyLanguagesListView->topLevelItemCount(); i++ ) { QTreeWidgetItem* item = studyLanguagesListView->topLevelItem( i ); bool isChecked = ( item->checkState( 0 ) != Qt::Unchecked ); if( isChecked ) { QString langCode( Util::getLanguageCode( item->text( 0 ) ) ); prefs->addStudyLanguage( langCode ); if( !firstLanguageExists ) firstLanguageExists = ( prefs->getFirstLanguage() == langCode ); if( !testLanguageExists ) testLanguageExists = (prefs->getTestLanguage() == langCode ); } } if( !firstLanguageExists ) prefs->setFirstLanguage( QString( "" ) ); if( !testLanguageExists ) prefs->setTestLanguage( QString( "" ) ); bool isDigraphEnabled = ( digraphCheckBox->checkState() != Qt::Unchecked ); prefs->setDigraphEnabled( isDigraphEnabled ); bool isQuizButtonHiddenChecked = ( hideQuizButtonCheckBox->checkState() != Qt::Unchecked ); prefs->setQuizButtonsHidden( isQuizButtonHiddenChecked ); bool isAltInTermListShownChecked = ( showAltTextInTermListCheckBox->checkState() != Qt::Unchecked ); prefs->setAltInTermListShown( isAltInTermListShownChecked ); if( keyboardAccelModified ) { for( int i = 0; i < keyboardAccelListView->topLevelItemCount(); i++ ) { KeyActionListViewItem* item = (KeyActionListViewItem*)keyboardAccelListView->topLevelItem( i ); QAction *action = item->getAction(); action->setShortcut( item->getKey() ); prefs->setAccelerator( item->getActionIndex(), item->getKey() ); } } QDialog::accept(); }
void PreferencesDialog::accept() { cancelSetAccelKey(); if( !isRevealingSequenceSelectionValid() ) { tab->showPage( quizPage ); QMessageBox::warning( this, QObject::tr( "Warning" ), tr( "RevealingOrderMandatory" ) ); return; } if( !isStudyLanguageSelectionValid() ) { tab->showPage( languagePage ); QMessageBox::warning( this, QObject::tr( "Warning" ), tr( "StudyLanguagesMandatory" ) ); return; } if( quizAlgoOriginalRadioButton->isChecked() ) prefs->setQuizAlgorithm( Preferences::ORIGINAL ); else if( quizAlgoSuperMemo2RadioButton->isChecked() ) prefs->setQuizAlgorithm( Preferences::SUPERMEMO2 ); prefs->setQuizCharacterImageLocation( quizCharacterImageLocationField->text() ); prefs->setQuizCharacterImagesAnimated( quizCharacterImageTypeCheckbox->isOn() ); prefs->setQuizLength( quizLengthSlider->value() ); prefs->clearRevealingSequences(); for( SequenceListItem* item = (SequenceListItem*)sequencesView->firstChild(); item; item = (SequenceListItem*)item->nextSibling() ) prefs->addRevealingSequence( item->getSequence() ); prefs->setLabelsFontFamily( labelsFontFamilyComboBox->text( labelsFontFamilyComboBox->currentItem() ) ); int fontSizeNameListLength = sizeof( fontSizeNameList ) / sizeof( QString ); int labelsFontSizeModifier = labelsFontSizeComboBox->currentItem() - ( fontSizeNameListLength - 1 ) / 2; prefs->setLabelsFontSizeModifier( labelsFontSizeModifier ); prefs->setFontFamily( fontFamilyComboBox->text( fontFamilyComboBox->currentItem() ) ); int fontSizeModifier = fontSizeComboBox->currentItem() - ( fontSizeNameListLength - 1 ) / 2; prefs->setFontSizeModifier( fontSizeModifier ); prefs->clearFontOverrideFamilies(); prefs->clearFontOverrideSizes(); int fontOverrideCount = fontOverrideLabels.count(); for( int i = 0; i < fontOverrideCount; i++ ) { const QString& language = Util::getLanguageCode( fontOverrideLabels.at( i )->text() ); if( fontOverrideFamilyComboBoxes.at( i )->currentItem() > 0 ) prefs->setFontOverrideFamily( language, fontOverrideFamilyComboBoxes.at( i )->currentText() ); if( fontOverrideSizeComboBoxes.at( i )->currentItem() > 0 ) { int fontSizeModifier = ( fontOverrideSizeComboBoxes.at( i )->currentItem() - 1 ) - ( fontSizeNameListLength - 1 ) / 2; prefs->setFontOverrideSize( language, fontSizeModifier ); } } bool firstLanguageExists = false; bool testLanguageExists = false; prefs->clearStudyLanguages(); for( QCheckListItem* item = (QCheckListItem*)studyLanguagesListView->firstChild(); item; item = (QCheckListItem*)item->nextSibling() ) { if( item->isOn() ) { QString langCode( Util::getLanguageCode( item->text() ) ); prefs->addStudyLanguage( langCode ); if( !firstLanguageExists ) firstLanguageExists = ( prefs->getFirstLanguage() == langCode ); if( !testLanguageExists ) testLanguageExists = (prefs->getTestLanguage() == langCode ); } } if( !firstLanguageExists ) prefs->setFirstLanguage( QString::null ); if( !testLanguageExists ) prefs->setTestLanguage( QString::null ); prefs->setDigraphEnabled( digraphCheckBox->isOn() ); prefs->setQuizButtonsHidden( hideQuizButtonCheckBox->isOn() ); prefs->setAltInTermListShown( showAltTextInTermListCheckBox->isOn() ); if( keyboardAccelModified ) { for( KeyActionListViewItem* item = (KeyActionListViewItem*)keyboardAccelListView->firstChild(); item ; item = (KeyActionListViewItem*)item->nextSibling() ) { QAction *action = item->getAction(); action->setAccel( item->getKey() ); prefs->setAccelerator( item->getActionIndex(), item->getKey() ); } } QDialog::accept(); }