Просмотр исходного кода

Refresh debug controller settings

german 5 лет назад
Родитель
Сommit
160341fcf8
4 измененных файлов с 18 добавлено и 10 удалено
  1. 10 6
      src/yuzu/debugger/controller.cpp
  2. 3 0
      src/yuzu/debugger/controller.h
  3. 4 3
      src/yuzu/main.cpp
  4. 1 1
      src/yuzu/main.h

+ 10 - 6
src/yuzu/debugger/controller.cpp

@@ -18,12 +18,8 @@ ControllerDialog::ControllerDialog(QWidget* parent) : QWidget(parent, Qt::Dialog
     setWindowFlags((windowFlags() & ~Qt::WindowContextHelpButtonHint) |
                    Qt::WindowMaximizeButtonHint);
 
-    PlayerControlPreview* widget = new PlayerControlPreview(this);
-    const auto& players = Settings::values.players.GetValue();
-    constexpr std::size_t player = 0;
-    widget->SetPlayerInputRaw(player, players[player].buttons, players[player].analogs);
-    widget->SetConnectedStatus(players[player].connected);
-    widget->SetControllerType(players[player].controller_type);
+    widget = new PlayerControlPreview(this);
+    refreshConfiguration();
     QLayout* layout = new QVBoxLayout(this);
     layout->setContentsMargins(0, 0, 0, 0);
     layout->addWidget(widget);
@@ -36,6 +32,14 @@ ControllerDialog::ControllerDialog(QWidget* parent) : QWidget(parent, Qt::Dialog
     widget->setFocus();
 }
 
+void ControllerDialog::refreshConfiguration() {
+    const auto& players = Settings::values.players.GetValue();
+    constexpr std::size_t player = 0;
+    widget->SetPlayerInputRaw(player, players[player].buttons, players[player].analogs);
+    widget->SetConnectedStatus(players[player].connected);
+    widget->SetControllerType(players[player].controller_type);
+}
+
 QAction* ControllerDialog::toggleViewAction() {
     if (toggle_view_action == nullptr) {
         toggle_view_action = new QAction(windowTitle(), this);

+ 3 - 0
src/yuzu/debugger/controller.h

@@ -9,6 +9,7 @@
 class QAction;
 class QHideEvent;
 class QShowEvent;
+class PlayerControlPreview;
 
 class ControllerDialog : public QWidget {
     Q_OBJECT
@@ -18,6 +19,7 @@ public:
 
     /// Returns a QAction that can be used to toggle visibility of this dialog.
     QAction* toggleViewAction();
+    void refreshConfiguration();
 
 protected:
     void showEvent(QShowEvent* ev) override;
@@ -25,4 +27,5 @@ protected:
 
 private:
     QAction* toggle_view_action = nullptr;
+    PlayerControlPreview* widget;
 };

+ 4 - 3
src/yuzu/main.cpp

@@ -690,9 +690,9 @@ void GMainWindow::InitializeDebugWidgets() {
     waitTreeWidget->hide();
     debug_menu->addAction(waitTreeWidget->toggleViewAction());
 
-    controllerDialog = new ControllerDialog(this);
-    controllerDialog->hide();
-    debug_menu->addAction(controllerDialog->toggleViewAction());
+    controller_dialog = new ControllerDialog(this);
+    controller_dialog->hide();
+    debug_menu->addAction(controller_dialog->toggleViewAction());
 
     connect(this, &GMainWindow::EmulationStarting, waitTreeWidget,
             &WaitTreeWidget::OnEmulationStarting);
@@ -2342,6 +2342,7 @@ void GMainWindow::OnConfigure() {
     }
 
     configure_dialog.ApplyConfiguration();
+    controller_dialog->refreshConfiguration();
     InitializeHotkeys();
     if (UISettings::values.theme != old_theme) {
         UpdateUITheme();

+ 1 - 1
src/yuzu/main.h

@@ -314,7 +314,7 @@ private:
     ProfilerWidget* profilerWidget;
     MicroProfileDialog* microProfileDialog;
     WaitTreeWidget* waitTreeWidget;
-    ControllerDialog* controllerDialog;
+    ControllerDialog* controller_dialog;
 
     QAction* actions_recent_files[max_recent_files_item];