From 061be74cdb07ed4fdef8b7e649d76b5024661de5 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Thu, 9 Jan 2025 23:32:27 +0100 Subject: [PATCH] Qt: add mouse config legend to mouse move dialog --- rpcs3/Input/raw_mouse_config.cpp | 2 + rpcs3/Input/raw_mouse_config.h | 2 - .../rpcs3qt/emulated_pad_settings_dialog.cpp | 71 ++++++++++++++++++- rpcs3/rpcs3qt/raw_mouse_settings_dialog.cpp | 2 + 4 files changed, 73 insertions(+), 4 deletions(-) diff --git a/rpcs3/Input/raw_mouse_config.cpp b/rpcs3/Input/raw_mouse_config.cpp index b02f349dac..0d896fc1d8 100644 --- a/rpcs3/Input/raw_mouse_config.cpp +++ b/rpcs3/Input/raw_mouse_config.cpp @@ -2,6 +2,8 @@ #include "raw_mouse_config.h" #include "Emu/Io/MouseHandler.h" +LOG_CHANNEL(cfg_log, "CFG"); + std::string mouse_button_id(int code) { switch (code) diff --git a/rpcs3/Input/raw_mouse_config.h b/rpcs3/Input/raw_mouse_config.h index b1ae83883d..902e0ed42f 100644 --- a/rpcs3/Input/raw_mouse_config.h +++ b/rpcs3/Input/raw_mouse_config.h @@ -5,8 +5,6 @@ #include -LOG_CHANNEL(cfg_log, "CFG"); - std::string mouse_button_id(int code); struct raw_mouse_config : cfg::node diff --git a/rpcs3/rpcs3qt/emulated_pad_settings_dialog.cpp b/rpcs3/rpcs3qt/emulated_pad_settings_dialog.cpp index a3fcde1e82..00520a8c7c 100644 --- a/rpcs3/rpcs3qt/emulated_pad_settings_dialog.cpp +++ b/rpcs3/rpcs3qt/emulated_pad_settings_dialog.cpp @@ -1,6 +1,8 @@ #include "stdafx.h" #include "emulated_pad_settings_dialog.h" #include "localized_emu.h" +#include "Input/raw_mouse_config.h" +#include "Emu/Io/mouse_config.h" #include "Emu/Io/buzz_config.h" #include "Emu/Io/gem_config.h" #include "Emu/Io/ghltar_config.h" @@ -13,6 +15,7 @@ #include #include +#include #include #include #include @@ -191,9 +194,24 @@ void emulated_pad_settings_dialog::add_tabs(QTabWidget* tabs) m_combos.resize(players); + const bool show_mouse_legend = m_type == pad_type::mousegem; + + if (show_mouse_legend) + { + if (!g_cfg_mouse.load()) + { + cfg_log.notice("Could not restore mouse config. Using defaults."); + } + + if (!g_cfg_raw_mouse.load()) + { + cfg_log.notice("Could not restore raw mouse config. Using defaults."); + } + } + for (usz player = 0; player < players; player++) { - QWidget* widget = new QWidget(this); + // Create grid with all buttons QGridLayout* grid_layout = new QGridLayout(this); for (int i = 0, row = 0, col = 0; i < static_cast(T::count); i++) @@ -344,7 +362,56 @@ void emulated_pad_settings_dialog::add_tabs(QTabWidget* tabs) row++; } - widget->setLayout(grid_layout); + QVBoxLayout* v_layout = new QVBoxLayout(this); + + // Create a legend of the current mouse settings + if (show_mouse_legend) + { + QHBoxLayout* legend_layout = new QHBoxLayout(this); + if (player == 0) + { + std::string basic_mouse_settings; + fmt::append(basic_mouse_settings, "1: %s\n", g_cfg_mouse.mouse_button_1.to_string()); + fmt::append(basic_mouse_settings, "2: %s\n", g_cfg_mouse.mouse_button_2.to_string()); + fmt::append(basic_mouse_settings, "3: %s\n", g_cfg_mouse.mouse_button_3.to_string()); + fmt::append(basic_mouse_settings, "4: %s\n", g_cfg_mouse.mouse_button_4.to_string()); + fmt::append(basic_mouse_settings, "5: %s\n", g_cfg_mouse.mouse_button_5.to_string()); + fmt::append(basic_mouse_settings, "6: %s\n", g_cfg_mouse.mouse_button_6.to_string()); + fmt::append(basic_mouse_settings, "7: %s\n", g_cfg_mouse.mouse_button_7.to_string()); + fmt::append(basic_mouse_settings, "8: %s", g_cfg_mouse.mouse_button_8.to_string()); + + QGroupBox* gb_legend_basic = new QGroupBox(tr("Current Basic Mouse Config"), this); + QVBoxLayout* gb_legend_basic_layout = new QVBoxLayout(this); + gb_legend_basic_layout->addWidget(new QLabel(QString::fromStdString(basic_mouse_settings), this)); + gb_legend_basic->setLayout(gb_legend_basic_layout); + legend_layout->addWidget(gb_legend_basic); + } + { + std::string raw_mouse_settings; + const auto& raw_cfg = *ensure(::at32(g_cfg_raw_mouse.players, player)); + fmt::append(raw_mouse_settings, "1: %s\n", raw_cfg.mouse_button_1.to_string()); + fmt::append(raw_mouse_settings, "2: %s\n", raw_cfg.mouse_button_2.to_string()); + fmt::append(raw_mouse_settings, "3: %s\n", raw_cfg.mouse_button_3.to_string()); + fmt::append(raw_mouse_settings, "4: %s\n", raw_cfg.mouse_button_4.to_string()); + fmt::append(raw_mouse_settings, "5: %s\n", raw_cfg.mouse_button_5.to_string()); + fmt::append(raw_mouse_settings, "6: %s\n", raw_cfg.mouse_button_6.to_string()); + fmt::append(raw_mouse_settings, "7: %s\n", raw_cfg.mouse_button_7.to_string()); + fmt::append(raw_mouse_settings, "8: %s", raw_cfg.mouse_button_8.to_string()); + + QGroupBox* gb_legend_raw = new QGroupBox(tr("Current Raw Mouse Config"), this); + QVBoxLayout* gb_legend_raw_layout = new QVBoxLayout(this); + gb_legend_raw_layout->addWidget(new QLabel(QString::fromStdString(raw_mouse_settings), this)); + gb_legend_raw->setLayout(gb_legend_raw_layout); + legend_layout->addWidget(gb_legend_raw); + } + v_layout->addLayout(legend_layout); + } + + v_layout->addLayout(grid_layout); + + QWidget* widget = new QWidget(this); + widget->setLayout(v_layout); + tabs->addTab(widget, tr("Player %0").arg(player + 1)); } } diff --git a/rpcs3/rpcs3qt/raw_mouse_settings_dialog.cpp b/rpcs3/rpcs3qt/raw_mouse_settings_dialog.cpp index 3cfccb9755..31151e098e 100644 --- a/rpcs3/rpcs3qt/raw_mouse_settings_dialog.cpp +++ b/rpcs3/rpcs3qt/raw_mouse_settings_dialog.cpp @@ -11,6 +11,8 @@ #include #include +LOG_CHANNEL(cfg_log, "CFG"); + constexpr u32 button_count = 8; raw_mouse_settings_dialog::raw_mouse_settings_dialog(QWidget* parent)