Qt: Retranslate GameList header and Filter line

Didn't notice this until I was trying to change the default font
to Comic Sans MS when language is set to English in yuzu.
This commit is contained in:
Kyle Kienapfel 2022-08-20 07:49:29 -07:00
parent 6f931d49c7
commit 5863f16b4c
3 changed files with 37 additions and 7 deletions

View File

@ -126,10 +126,8 @@ GameListSearchField::GameListSearchField(GameList* parent) : QWidget{parent} {
layout_filter = new QHBoxLayout; layout_filter = new QHBoxLayout;
layout_filter->setContentsMargins(8, 8, 8, 8); layout_filter->setContentsMargins(8, 8, 8, 8);
label_filter = new QLabel; label_filter = new QLabel;
label_filter->setText(tr("Filter:"));
edit_filter = new QLineEdit; edit_filter = new QLineEdit;
edit_filter->clear(); edit_filter->clear();
edit_filter->setPlaceholderText(tr("Enter pattern to filter"));
edit_filter->installEventFilter(key_release_eater); edit_filter->installEventFilter(key_release_eater);
edit_filter->setClearButtonEnabled(true); edit_filter->setClearButtonEnabled(true);
connect(edit_filter, &QLineEdit::textChanged, parent, &GameList::OnTextChanged); connect(edit_filter, &QLineEdit::textChanged, parent, &GameList::OnTextChanged);
@ -149,6 +147,7 @@ GameListSearchField::GameListSearchField(GameList* parent) : QWidget{parent} {
layout_filter->addWidget(label_filter_result); layout_filter->addWidget(label_filter_result);
layout_filter->addWidget(button_filter_close); layout_filter->addWidget(button_filter_close);
setLayout(layout_filter); setLayout(layout_filter);
RetranslateUI();
} }
/** /**
@ -333,13 +332,9 @@ GameList::GameList(FileSys::VirtualFilesystem vfs_, FileSys::ManualContentProvid
tree_view->setStyleSheet(QStringLiteral("QTreeView{ border: none; }")); tree_view->setStyleSheet(QStringLiteral("QTreeView{ border: none; }"));
item_model->insertColumns(0, COLUMN_COUNT); item_model->insertColumns(0, COLUMN_COUNT);
item_model->setHeaderData(COLUMN_NAME, Qt::Horizontal, tr("Name")); RetranslateUI();
item_model->setHeaderData(COLUMN_COMPATIBILITY, Qt::Horizontal, tr("Compatibility"));
item_model->setHeaderData(COLUMN_ADD_ONS, Qt::Horizontal, tr("Add-ons"));
tree_view->setColumnHidden(COLUMN_ADD_ONS, !UISettings::values.show_add_ons); tree_view->setColumnHidden(COLUMN_ADD_ONS, !UISettings::values.show_add_ons);
item_model->setHeaderData(COLUMN_FILE_TYPE, Qt::Horizontal, tr("File type"));
item_model->setHeaderData(COLUMN_SIZE, Qt::Horizontal, tr("Size"));
item_model->setSortRole(GameListItemPath::SortRole); item_model->setSortRole(GameListItemPath::SortRole);
connect(main_window, &GMainWindow::UpdateThemedIcons, this, &GameList::OnUpdateThemedIcons); connect(main_window, &GMainWindow::UpdateThemedIcons, this, &GameList::OnUpdateThemedIcons);
@ -753,6 +748,35 @@ void GameList::LoadCompatibilityList() {
} }
} }
void GameList::changeEvent(QEvent* event) {
if (event->type() == QEvent::LanguageChange) {
RetranslateUI();
}
QWidget::changeEvent(event);
}
void GameList::RetranslateUI() {
item_model->setHeaderData(COLUMN_NAME, Qt::Horizontal, tr("Name"));
item_model->setHeaderData(COLUMN_COMPATIBILITY, Qt::Horizontal, tr("Compatibility"));
item_model->setHeaderData(COLUMN_ADD_ONS, Qt::Horizontal, tr("Add-ons"));
item_model->setHeaderData(COLUMN_FILE_TYPE, Qt::Horizontal, tr("File type"));
item_model->setHeaderData(COLUMN_SIZE, Qt::Horizontal, tr("Size"));
}
void GameListSearchField::changeEvent(QEvent* event) {
if (event->type() == QEvent::LanguageChange) {
RetranslateUI();
}
QWidget::changeEvent(event);
}
void GameListSearchField::RetranslateUI() {
label_filter->setText(tr("Filter:"));
edit_filter->setPlaceholderText(tr("Enter pattern to filter"));
}
QStandardItemModel* GameList::GetModel() const { QStandardItemModel* GameList::GetModel() const {
return item_model; return item_model;
} }

View File

@ -140,6 +140,9 @@ private:
void AddPermDirPopup(QMenu& context_menu, QModelIndex selected); void AddPermDirPopup(QMenu& context_menu, QModelIndex selected);
void AddFavoritesPopup(QMenu& context_menu); void AddFavoritesPopup(QMenu& context_menu);
void changeEvent(QEvent*) override;
void RetranslateUI();
std::shared_ptr<FileSys::VfsFilesystem> vfs; std::shared_ptr<FileSys::VfsFilesystem> vfs;
FileSys::ManualContentProvider* provider; FileSys::ManualContentProvider* provider;
GameListSearchField* search_field; GameListSearchField* search_field;

View File

@ -353,6 +353,9 @@ public:
void setFocus(); void setFocus();
private: private:
void changeEvent(QEvent*) override;
void RetranslateUI();
class KeyReleaseEater : public QObject { class KeyReleaseEater : public QObject {
public: public:
explicit KeyReleaseEater(GameList* gamelist_, QObject* parent = nullptr); explicit KeyReleaseEater(GameList* gamelist_, QObject* parent = nullptr);