feat: integrate keybinding customization UI into Settings window

- Extended KeybindingManager enum with TOGGLE_GUILD_ROSTER (O) and
  TOGGLE_DUNGEON_FINDER (J) to replace hard-coded key checks
- Added Controls tab in Settings UI for rebinding all 10 customizable actions
- Implemented real-time key capture and binding with visual feedback
- Integrated keybinding persistence with main settings.cfg file
- Replaced hard-coded O key (Guild Roster) and I key (Dungeon Finder) checks
  with KeybindingManager::isActionPressed() calls
- Added Reset to Defaults button for restoring original keybindings
This commit is contained in:
Kelsi 2026-03-11 06:51:48 -07:00
parent e6741f815a
commit f7a79b436e
4 changed files with 130 additions and 4 deletions

View file

@ -8,6 +8,7 @@
#include "ui/quest_log_screen.hpp"
#include "ui/spellbook_screen.hpp"
#include "ui/talent_screen.hpp"
#include "ui/keybinding_manager.hpp"
#include <vulkan/vulkan.h>
#include <imgui.h>
#include <string>
@ -111,6 +112,10 @@ private:
bool pendingMinimapNpcDots = false;
bool pendingSeparateBags = true;
bool pendingAutoLoot = false;
// Keybinding customization
int pendingRebindAction = -1; // -1 = not rebinding, otherwise action index
bool awaitingKeyPress = false;
bool pendingUseOriginalSoundtrack = true;
bool pendingShowActionBar2 = true; // Show second action bar above main bar
float pendingActionBar2OffsetX = 0.0f; // Horizontal offset from default center position

View file

@ -23,6 +23,8 @@ public:
TOGGLE_MINIMAP,
TOGGLE_SETTINGS,
TOGGLE_CHAT,
TOGGLE_GUILD_ROSTER,
TOGGLE_DUNGEON_FINDER,
ACTION_COUNT
};