mirror of
https://github.com/azahar-emu/azahar.git
synced 2026-06-06 02:33:44 -04:00
Controller nav hotkeys added with reasonable defaults
This commit is contained in:
parent
f516e298cc
commit
db7a1a2785
7 changed files with 127 additions and 61 deletions
|
|
@ -499,6 +499,7 @@ void GMainWindow::InitializeWidgets() {
|
|||
action_secondary_rotate_screen = new QAction(secondary_window);
|
||||
|
||||
game_list = new GameList(*play_time_manager, this);
|
||||
|
||||
ui->horizontalLayout->addWidget(game_list);
|
||||
|
||||
game_list_placeholder = new GameListPlaceholder(this);
|
||||
|
|
@ -780,15 +781,13 @@ void GMainWindow::InitializeHotkeys() {
|
|||
hotkey_registry.LoadHotkeys();
|
||||
hotkey_registry.buttonMonitor.start(16);
|
||||
LOG_DEBUG(Frontend, "Initializing hotkeys");
|
||||
const QString main_window = QStringLiteral("Main Window");
|
||||
const QString fullscreen = QStringLiteral("Fullscreen");
|
||||
|
||||
// QAction Hotkeys
|
||||
const auto link_action_shortcut = [&](QAction* action, const QString& action_name,
|
||||
const bool primary_only = false) {
|
||||
static const QString main_window = QStringLiteral("Main Window");
|
||||
auto context = hotkey_registry.GetShortcutContext(main_window, action_name);
|
||||
auto shortcut = hotkey_registry.GetKeySequence(main_window, action_name);
|
||||
const bool primary_only = false,
|
||||
const QString group = QStringLiteral("Main Window")) {
|
||||
auto context = hotkey_registry.GetShortcutContext(group, action_name);
|
||||
auto shortcut = hotkey_registry.GetKeySequence(group, action_name);
|
||||
action->setShortcut(shortcut);
|
||||
action->setShortcutContext(context);
|
||||
action->setAutoRepeat(false);
|
||||
|
|
@ -837,9 +836,13 @@ void GMainWindow::InitializeHotkeys() {
|
|||
link_action_shortcut(ui->action_Leave_Room, QStringLiteral("Multiplayer Leave Room"));
|
||||
|
||||
// QShortcut Hotkeys
|
||||
const auto connect_shortcut = [&](const QString& action_name, const auto& function) {
|
||||
const auto* hotkey = hotkey_registry.GetHotkey(main_window, action_name, this);
|
||||
connect(hotkey, &QShortcut::activated, this, function);
|
||||
const auto connect_shortcut = [&](const QString& action_name, const auto& function,
|
||||
const QString& group = QStringLiteral("Main Window"),
|
||||
QObject* parent = nullptr) {
|
||||
if (parent == nullptr)
|
||||
parent = this;
|
||||
const auto* hotkey = hotkey_registry.GetHotkey(group, action_name, parent);
|
||||
connect(hotkey, &QShortcut::activated, parent, function);
|
||||
};
|
||||
|
||||
connect_shortcut(QStringLiteral("Toggle Screen Layout"), &GMainWindow::ToggleScreenLayout);
|
||||
|
|
@ -900,6 +903,36 @@ void GMainWindow::InitializeHotkeys() {
|
|||
}
|
||||
});
|
||||
|
||||
// Navigation Actions - send keyboard shortcuts from controller buttons, but only when
|
||||
// a game window is NOT in focus
|
||||
const auto connect_navigation_shortcut =
|
||||
[&](const QString& action_name, Qt::Key key, Qt::KeyboardModifier mod = Qt::NoModifier,
|
||||
const QString& group = QStringLiteral("Navigation"), QObject* parent = nullptr) {
|
||||
if (parent == nullptr)
|
||||
parent = this;
|
||||
const auto* hotkey = hotkey_registry.GetHotkey(group, action_name, parent);
|
||||
connect(hotkey, &QShortcut::activated, this, [this, key, mod] {
|
||||
if (QApplication::focusWidget() == render_window ||
|
||||
QApplication::focusWidget() == secondary_window)
|
||||
return;
|
||||
QKeyEvent press(QEvent::KeyPress, key, mod);
|
||||
QKeyEvent release(QEvent::KeyRelease, key, mod);
|
||||
QApplication::sendEvent(QApplication::focusWidget(), &press);
|
||||
QApplication::sendEvent(QApplication::focusWidget(), &release);
|
||||
});
|
||||
};
|
||||
|
||||
// TODO: Improve keyboard navigation everywhere so these actually work everywhere
|
||||
connect_navigation_shortcut(QStringLiteral("Move down (Down Arrow)"), Qt::Key_Down);
|
||||
connect_navigation_shortcut(QStringLiteral("Move up (Up Arrow)"), Qt::Key_Up);
|
||||
connect_navigation_shortcut(QStringLiteral("Move left (Left Arrow)"), Qt::Key_Left);
|
||||
connect_navigation_shortcut(QStringLiteral("Move right (Right Arrow)"), Qt::Key_Right);
|
||||
connect_navigation_shortcut(QStringLiteral("Confirm / Run game (Enter)"), Qt::Key_Enter);
|
||||
connect_navigation_shortcut(QStringLiteral("Go back / Cancel (Esc)"), Qt::Key_Escape);
|
||||
connect_navigation_shortcut(QStringLiteral("Change Focus Forward (Tab)"), Qt::Key_Tab);
|
||||
connect_navigation_shortcut(QStringLiteral("Change Focus Backward (Shift+Tab)"), Qt::Key_Tab,
|
||||
Qt::ShiftModifier);
|
||||
|
||||
// Secondary Window QAction Hotkeys
|
||||
const auto add_secondary_window_hotkey = [this](QAction* action, QKeySequence hotkey,
|
||||
const char* slot) {
|
||||
|
|
|
|||
|
|
@ -171,6 +171,7 @@ private:
|
|||
bool LoadROM(const QString& filename);
|
||||
void BootGame(const QString& filename);
|
||||
void ShutdownGame();
|
||||
std::vector<std::unique_ptr<Hotkey>> m_test_hotkeys;
|
||||
|
||||
#ifdef USE_DISCORD_PRESENCE
|
||||
void SetDiscordEnabled(bool state);
|
||||
|
|
@ -371,6 +372,7 @@ private:
|
|||
|
||||
// Hotkeys
|
||||
bool turbo_mode_active = false;
|
||||
std::vector<std::unique_ptr<Hotkey>> nav_hotkeys;
|
||||
|
||||
// Whether emulation is currently running in Citra.
|
||||
bool emulation_running = false;
|
||||
|
|
|
|||
|
|
@ -52,50 +52,69 @@ const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> QtConfi
|
|||
},
|
||||
}};
|
||||
|
||||
// This shouldn't have anything except static initializers (no functions). So
|
||||
// QKeySequence(...).toString() is NOT ALLOWED HERE.
|
||||
// This must be in alphabetical order according to action name as it must have the same order as
|
||||
// UISetting::values.shortcuts, which is alphabetically ordered.
|
||||
// These will be alphabetized when displayed, but the order doesn't matter here.
|
||||
// All hotkeys left at default context of Qt::ApplicationShortcut for now
|
||||
// TODO: determine if some hotkeys should only be applied in certain widgets and update group and
|
||||
// context
|
||||
|
||||
// clang-format off
|
||||
const std::array<UISettings::Shortcut, 38> QtConfig::default_hotkeys {{
|
||||
{QStringLiteral("Advance Frame"), QStringLiteral("Main Window"), {QStringLiteral(""), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Audio Mute/Unmute"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+M"), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Audio Volume Down"), QStringLiteral("Main Window"), {QStringLiteral(""), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Audio Volume Up"), QStringLiteral("Main Window"), {QStringLiteral(""), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Capture Screenshot"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+P"), QStringLiteral(""), Qt::WidgetWithChildrenShortcut}},
|
||||
{QStringLiteral("Continue/Pause Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F4"), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Decrease 3D Factor"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+-"), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Decrease Speed Limit"), QStringLiteral("Main Window"), {QStringLiteral("-"), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Exit Azahar"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+Q"), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Exit Fullscreen"), QStringLiteral("Main Window"), {QStringLiteral("Esc"), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Fullscreen"), QStringLiteral("Main Window"), {QStringLiteral("F11"), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Increase 3D Factor"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl++"), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Increase Speed Limit"), QStringLiteral("Main Window"), {QStringLiteral("+"), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Load Amiibo"), QStringLiteral("Main Window"), {QStringLiteral("F2"), QStringLiteral(""), Qt::WidgetWithChildrenShortcut}},
|
||||
{QStringLiteral("Load File"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+O"), QStringLiteral(""), Qt::WidgetWithChildrenShortcut}},
|
||||
{QStringLiteral("Load from Newest Non-Quicksave Slot"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+V"), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Multiplayer Browse Public Rooms"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+B"), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Multiplayer Create Room"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+N"), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Multiplayer Direct Connect to Room"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+Shift"), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Multiplayer Leave Room"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+L"), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Multiplayer Show Current Room"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+R"), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Quick Save"), QStringLiteral("Main Window"), {QStringLiteral(""), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Quick Load"), QStringLiteral("Main Window"), {QStringLiteral(""), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Remove Amiibo"), QStringLiteral("Main Window"), {QStringLiteral("F3"), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Restart Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F6"), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Rotate Screens Upright"), QStringLiteral("Main Window"), {QStringLiteral("F8"), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Save to Oldest Non-Quicksave Slot"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+C"), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Stop Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F5"), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Swap Screens"), QStringLiteral("Main Window"), {QStringLiteral("F9"), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Toggle 3D"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+3"), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Toggle Custom Textures"), QStringLiteral("Main Window"), {QStringLiteral("F7"), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Toggle Filter Bar"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F"), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Toggle Frame Advancing"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+A"), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Toggle Per-Application Speed"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+Z"), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Toggle Screen Layout"), QStringLiteral("Main Window"), {QStringLiteral("F10"), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Toggle Status Bar"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+S"), QStringLiteral(""), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Toggle Texture Dumping"), QStringLiteral("Main Window"), {QStringLiteral(""), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Toggle Turbo Mode"), QStringLiteral("Main Window"), {QStringLiteral(""), QStringLiteral(""), Qt::ApplicationShortcut}},
|
||||
const std::array<UISettings::Shortcut, 46> QtConfig::default_hotkeys {{
|
||||
{QStringLiteral("Advance Frame"), QStringLiteral("Main Window"), {QStringLiteral(""), QStringLiteral("")}},
|
||||
{QStringLiteral("Audio Mute/Unmute"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+M"), QStringLiteral("")}},
|
||||
{QStringLiteral("Audio Volume Down"), QStringLiteral("Main Window"), {QStringLiteral(""), QStringLiteral("")}},
|
||||
{QStringLiteral("Audio Volume Up"), QStringLiteral("Main Window"), {QStringLiteral(""), QStringLiteral("")}},
|
||||
{QStringLiteral("Capture Screenshot"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+P"), QStringLiteral("")}},
|
||||
{QStringLiteral("Continue/Pause Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F4"), QStringLiteral("")}},
|
||||
{QStringLiteral("Decrease 3D Factor"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+-"), QStringLiteral("")}},
|
||||
{QStringLiteral("Decrease Speed Limit"), QStringLiteral("Main Window"), {QStringLiteral("-"), QStringLiteral("")}},
|
||||
{QStringLiteral("Exit Azahar"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+Q"), QStringLiteral("")}},
|
||||
{QStringLiteral("Exit Fullscreen"), QStringLiteral("Main Window"), {QStringLiteral("Esc"), QStringLiteral("")}},
|
||||
{QStringLiteral("Fullscreen"), QStringLiteral("Main Window"), {QStringLiteral("F11"), QStringLiteral("")}},
|
||||
{QStringLiteral("Increase 3D Factor"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl++"), QStringLiteral("")}},
|
||||
{QStringLiteral("Increase Speed Limit"), QStringLiteral("Main Window"), {QStringLiteral("+"), QStringLiteral("")}},
|
||||
{QStringLiteral("Load Amiibo"), QStringLiteral("Main Window"), {QStringLiteral("F2"), QStringLiteral("")}},
|
||||
{QStringLiteral("Load File"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+O"), QStringLiteral("")}},
|
||||
{QStringLiteral("Load from Newest Non-Quicksave Slot"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+V"), QStringLiteral("")}},
|
||||
{QStringLiteral("Multiplayer Browse Public Rooms"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+B"), QStringLiteral("")}},
|
||||
{QStringLiteral("Multiplayer Create Room"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+N"), QStringLiteral("")}},
|
||||
{QStringLiteral("Multiplayer Direct Connect to Room"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+Shift"), QStringLiteral("")}},
|
||||
{QStringLiteral("Multiplayer Leave Room"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+L"), QStringLiteral("")}},
|
||||
{QStringLiteral("Multiplayer Show Current Room"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+R"), QStringLiteral("")}},
|
||||
{QStringLiteral("Quick Save"), QStringLiteral("Main Window"), {QStringLiteral(""), QStringLiteral("")}},
|
||||
{QStringLiteral("Quick Load"), QStringLiteral("Main Window"), {QStringLiteral(""), QStringLiteral("")}},
|
||||
{QStringLiteral("Remove Amiibo"), QStringLiteral("Main Window"), {QStringLiteral("F3"), QStringLiteral("")}},
|
||||
{QStringLiteral("Restart Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F6"), QStringLiteral("")}},
|
||||
{QStringLiteral("Rotate Screens Upright"), QStringLiteral("Main Window"), {QStringLiteral("F8"), QStringLiteral("")}},
|
||||
{QStringLiteral("Save to Oldest Non-Quicksave Slot"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+C"), QStringLiteral("")}},
|
||||
{QStringLiteral("Stop Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F5"), QStringLiteral("")}},
|
||||
{QStringLiteral("Swap Screens"), QStringLiteral("Main Window"), {QStringLiteral("F9"), QStringLiteral("")}},
|
||||
{QStringLiteral("Toggle 3D"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+3"), QStringLiteral("")}},
|
||||
{QStringLiteral("Toggle Custom Textures"), QStringLiteral("Main Window"), {QStringLiteral("F7"), QStringLiteral("")}},
|
||||
{QStringLiteral("Toggle Filter Bar"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F"), QStringLiteral("")}},
|
||||
{QStringLiteral("Toggle Frame Advancing"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+A"), QStringLiteral("")}},
|
||||
{QStringLiteral("Toggle Per-Application Speed"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+Z"), QStringLiteral("")}},
|
||||
{QStringLiteral("Toggle Screen Layout"), QStringLiteral("Main Window"), {QStringLiteral("F10"), QStringLiteral("")}},
|
||||
{QStringLiteral("Toggle Status Bar"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+S"), QStringLiteral("")}},
|
||||
{QStringLiteral("Toggle Texture Dumping"), QStringLiteral("Main Window"), {QStringLiteral(""), QStringLiteral("")}},
|
||||
{QStringLiteral("Toggle Turbo Mode"), QStringLiteral("Main Window"), {QStringLiteral(""), QStringLiteral("")}},
|
||||
// Navigation shortcuts will only be shown on the Controller Hotkeys pane, to duplicate keyboard navigation
|
||||
// They will be ignored in the render_window and secondary_window at implementation, so still leave as default Qt::ApplicationShortcut context
|
||||
{QStringLiteral("Move down (Down Arrow)"), QStringLiteral("Navigation"), {QStringLiteral(""),
|
||||
QStringLiteral("api:controller,button:12,engine:sdl,maptype:all,name:D-Pad Down")}},
|
||||
{QStringLiteral("Move up (Up Arrow)"), QStringLiteral("Navigation"), {QStringLiteral(""),
|
||||
QStringLiteral("api:controller,button:11,engine:sdl,maptype:all,name:D-Pad Up")}},
|
||||
{QStringLiteral("Move left (Left Arrow)"), QStringLiteral("Navigation"), {QStringLiteral(""),
|
||||
QStringLiteral("api:controller,button:13,engine:sdl,maptype:all,name:D-Pad Left")}},
|
||||
{QStringLiteral("Move right (Right Arrow)"), QStringLiteral("Navigation"), {QStringLiteral(""),
|
||||
QStringLiteral("api:controller,button:14,engine:sdl,maptype:all,name:D-Pad Right")}},
|
||||
{QStringLiteral("Confirm / Run game (Enter)"), QStringLiteral("Navigation"), {QStringLiteral(""),
|
||||
QStringLiteral("api:controller,button:0,engine:sdl,maptype:all,name:A / ✖ Button")}},
|
||||
{QStringLiteral("Go back / Cancel (Esc)"), QStringLiteral("Navigation"), {QStringLiteral(""),
|
||||
QStringLiteral("api:controller,button:1,engine:sdl,maptype:all,name:B / ● Button")}},
|
||||
{QStringLiteral("Change Focus Forward (Tab)"), QStringLiteral("Navigation"), {QStringLiteral(""),
|
||||
QStringLiteral("api:controller,button:10,engine:sdl,maptype:all,name:RB")}},
|
||||
{QStringLiteral("Change Focus Backward (Shift+Tab)"), QStringLiteral("Navigation"), {QStringLiteral(""),
|
||||
QStringLiteral("api:controller,button:9,engine:sdl,maptype:all,name:LB")}},
|
||||
}};
|
||||
// clang-format on
|
||||
|
||||
|
|
@ -227,7 +246,8 @@ void QtConfig::WriteBasicSetting(const Settings::Setting<std::vector<Type>, rang
|
|||
}
|
||||
qt_config->setValue(name, stringList);
|
||||
}
|
||||
// Explicit u16 definition: Qt would store it as QMetaType otherwise, which is not human-readable
|
||||
// Explicit u16 definition: Qt would store it as QMetaType otherwise, which is not
|
||||
// human-readable
|
||||
template <>
|
||||
void QtConfig::WriteBasicSetting(const Settings::Setting<u16>& setting) {
|
||||
const QString name = QString::fromStdString(setting.GetLabel());
|
||||
|
|
@ -507,7 +527,8 @@ void QtConfig::ReadDataStorageValues() {
|
|||
void QtConfig::ReadDebuggingValues() {
|
||||
qt_config->beginGroup(QStringLiteral("Debugging"));
|
||||
|
||||
// Intentionally not using the QT default setting as this is intended to be changed in the ini
|
||||
// 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(Settings::QKeys::record_frame_times, false).toBool();
|
||||
ReadBasicSetting(Settings::values.use_gdbstub);
|
||||
|
|
@ -742,9 +763,9 @@ void QtConfig::ReadShortcutValues() {
|
|||
for (const auto& [name, group, shortcut] : default_hotkeys) {
|
||||
qt_config->beginGroup(group);
|
||||
qt_config->beginGroup(name);
|
||||
// No longer using ReadSetting for shortcut.second as it innacurately returns a value of 1
|
||||
// for WidgetWithChildrenShortcut which is a value of 3. Needed to fix shortcuts the open
|
||||
// a file dialog in windowed mode
|
||||
// No longer using ReadSetting for shortcut.second as it innacurately returns a value of
|
||||
// 1 for WidgetWithChildrenShortcut which is a value of 3. Needed to fix shortcuts the
|
||||
// open a file dialog in windowed mode
|
||||
UISettings::values.shortcuts.push_back(
|
||||
{name,
|
||||
group,
|
||||
|
|
@ -1102,7 +1123,8 @@ void QtConfig::SaveDataStorageValues() {
|
|||
void QtConfig::SaveDebuggingValues() {
|
||||
qt_config->beginGroup(QStringLiteral("Debugging"));
|
||||
|
||||
// Intentionally not using the QT default setting as this is intended to be changed in the ini
|
||||
// Intentionally not using the QT default setting as this is intended to be changed in the
|
||||
// ini
|
||||
qt_config->setValue(Settings::QKeys::record_frame_times, Settings::values.record_frame_times);
|
||||
WriteBasicSetting(Settings::values.use_gdbstub);
|
||||
WriteBasicSetting(Settings::values.gdbstub_port);
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ public:
|
|||
|
||||
static const std::array<int, Settings::NativeButton::NumButtons> default_buttons;
|
||||
static const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> default_analogs;
|
||||
static const std::array<UISettings::Shortcut, 38> default_hotkeys;
|
||||
static const std::array<UISettings::Shortcut, 46> default_hotkeys;
|
||||
|
||||
private:
|
||||
void Initialize(const std::string& config_name);
|
||||
|
|
|
|||
|
|
@ -57,6 +57,9 @@ QList<QKeySequence> ConfigureHotkeys::GetUsedKeyList() const {
|
|||
|
||||
void ConfigureHotkeys::Populate(const HotkeyRegistry& registry) {
|
||||
for (const auto& group : registry.hotkey_groups) {
|
||||
// skip the controller navigation group in the keyboard hotkey config window
|
||||
if (group.first == QStringLiteral("Navigation"))
|
||||
continue;
|
||||
QStandardItem* parent_item = new QStandardItem(group.first);
|
||||
parent_item->setEditable(false);
|
||||
for (const auto& hotkey : group.second) {
|
||||
|
|
|
|||
|
|
@ -45,10 +45,11 @@
|
|||
#include "core/hle/service/fs/archive.h"
|
||||
#include "qcursor.h"
|
||||
|
||||
// On Mac OS X, the Return key does not trigger the activation signal for some reason. Fix it.
|
||||
// On Mac OS X, neither the Return nor Enter key triggers the activation signal for some reason. Fix
|
||||
// it.
|
||||
|
||||
void GameListTreeView::keyPressEvent(QKeyEvent* event) {
|
||||
if (event->key() == Qt::Key_Return) {
|
||||
if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) {
|
||||
const QModelIndex idx = currentIndex();
|
||||
if (idx.isValid()) {
|
||||
emit activated(idx);
|
||||
|
|
|
|||
|
|
@ -95,6 +95,10 @@ public:
|
|||
|
||||
static const QStringList supported_file_extensions;
|
||||
|
||||
GameListTreeView* GetGameTreeView() {
|
||||
return tree_view;
|
||||
}
|
||||
|
||||
signals:
|
||||
void GameChosen(const QString& game_path);
|
||||
void ShouldCancelWorker();
|
||||
|
|
@ -138,6 +142,7 @@ private:
|
|||
void changeEvent(QEvent*) override;
|
||||
void RetranslateUI();
|
||||
|
||||
protected:
|
||||
GameListSearchField* search_field;
|
||||
GMainWindow* main_window = nullptr;
|
||||
QVBoxLayout* layout = nullptr;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue