diff --git a/cockatrice/src/dialogs/dlg_settings.cpp b/cockatrice/src/dialogs/dlg_settings.cpp index a46e4f87c..c9572f3c4 100644 --- a/cockatrice/src/dialogs/dlg_settings.cpp +++ b/cockatrice/src/dialogs/dlg_settings.cpp @@ -181,6 +181,9 @@ GeneralSettingsPage::GeneralSettingsPage() updateReleaseChannelBox.setCurrentIndex(settings.getUpdateReleaseChannelIndex()); setLayout(mainLayout); + + connect(&SettingsCache::instance(), &SettingsCache::langChanged, this, &GeneralSettingsPage::retranslateUi); + retranslateUi(); } QStringList GeneralSettingsPage::findQmFiles() @@ -464,6 +467,9 @@ AppearanceSettingsPage::AppearanceSettingsPage() mainLayout->addStretch(); setLayout(mainLayout); + + connect(&SettingsCache::instance(), &SettingsCache::langChanged, this, &AppearanceSettingsPage::retranslateUi); + retranslateUi(); } void AppearanceSettingsPage::themeBoxChanged(int index) @@ -648,6 +654,9 @@ UserInterfaceSettingsPage::UserInterfaceSettingsPage() mainLayout->addStretch(); setLayout(mainLayout); + + connect(&SettingsCache::instance(), &SettingsCache::langChanged, this, &UserInterfaceSettingsPage::retranslateUi); + retranslateUi(); } void UserInterfaceSettingsPage::setNotificationEnabled(QT_STATE_CHANGED_T i) @@ -820,6 +829,9 @@ DeckEditorSettingsPage::DeckEditorSettingsPage() lpMainLayout->addWidget(mpSpoilerGroupBox); setLayout(lpMainLayout); + + connect(&SettingsCache::instance(), &SettingsCache::langChanged, this, &DeckEditorSettingsPage::retranslateUi); + retranslateUi(); } void DeckEditorSettingsPage::resetDownloadedURLsButtonClicked() @@ -1122,6 +1134,7 @@ MessagesSettingsPage::MessagesSettingsPage() setLayout(mainLayout); + connect(&SettingsCache::instance(), &SettingsCache::langChanged, this, &MessagesSettingsPage::retranslateUi); retranslateUi(); } @@ -1296,6 +1309,9 @@ SoundSettingsPage::SoundSettingsPage() mainLayout->addStretch(); setLayout(mainLayout); + + connect(&SettingsCache::instance(), &SettingsCache::langChanged, this, &SoundSettingsPage::retranslateUi); + retranslateUi(); } void SoundSettingsPage::themeBoxChanged(int index) @@ -1388,6 +1404,9 @@ ShortcutSettingsPage::ShortcutSettingsPage() connect(btnClearAll, SIGNAL(clicked()), this, SLOT(clearShortcuts())); connect(shortcutsTable, &ShortcutTreeView::currentItemChanged, this, &ShortcutSettingsPage::currentItemChanged); + + connect(&SettingsCache::instance(), &SettingsCache::langChanged, this, &ShortcutSettingsPage::retranslateUi); + retranslateUi(); } void ShortcutSettingsPage::currentItemChanged(const QString &key) @@ -1475,6 +1494,7 @@ DlgSettings::DlgSettings(QWidget *parent) : QDialog(parent) mainLayout->addWidget(buttonBox); setLayout(mainLayout); + connect(&SettingsCache::instance(), &SettingsCache::langChanged, this, &DlgSettings::retranslateUi); retranslateUi(); adjustSize(); @@ -1543,13 +1563,6 @@ void DlgSettings::updateLanguage() installNewTranslator(); } -void DlgSettings::changeEvent(QEvent *event) -{ - if (event->type() == QEvent::LanguageChange) - retranslateUi(); - QDialog::changeEvent(event); -} - void DlgSettings::closeEvent(QCloseEvent *event) { bool showLoadError = true; @@ -1638,8 +1651,5 @@ void DlgSettings::retranslateUi() soundButton->setText(tr("Sound")); shortcutsButton->setText(tr("Shortcuts")); - for (int i = 0; i < pagesWidget->count(); i++) - dynamic_cast(pagesWidget->widget(i))->retranslateUi(); - contentsWidget->reset(); } diff --git a/cockatrice/src/dialogs/dlg_settings.h b/cockatrice/src/dialogs/dlg_settings.h index 7b03113c0..c608969d7 100644 --- a/cockatrice/src/dialogs/dlg_settings.h +++ b/cockatrice/src/dialogs/dlg_settings.h @@ -323,7 +323,6 @@ private: void retranslateUi(); protected: - void changeEvent(QEvent *event) override; void closeEvent(QCloseEvent *event) override; };