mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-06 15:01:28 +12:00
Qt/Input: fix default pad handler
We accidentally always saved keyboard to Player 1 if null was selected. The new code will only apply keyboard by default if the config file was not found.
This commit is contained in:
parent
34eff440eb
commit
5d50602397
4 changed files with 21 additions and 9 deletions
|
@ -15,6 +15,13 @@ bool cfg_input::load(const std::string& title_id)
|
||||||
{
|
{
|
||||||
return from_string(cfg_file.to_string());
|
return from_string(cfg_file.to_string());
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Add keyboard by default
|
||||||
|
player[0]->handler.from_string(fmt::format("%s", pad_handler::keyboard));
|
||||||
|
player[0]->device.from_string(pad::keyboard_device_name.data());
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +39,7 @@ void cfg_input::save(const std::string& title_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool pad_config::exist()
|
bool pad_config::exist() const
|
||||||
{
|
{
|
||||||
return fs::is_file(cfg_name);
|
return fs::is_file(cfg_name);
|
||||||
}
|
}
|
||||||
|
@ -47,7 +54,7 @@ bool pad_config::load()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void pad_config::save()
|
void pad_config::save() const
|
||||||
{
|
{
|
||||||
fs::file(cfg_name, fs::rewrite).write(to_string());
|
fs::file(cfg_name, fs::rewrite).write(to_string());
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,11 @@
|
||||||
#include "Utilities/Config.h"
|
#include "Utilities/Config.h"
|
||||||
#include "Utilities/File.h"
|
#include "Utilities/File.h"
|
||||||
|
|
||||||
|
namespace pad
|
||||||
|
{
|
||||||
|
constexpr static std::string_view keyboard_device_name = "Keyboard";
|
||||||
|
}
|
||||||
|
|
||||||
struct cfg_player final : cfg::node
|
struct cfg_player final : cfg::node
|
||||||
{
|
{
|
||||||
pad_handler def_handler = pad_handler::null;
|
pad_handler def_handler = pad_handler::null;
|
||||||
|
@ -19,7 +24,7 @@ struct cfg_input final : cfg::node
|
||||||
{
|
{
|
||||||
std::string cfg_name = fs::get_config_dir() + "/config_input.yml";
|
std::string cfg_name = fs::get_config_dir() + "/config_input.yml";
|
||||||
|
|
||||||
cfg_player player1{ this, "Player 1 Input", pad_handler::keyboard };
|
cfg_player player1{ this, "Player 1 Input", pad_handler::null };
|
||||||
cfg_player player2{ this, "Player 2 Input", pad_handler::null };
|
cfg_player player2{ this, "Player 2 Input", pad_handler::null };
|
||||||
cfg_player player3{ this, "Player 3 Input", pad_handler::null };
|
cfg_player player3{ this, "Player 3 Input", pad_handler::null };
|
||||||
cfg_player player4{ this, "Player 4 Input", pad_handler::null };
|
cfg_player player4{ this, "Player 4 Input", pad_handler::null };
|
||||||
|
@ -27,7 +32,7 @@ struct cfg_input final : cfg::node
|
||||||
cfg_player player6{ this, "Player 6 Input", pad_handler::null };
|
cfg_player player6{ this, "Player 6 Input", pad_handler::null };
|
||||||
cfg_player player7{ this, "Player 7 Input", pad_handler::null };
|
cfg_player player7{ this, "Player 7 Input", pad_handler::null };
|
||||||
|
|
||||||
cfg_player* player[7]{ &player1, &player2, &player3, &player4, &player5, &player6, &player7 }; // Thanks gcc!
|
cfg_player* player[7]{ &player1, &player2, &player3, &player4, &player5, &player6, &player7 }; // Thanks gcc!
|
||||||
|
|
||||||
bool load(const std::string& title_id = "");
|
bool load(const std::string& title_id = "");
|
||||||
void save(const std::string& title_id = "");
|
void save(const std::string& title_id = "");
|
||||||
|
@ -98,9 +103,9 @@ struct pad_config final : cfg::node
|
||||||
cfg::_int<0, 65535> vendor_id{ this, "Vendor ID", 0 };
|
cfg::_int<0, 65535> vendor_id{ this, "Vendor ID", 0 };
|
||||||
cfg::_int<0, 65535> product_id{ this, "Product ID", 0 };
|
cfg::_int<0, 65535> product_id{ this, "Product ID", 0 };
|
||||||
|
|
||||||
bool exist();
|
bool exist() const;
|
||||||
bool load();
|
bool load();
|
||||||
void save();
|
void save() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern cfg_input g_cfg_input;
|
extern cfg_input g_cfg_input;
|
||||||
|
|
|
@ -441,7 +441,7 @@ void keyboard_pad_handler::mouseWheelEvent(QWheelEvent* event)
|
||||||
std::vector<std::string> keyboard_pad_handler::ListDevices()
|
std::vector<std::string> keyboard_pad_handler::ListDevices()
|
||||||
{
|
{
|
||||||
std::vector<std::string> list_devices;
|
std::vector<std::string> list_devices;
|
||||||
list_devices.emplace_back("Keyboard");
|
list_devices.emplace_back(pad::keyboard_device_name);
|
||||||
return list_devices;
|
return list_devices;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -629,7 +629,7 @@ std::string keyboard_pad_handler::native_scan_code_to_string(int native_scan_cod
|
||||||
|
|
||||||
bool keyboard_pad_handler::bindPadToDevice(std::shared_ptr<Pad> pad, const std::string& device)
|
bool keyboard_pad_handler::bindPadToDevice(std::shared_ptr<Pad> pad, const std::string& device)
|
||||||
{
|
{
|
||||||
if (device != "Keyboard")
|
if (device != pad::keyboard_device_name)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
const int index = static_cast<int>(bindings.size());
|
const int index = static_cast<int>(bindings.size());
|
||||||
|
|
|
@ -1138,7 +1138,7 @@ void pad_settings_dialog::ChangeInputType()
|
||||||
bool force_enable = false; // enable configs even with disconnected devices
|
bool force_enable = false; // enable configs even with disconnected devices
|
||||||
const int player = ui->tabWidget->currentIndex();
|
const int player = ui->tabWidget->currentIndex();
|
||||||
const bool is_ldd_pad = GetIsLddPad(player);
|
const bool is_ldd_pad = GetIsLddPad(player);
|
||||||
|
|
||||||
std::string handler;
|
std::string handler;
|
||||||
std::string device;
|
std::string device;
|
||||||
std::string profile;
|
std::string profile;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue