mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-08 19:13:25 -08:00
[Client] Restore language switching in SettingsView
Take over DlgSettings::updateLanguage: swap the QTranslator on langChanged before any retranslateUi runs, so picking a language applies immediately instead of waiting for a restart.
This commit is contained in:
parent
3745c5d21d
commit
18cd13d196
2 changed files with 13 additions and 0 deletions
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
#include "../../../client/settings/cache_settings.h"
|
#include "../../../client/settings/cache_settings.h"
|
||||||
#include "../../pixel_map_generator.h"
|
#include "../../pixel_map_generator.h"
|
||||||
|
#include "../main.h"
|
||||||
#include "../settings_page/abstract_settings_page.h"
|
#include "../settings_page/abstract_settings_page.h"
|
||||||
#include "../settings_page/appearance_settings_page.h"
|
#include "../settings_page/appearance_settings_page.h"
|
||||||
#include "../settings_page/deck_editor_settings_page.h"
|
#include "../settings_page/deck_editor_settings_page.h"
|
||||||
|
|
@ -21,6 +22,7 @@
|
||||||
|
|
||||||
#include <QAbstractAnimation>
|
#include <QAbstractAnimation>
|
||||||
#include <QAbstractItemView>
|
#include <QAbstractItemView>
|
||||||
|
#include <QApplication>
|
||||||
#include <QBrush>
|
#include <QBrush>
|
||||||
#include <QColor>
|
#include <QColor>
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
|
|
@ -91,6 +93,10 @@ static QStringList pageIconResources()
|
||||||
|
|
||||||
SettingsView::SettingsView(QWidget *parent) : QWidget(parent), currentTabIndex(0), searchActive(false)
|
SettingsView::SettingsView(QWidget *parent) : QWidget(parent), currentTabIndex(0), searchActive(false)
|
||||||
{
|
{
|
||||||
|
// Swap the QTranslator before retranslating (was DlgSettings::updateLanguage): without this, picking a new
|
||||||
|
// language only stores the setting and every retranslateUi re-runs against the old translator until restart.
|
||||||
|
// Connected before setupUi() so the swap runs before the pages' own langChanged handlers below.
|
||||||
|
connect(&SettingsCache::instance().personal(), &PersonalSettings::langChanged, this, &SettingsView::updateLanguage);
|
||||||
setupUi();
|
setupUi();
|
||||||
|
|
||||||
connect(&SettingsCache::instance().personal(), &PersonalSettings::langChanged, this, &SettingsView::retranslateUi);
|
connect(&SettingsCache::instance().personal(), &PersonalSettings::langChanged, this, &SettingsView::retranslateUi);
|
||||||
|
|
@ -462,6 +468,12 @@ bool SettingsView::eventFilter(QObject *watched, QEvent *event)
|
||||||
return QWidget::eventFilter(watched, event);
|
return QWidget::eventFilter(watched, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SettingsView::updateLanguage()
|
||||||
|
{
|
||||||
|
qApp->removeTranslator(translator); // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast)
|
||||||
|
installNewTranslator();
|
||||||
|
}
|
||||||
|
|
||||||
void SettingsView::retranslateUi()
|
void SettingsView::retranslateUi()
|
||||||
{
|
{
|
||||||
retranslateTabNames();
|
retranslateTabNames();
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,7 @@ private slots:
|
||||||
void onTabClicked(int index);
|
void onTabClicked(int index);
|
||||||
void onSearchTextChanged(const QString &text);
|
void onSearchTextChanged(const QString &text);
|
||||||
void onSearchResultClicked(const QModelIndex &index);
|
void onSearchResultClicked(const QModelIndex &index);
|
||||||
|
void updateLanguage();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// UI elements
|
// UI elements
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue