Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/keyboard mapping #88

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

Vermino
Copy link
Contributor

@Vermino Vermino commented Oct 23, 2024

No description provided.

- ALT + Plus or Minus to go up or down a Z level
- Shift hotkey has been added to decrease Z Level
Implements a comprehensive keyboard configuration system allowing users to customize
and manage keybindings throughout the application. This new system includes a dedicated
configuration UI accessible through Tools -> Keyboard Configuration.

Core Features:
- Configurable bindings for camera and Z-level controls
- Multiple predefined keyboard layouts (WASD, ESDF, Arrow keys)
- Import/Export functionality for sharing keybinding configurations
- Real-time conflict detection and validation
- Search functionality to easily find specific bindings
- Category-based organization of keybindings

Technical Implementation:
- New KeyBinding system with modifier key support
- Action-based input handling system
- JSON-based configuration persistence
- Migration system for future config updates
- Extensible architecture for adding new bindable actions

UI Components:
- KeyboardConfig window for managing all bindings
- KeyBindingDialog for capturing new key combinations
- SearchBox for filtering available bindings
- Profile selector for quick layout switching

Modified Components:
- Camera.cs: Removed hardcoded keys, now using action system
- Config.cs: Added KeyBindings support
- MainMenu.xaml: Added Keyboard Configuration option
- ConfigManager: Added keybinding save/load functionality

New Files:
- Entity/KeyBinding.cs
- Config/KeyBindingConfig.cs
- Input/InputManager.cs
- Input/KeyRecorder.cs
- Model/UserAction.cs
- Model/ActionRegistry.cs
- Config/ConfigMigration.cs
- View/KeyboardConfig.xaml/cs
- View/KeyBindingDialog.xaml/cs

Testing:
- Verified key recording functionality
- Tested conflict detection
- Validated import/export features
- Confirmed proper persistence of settings
- Checked migration system functionality

Note: This change removes hardcoded key bindings from the Camera class and
introduces a more flexible, maintainable approach to input handling throughout
the application.
Implements a comprehensive keyboard configuration system allowing users to customize
and manage keybindings throughout the application. This new system includes a dedicated
configuration UI accessible through Tools -> Keyboard Configuration.

Core Features:
- Configurable bindings for camera and Z-level controls
- Multiple predefined keyboard layouts (WASD, ESDF, Arrow keys)
- Import/Export functionality for sharing keybinding configurations
- Real-time conflict detection and validation
- Search functionality to easily find specific bindings
- Category-based organization of keybindings

Technical Implementation:
- New KeyBinding system with modifier key support
- Action-based input handling system
- JSON-based configuration persistence
- Migration system for future config updates
- Extensible architecture for adding new bindable actions

UI Components:
- KeyboardConfig window for managing all bindings
- KeyBindingDialog for capturing new key combinations
- SearchBox for filtering available bindings
- Profile selector for quick layout switching

Modified Components:
- Camera.cs: Removed hardcoded keys, now using action system
- Config.cs: Added KeyBindings support
- MainMenu.xaml: Added Keyboard Configuration option
- ConfigManager: Added keybinding save/load functionality

New Files:
- Entity/KeyBinding.cs
- Config/KeyBindingConfig.cs
- Input/InputManager.cs
- Input/KeyRecorder.cs
- Model/UserAction.cs
- Model/ActionRegistry.cs
- Config/ConfigMigration.cs
- View/KeyboardConfig.xaml/cs
- View/KeyBindingDialog.xaml/cs

Testing:
- Verified key recording functionality
- Tested conflict detection
- Validated import/export features
- Confirmed proper persistence of settings
- Checked migration system functionality

Note: This change removes hardcoded key bindings from the Camera class and
introduces a more flexible, maintainable approach to input handling throughout
the application.
…eature/keyboard-mapping

# Conflicts:
#	ACViewer/Config/ConfigManager.cs
#	ACViewer/Config/KeyBindingConfig.cs
#	ACViewer/Input/KeyRecorder.cs
#	ACViewer/View/KeyboardConfig.xaml.cs
@Vermino Vermino marked this pull request as draft January 21, 2025 16:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant