diff options
Diffstat (limited to 'src/yuzu/configuration')
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 49 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_debug.cpp | 9 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_debug.ui | 54 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_hotkeys.cpp | 22 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_motion_touch.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_motion_touch.ui | 19 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_system.cpp | 6 | 
7 files changed, 112 insertions, 49 deletions
| diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index ac26b885b..fffbfab02 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -71,28 +71,28 @@ const std::array<int, 2> Config::default_ringcon_analogs{{  // UISetting::values.shortcuts, which is alphabetically ordered.  // clang-format off  const std::array<UISettings::Shortcut, 22> Config::default_hotkeys{{ -    {QStringLiteral("Audio Mute/Unmute"),        QStringLiteral("Main Window"), {QStringLiteral("Ctrl+M"),  QStringLiteral("Home+Dpad_Right"), Qt::WindowShortcut}}, -    {QStringLiteral("Audio Volume Down"),        QStringLiteral("Main Window"), {QStringLiteral("-"),       QStringLiteral("Home+Dpad_Down"), Qt::ApplicationShortcut}}, -    {QStringLiteral("Audio Volume Up"),          QStringLiteral("Main Window"), {QStringLiteral("+"),       QStringLiteral("Home+Dpad_Up"), Qt::ApplicationShortcut}}, -    {QStringLiteral("Capture Screenshot"),       QStringLiteral("Main Window"), {QStringLiteral("Ctrl+P"),  QStringLiteral("Screenshot"), Qt::WidgetWithChildrenShortcut}}, -    {QStringLiteral("Change Adapting Filter"),   QStringLiteral("Main Window"), {QStringLiteral("F8"),      QStringLiteral("Home+L"), Qt::ApplicationShortcut}}, -    {QStringLiteral("Change Docked Mode"),       QStringLiteral("Main Window"), {QStringLiteral("F10"),     QStringLiteral("Home+X"), Qt::ApplicationShortcut}}, -    {QStringLiteral("Change GPU Accuracy"),      QStringLiteral("Main Window"), {QStringLiteral("F9"),      QStringLiteral("Home+R"), Qt::ApplicationShortcut}}, -    {QStringLiteral("Continue/Pause Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F4"),      QStringLiteral("Home+Plus"), Qt::WindowShortcut}}, -    {QStringLiteral("Exit Fullscreen"),          QStringLiteral("Main Window"), {QStringLiteral("Esc"),     QStringLiteral(""), Qt::WindowShortcut}}, -    {QStringLiteral("Exit yuzu"),                QStringLiteral("Main Window"), {QStringLiteral("Ctrl+Q"),  QStringLiteral("Home+Minus"), Qt::WindowShortcut}}, -    {QStringLiteral("Fullscreen"),               QStringLiteral("Main Window"), {QStringLiteral("F11"),     QStringLiteral("Home+B"), Qt::WindowShortcut}}, -    {QStringLiteral("Load File"),                QStringLiteral("Main Window"), {QStringLiteral("Ctrl+O"),  QStringLiteral(""), Qt::WidgetWithChildrenShortcut}}, -    {QStringLiteral("Load/Remove Amiibo"),       QStringLiteral("Main Window"), {QStringLiteral("F2"),      QStringLiteral("Home+A"), Qt::WidgetWithChildrenShortcut}}, -    {QStringLiteral("Restart Emulation"),        QStringLiteral("Main Window"), {QStringLiteral("F6"),      QStringLiteral(""), Qt::WindowShortcut}}, -    {QStringLiteral("Stop Emulation"),           QStringLiteral("Main Window"), {QStringLiteral("F5"),      QStringLiteral(""), Qt::WindowShortcut}}, -    {QStringLiteral("TAS Record"),               QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F7"), QStringLiteral(""), Qt::ApplicationShortcut}}, -    {QStringLiteral("TAS Reset"),                QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F6"), QStringLiteral(""), Qt::ApplicationShortcut}}, -    {QStringLiteral("TAS Start/Stop"),           QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F5"), QStringLiteral(""), Qt::ApplicationShortcut}}, -    {QStringLiteral("Toggle Filter Bar"),        QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F"),  QStringLiteral(""), Qt::WindowShortcut}}, -    {QStringLiteral("Toggle Framerate Limit"),   QStringLiteral("Main Window"), {QStringLiteral("Ctrl+U"),  QStringLiteral("Home+Y"), Qt::ApplicationShortcut}}, -    {QStringLiteral("Toggle Mouse Panning"),     QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F9"), QStringLiteral(""), Qt::ApplicationShortcut}}, -    {QStringLiteral("Toggle Status Bar"),        QStringLiteral("Main Window"), {QStringLiteral("Ctrl+S"),  QStringLiteral(""), Qt::WindowShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Audio Mute/Unmute")),        QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("Ctrl+M"),  QStringLiteral("Home+Dpad_Right"), Qt::WindowShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Audio Volume Down")),        QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("-"),       QStringLiteral("Home+Dpad_Down"), Qt::ApplicationShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Audio Volume Up")),          QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("+"),       QStringLiteral("Home+Dpad_Up"), Qt::ApplicationShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Capture Screenshot")),       QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("Ctrl+P"),  QStringLiteral("Screenshot"), Qt::WidgetWithChildrenShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Change Adapting Filter")),   QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("F8"),      QStringLiteral("Home+L"), Qt::ApplicationShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Change Docked Mode")),       QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("F10"),     QStringLiteral("Home+X"), Qt::ApplicationShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Change GPU Accuracy")),      QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("F9"),      QStringLiteral("Home+R"), Qt::ApplicationShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Continue/Pause Emulation")), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("F4"),      QStringLiteral("Home+Plus"), Qt::WindowShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Exit Fullscreen")),          QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("Esc"),     QStringLiteral(""), Qt::WindowShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Exit yuzu")),                QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("Ctrl+Q"),  QStringLiteral("Home+Minus"), Qt::WindowShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Fullscreen")),               QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("F11"),     QStringLiteral("Home+B"), Qt::WindowShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Load File")),                QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("Ctrl+O"),  QStringLiteral(""), Qt::WidgetWithChildrenShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Load/Remove Amiibo")),       QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("F2"),      QStringLiteral("Home+A"), Qt::WidgetWithChildrenShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Restart Emulation")),        QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("F6"),      QStringLiteral(""), Qt::WindowShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Stop Emulation")),           QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("F5"),      QStringLiteral(""), Qt::WindowShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "TAS Record")),               QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("Ctrl+F7"), QStringLiteral(""), Qt::ApplicationShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "TAS Reset")),                QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("Ctrl+F6"), QStringLiteral(""), Qt::ApplicationShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "TAS Start/Stop")),           QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("Ctrl+F5"), QStringLiteral(""), Qt::ApplicationShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Toggle Filter Bar")),        QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("Ctrl+F"),  QStringLiteral(""), Qt::WindowShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Toggle Framerate Limit")),   QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("Ctrl+U"),  QStringLiteral("Home+Y"), Qt::ApplicationShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Toggle Mouse Panning")),     QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("Ctrl+F9"), QStringLiteral(""), Qt::ApplicationShortcut}}, +    {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Toggle Status Bar")),        QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")), {QStringLiteral("Ctrl+S"),  QStringLiteral(""), Qt::WindowShortcut}},  }};  // clang-format on @@ -525,6 +525,9 @@ void Config::ReadDebuggingValues() {      // Intentionally not using the QT default setting as this is intended to be changed in the ini      Settings::values.record_frame_times =          qt_config->value(QStringLiteral("record_frame_times"), false).toBool(); + +    ReadBasicSetting(Settings::values.use_gdbstub); +    ReadBasicSetting(Settings::values.gdbstub_port);      ReadBasicSetting(Settings::values.program_args);      ReadBasicSetting(Settings::values.dump_exefs);      ReadBasicSetting(Settings::values.dump_nso); @@ -1095,6 +1098,8 @@ void Config::SaveDebuggingValues() {      // Intentionally not using the QT default setting as this is intended to be changed in the ini      qt_config->setValue(QStringLiteral("record_frame_times"), Settings::values.record_frame_times); +    WriteBasicSetting(Settings::values.use_gdbstub); +    WriteBasicSetting(Settings::values.gdbstub_port);      WriteBasicSetting(Settings::values.program_args);      WriteBasicSetting(Settings::values.dump_exefs);      WriteBasicSetting(Settings::values.dump_nso); diff --git a/src/yuzu/configuration/configure_debug.cpp b/src/yuzu/configuration/configure_debug.cpp index d6e8b5ead..343d2aee1 100644 --- a/src/yuzu/configuration/configure_debug.cpp +++ b/src/yuzu/configuration/configure_debug.cpp @@ -24,13 +24,18 @@ ConfigureDebug::ConfigureDebug(const Core::System& system_, QWidget* parent)              QString::fromStdString(Common::FS::GetYuzuPathString(Common::FS::YuzuPath::LogDir));          QDesktopServices::openUrl(QUrl::fromLocalFile(path));      }); + +    connect(ui->toggle_gdbstub, &QCheckBox::toggled, +            [&]() { ui->gdbport_spinbox->setEnabled(ui->toggle_gdbstub->isChecked()); });  }  ConfigureDebug::~ConfigureDebug() = default;  void ConfigureDebug::SetConfiguration() {      const bool runtime_lock = !system.IsPoweredOn(); - +    ui->toggle_gdbstub->setChecked(Settings::values.use_gdbstub.GetValue()); +    ui->gdbport_spinbox->setEnabled(Settings::values.use_gdbstub.GetValue()); +    ui->gdbport_spinbox->setValue(Settings::values.gdbstub_port.GetValue());      ui->toggle_console->setEnabled(runtime_lock);      ui->toggle_console->setChecked(UISettings::values.show_console.GetValue());      ui->log_filter_edit->setText(QString::fromStdString(Settings::values.log_filter.GetValue())); @@ -71,6 +76,8 @@ void ConfigureDebug::SetConfiguration() {  }  void ConfigureDebug::ApplyConfiguration() { +    Settings::values.use_gdbstub = ui->toggle_gdbstub->isChecked(); +    Settings::values.gdbstub_port = ui->gdbport_spinbox->value();      UISettings::values.show_console = ui->toggle_console->isChecked();      Settings::values.log_filter = ui->log_filter_edit->text().toStdString();      Settings::values.program_args = ui->homebrew_args_edit->text().toStdString(); diff --git a/src/yuzu/configuration/configure_debug.ui b/src/yuzu/configuration/configure_debug.ui index 863a3fd57..1152fa6c6 100644 --- a/src/yuzu/configuration/configure_debug.ui +++ b/src/yuzu/configuration/configure_debug.ui @@ -3,6 +3,60 @@   <class>ConfigureDebug</class>   <widget class="QWidget" name="ConfigureDebug">    <layout class="QVBoxLayout" name="verticalLayout_1"> +    <item> +      <layout class="QVBoxLayout" name="verticalLayout_2"> +       <item> +        <widget class="QGroupBox" name="groupBox"> +         <property name="title"> +          <string>Debugger</string> +         </property> +         <layout class="QVBoxLayout" name="verticalLayout_3"> +          <item> +           <layout class="QHBoxLayout" name="horizontalLayout_11"> +            <item> +             <widget class="QCheckBox" name="toggle_gdbstub"> +              <property name="text"> +               <string>Enable GDB Stub</string> +              </property> +             </widget> +            </item> +            <item> +             <spacer name="horizontalSpacer"> +              <property name="orientation"> +               <enum>Qt::Horizontal</enum> +              </property> +              <property name="sizeHint" stdset="0"> +               <size> +                <width>40</width> +                <height>20</height> +               </size> +              </property> +             </spacer> +            </item> +            <item> +             <widget class="QLabel" name="label_11"> +              <property name="text"> +               <string>Port:</string> +              </property> +             </widget> +            </item> +            <item> +             <widget class="QSpinBox" name="gdbport_spinbox"> +              <property name="minimum"> +                <number>1024</number> +              </property> +              <property name="maximum"> +               <number>65535</number> +              </property> +             </widget> +            </item> +           </layout> +          </item> +         </layout> +        </widget> +       </item> +      </layout> +     </item>     <item>      <widget class="QGroupBox" name="groupBox_2">       <property name="title"> diff --git a/src/yuzu/configuration/configure_hotkeys.cpp b/src/yuzu/configuration/configure_hotkeys.cpp index 6679e9c53..edf0893c4 100644 --- a/src/yuzu/configuration/configure_hotkeys.cpp +++ b/src/yuzu/configuration/configure_hotkeys.cpp @@ -61,14 +61,18 @@ ConfigureHotkeys::~ConfigureHotkeys() = default;  void ConfigureHotkeys::Populate(const HotkeyRegistry& registry) {      for (const auto& group : registry.hotkey_groups) { -        auto* parent_item = new QStandardItem(group.first); +        auto* parent_item = +            new QStandardItem(QCoreApplication::translate("Hotkeys", qPrintable(group.first)));          parent_item->setEditable(false); +        parent_item->setData(group.first);          for (const auto& hotkey : group.second) { -            auto* action = new QStandardItem(hotkey.first); +            auto* action = +                new QStandardItem(QCoreApplication::translate("Hotkeys", qPrintable(hotkey.first)));              auto* keyseq =                  new QStandardItem(hotkey.second.keyseq.toString(QKeySequence::NativeText));              auto* controller_keyseq = new QStandardItem(hotkey.second.controller_keyseq);              action->setEditable(false); +            action->setData(hotkey.first);              keyseq->setEditable(false);              controller_keyseq->setEditable(false);              parent_item->appendRow({action, keyseq, controller_keyseq}); @@ -93,6 +97,16 @@ void ConfigureHotkeys::RetranslateUI() {      ui->retranslateUi(this);      model->setHorizontalHeaderLabels({tr("Action"), tr("Hotkey"), tr("Controller Hotkey")}); +    for (int key_id = 0; key_id < model->rowCount(); key_id++) { +        QStandardItem* parent = model->item(key_id, 0); +        parent->setText( +            QCoreApplication::translate("Hotkeys", qPrintable(parent->data().toString()))); +        for (int key_column_id = 0; key_column_id < parent->rowCount(); key_column_id++) { +            QStandardItem* action = parent->child(key_column_id, name_column); +            action->setText( +                QCoreApplication::translate("Hotkeys", qPrintable(action->data().toString()))); +        } +    }  }  void ConfigureHotkeys::Configure(QModelIndex index) { @@ -273,10 +287,10 @@ void ConfigureHotkeys::ApplyConfiguration(HotkeyRegistry& registry) {              const QStandardItem* controller_keyseq =                  parent->child(key_column_id, controller_column);              for (auto& [group, sub_actions] : registry.hotkey_groups) { -                if (group != parent->text()) +                if (group != parent->data())                      continue;                  for (auto& [action_name, hotkey] : sub_actions) { -                    if (action_name != action->text()) +                    if (action_name != action->data())                          continue;                      hotkey.keyseq = QKeySequence(keyseq->text());                      hotkey.controller_keyseq = controller_keyseq->text(); diff --git a/src/yuzu/configuration/configure_motion_touch.cpp b/src/yuzu/configuration/configure_motion_touch.cpp index 27559c37b..c313b0919 100644 --- a/src/yuzu/configuration/configure_motion_touch.cpp +++ b/src/yuzu/configuration/configure_motion_touch.cpp @@ -151,6 +151,8 @@ void ConfigureMotionTouch::ConnectEvents() {              &ConfigureMotionTouch::OnConfigureTouchCalibration);      connect(ui->touch_from_button_config_btn, &QPushButton::clicked, this,              &ConfigureMotionTouch::OnConfigureTouchFromButton); +    connect(ui->buttonBox, &QDialogButtonBox::accepted, this, +            &ConfigureMotionTouch::ApplyConfiguration);      connect(ui->buttonBox, &QDialogButtonBox::rejected, this, [this] {          if (CanCloseDialog()) {              reject(); diff --git a/src/yuzu/configuration/configure_motion_touch.ui b/src/yuzu/configuration/configure_motion_touch.ui index c75a84ae4..0237fae54 100644 --- a/src/yuzu/configuration/configure_motion_touch.ui +++ b/src/yuzu/configuration/configure_motion_touch.ui @@ -293,22 +293,5 @@    </layout>   </widget>   <resources/> - <connections> -  <connection> -   <sender>buttonBox</sender> -   <signal>accepted()</signal> -   <receiver>ConfigureMotionTouch</receiver> -   <slot>ApplyConfiguration()</slot> -   <hints> -    <hint type="sourcelabel"> -     <x>20</x> -     <y>20</y> -    </hint> -    <hint type="destinationlabel"> -     <x>20</x> -     <y>20</y> -    </hint> -   </hints> -  </connection> - </connections> + <connections/>  </ui> diff --git a/src/yuzu/configuration/configure_system.cpp b/src/yuzu/configuration/configure_system.cpp index 19aa589f9..ecebb0fb7 100644 --- a/src/yuzu/configuration/configure_system.cpp +++ b/src/yuzu/configuration/configure_system.cpp @@ -130,8 +130,7 @@ void ConfigureSystem::ApplyConfiguration() {          // Guard if during game and set to game-specific value          if (Settings::values.rng_seed.UsingGlobal()) {              if (ui->rng_seed_checkbox->isChecked()) { -                Settings::values.rng_seed.SetValue( -                    ui->rng_seed_edit->text().toULongLong(nullptr, 16)); +                Settings::values.rng_seed.SetValue(ui->rng_seed_edit->text().toUInt(nullptr, 16));              } else {                  Settings::values.rng_seed.SetValue(std::nullopt);              } @@ -142,8 +141,7 @@ void ConfigureSystem::ApplyConfiguration() {          case ConfigurationShared::CheckState::Off:              Settings::values.rng_seed.SetGlobal(false);              if (ui->rng_seed_checkbox->isChecked()) { -                Settings::values.rng_seed.SetValue( -                    ui->rng_seed_edit->text().toULongLong(nullptr, 16)); +                Settings::values.rng_seed.SetValue(ui->rng_seed_edit->text().toUInt(nullptr, 16));              } else {                  Settings::values.rng_seed.SetValue(std::nullopt);              } | 
