configure_gamelist.cpp 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. // Copyright 2016 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #include <array>
  5. #include <utility>
  6. #include "common/common_types.h"
  7. #include "core/settings.h"
  8. #include "ui_configure_gamelist.h"
  9. #include "yuzu/configuration/configure_gamelist.h"
  10. #include "yuzu/ui_settings.h"
  11. namespace {
  12. constexpr std::array<std::pair<u32, const char*>, 5> default_icon_sizes{{
  13. std::make_pair(0, QT_TR_NOOP("None")),
  14. std::make_pair(32, QT_TR_NOOP("Small (32x32)")),
  15. std::make_pair(64, QT_TR_NOOP("Standard (64x64)")),
  16. std::make_pair(128, QT_TR_NOOP("Large (128x128)")),
  17. std::make_pair(256, QT_TR_NOOP("Full Size (256x256)")),
  18. }};
  19. constexpr std::array<const char*, 4> row_text_names{{
  20. QT_TR_NOOP("Filename"),
  21. QT_TR_NOOP("Filetype"),
  22. QT_TR_NOOP("Title ID"),
  23. QT_TR_NOOP("Title Name"),
  24. }};
  25. } // Anonymous namespace
  26. ConfigureGameList::ConfigureGameList(QWidget* parent)
  27. : QWidget(parent), ui(new Ui::ConfigureGameList) {
  28. ui->setupUi(this);
  29. InitializeIconSizeComboBox();
  30. InitializeRowComboBoxes();
  31. this->setConfiguration();
  32. }
  33. ConfigureGameList::~ConfigureGameList() = default;
  34. void ConfigureGameList::applyConfiguration() {
  35. UISettings::values.show_unknown = ui->show_unknown->isChecked();
  36. UISettings::values.show_add_ons = ui->show_add_ons->isChecked();
  37. UISettings::values.icon_size = ui->icon_size_combobox->currentData().toUInt();
  38. UISettings::values.row_1_text_id = ui->row_1_text_combobox->currentData().toUInt();
  39. UISettings::values.row_2_text_id = ui->row_2_text_combobox->currentData().toUInt();
  40. Settings::Apply();
  41. }
  42. void ConfigureGameList::setConfiguration() {
  43. ui->show_unknown->setChecked(UISettings::values.show_unknown);
  44. ui->show_add_ons->setChecked(UISettings::values.show_add_ons);
  45. ui->icon_size_combobox->setCurrentIndex(
  46. ui->icon_size_combobox->findData(UISettings::values.icon_size));
  47. ui->row_1_text_combobox->setCurrentIndex(
  48. ui->row_1_text_combobox->findData(UISettings::values.row_1_text_id));
  49. ui->row_2_text_combobox->setCurrentIndex(
  50. ui->row_2_text_combobox->findData(UISettings::values.row_2_text_id));
  51. }
  52. void ConfigureGameList::changeEvent(QEvent* event) {
  53. if (event->type() == QEvent::LanguageChange) {
  54. RetranslateUI();
  55. return;
  56. }
  57. QWidget::changeEvent(event);
  58. }
  59. void ConfigureGameList::RetranslateUI() {
  60. ui->retranslateUi(this);
  61. for (int i = 0; i < ui->icon_size_combobox->count(); i++) {
  62. ui->icon_size_combobox->setItemText(i, tr(default_icon_sizes[i].second));
  63. }
  64. for (int i = 0; i < ui->row_1_text_combobox->count(); i++) {
  65. const QString name = tr(row_text_names[i]);
  66. ui->row_1_text_combobox->setItemText(i, name);
  67. ui->row_2_text_combobox->setItemText(i, name);
  68. }
  69. }
  70. void ConfigureGameList::InitializeIconSizeComboBox() {
  71. for (const auto& size : default_icon_sizes) {
  72. ui->icon_size_combobox->addItem(size.second, size.first);
  73. }
  74. }
  75. void ConfigureGameList::InitializeRowComboBoxes() {
  76. for (std::size_t i = 0; i < row_text_names.size(); ++i) {
  77. ui->row_1_text_combobox->addItem(row_text_names[i], QVariant::fromValue(i));
  78. ui->row_2_text_combobox->addItem(row_text_names[i], QVariant::fromValue(i));
  79. }
  80. }