diff --git a/rpcs3/rpcs3qt/pad_settings_dialog.cpp b/rpcs3/rpcs3qt/pad_settings_dialog.cpp index 022e59d55f..da8680fc3c 100644 --- a/rpcs3/rpcs3qt/pad_settings_dialog.cpp +++ b/rpcs3/rpcs3qt/pad_settings_dialog.cpp @@ -467,6 +467,24 @@ void pad_settings_dialog::ReloadButtons() m_min_force = m_handler->vibration_min; m_max_force = m_handler->vibration_max; + // Enable Mouse Deadzones + std::vector mouse_dz_range_x = m_handler_cfg.mouse_deadzone_x.to_list(); + ui->mouse_dz_x->setRange(std::stoi(mouse_dz_range_x.front()), std::stoi(mouse_dz_range_x.back())); + ui->mouse_dz_x->setValue(m_handler_cfg.mouse_deadzone_x); + + std::vector mouse_dz_range_y = m_handler_cfg.mouse_deadzone_y.to_list(); + ui->mouse_dz_y->setRange(std::stoi(mouse_dz_range_y.front()), std::stoi(mouse_dz_range_y.back())); + ui->mouse_dz_y->setValue(m_handler_cfg.mouse_deadzone_y); + + // Enable Mouse Acceleration + std::vector mouse_accel_range_x = m_handler_cfg.mouse_acceleration_x.to_list(); + ui->mouse_accel_x->setRange(std::stod(mouse_accel_range_x.front()) / (double)100, std::stod(mouse_accel_range_x.back()) / (double)100); + ui->mouse_accel_x->setValue((double)m_handler_cfg.mouse_acceleration_x / (double)100); + + std::vector mouse_accel_range_y = m_handler_cfg.mouse_acceleration_y.to_list(); + ui->mouse_accel_y->setRange(std::stod(mouse_accel_range_y.front()) / (double)100, std::stod(mouse_accel_range_y.back()) / (double)100); + ui->mouse_accel_y->setValue((double)m_handler_cfg.mouse_acceleration_y / (double)100); + // Enable Vibration Checkboxes m_enable_rumble = m_handler->has_rumble(); @@ -828,6 +846,9 @@ void pad_settings_dialog::ChangeInputType() m_handler = GetHandler(g_cfg_input.player[player]->handler); const auto device_list = m_handler->ListDevices(); + // change our contextual widgets + ui->stackedWidget->setCurrentIndex((m_handler->m_type == pad_handler::keyboard) ? 1 : 0); + // Refill the device combobox with currently available devices switch (m_handler->m_type) { @@ -1018,6 +1039,14 @@ void pad_settings_dialog::SaveProfile() m_handler_cfg.rstickdeadzone.set(ui->slider_stick_right->value()); } + if (m_handler->m_type == pad_handler::keyboard) + { + m_handler_cfg.mouse_acceleration_x.set(ui->mouse_accel_x->value() * 100); + m_handler_cfg.mouse_acceleration_y.set(ui->mouse_accel_y->value() * 100); + m_handler_cfg.mouse_deadzone_x.set(ui->mouse_dz_x->value()); + m_handler_cfg.mouse_deadzone_y.set(ui->mouse_dz_y->value()); + } + m_handler_cfg.save(); } diff --git a/rpcs3/rpcs3qt/pad_settings_dialog.ui b/rpcs3/rpcs3qt/pad_settings_dialog.ui index a5b0cc097f..ed20ed6486 100644 --- a/rpcs3/rpcs3qt/pad_settings_dialog.ui +++ b/rpcs3/rpcs3qt/pad_settings_dialog.ui @@ -626,114 +626,284 @@ - - - - 0 - 80 - + + + 0 - - Trigger Thresholds + + 0 - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - - Qt::Horizontal + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 80 + + + + Trigger Thresholds + + + + 5 - - - - - - Qt::Horizontal + + 5 - - - - - - - - - - Qt::Horizontal + + 5 - - - - - - Qt::Horizontal + + 5 - - - - - - - - - - - Enable Vibration - - - - 5 - - - 9 - - - 5 - - - 9 - - - - - Large - - - true - - - - - - - Small - - - true - - - - - - - Switch - - - - + + + + + + Qt::Horizontal + + + + + + + Qt::Horizontal + + + + + + + + + + + Qt::Horizontal + + + + + + + Qt::Horizontal + + + + + + + + + + + + Enable Vibration + + + + 5 + + + 9 + + + 5 + + + 9 + + + + + Large + + + true + + + + + + + Small + + + true + + + + + + + Switch + + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Mouse Acceleration + + + + + + x + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::MinimumExpanding + + + + 0 + 0 + + + + + + + + y + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::MinimumExpanding + + + + 0 + 0 + + + + + + + + + + + Mouse Deadzone + + + + + + x + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::MinimumExpanding + + + + 0 + 0 + + + + + + + + y + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::MinimumExpanding + + + + 0 + 0 + + + + + + + + +