5 Months Ago
Created EditorKeybinds.cs with a few starting keybinds Move Keybinds into EditorPreferences since that makes more sense Add RegisterShortcuts() function whenever shortcuts are registered and use the EditorPreferences keybind instead of hardcoded string Added Editor Keybinds page to EditorPreferencesWindow Subscribe all RegisterShortcut voids to keybinds.update EditorEvent https://files.facepunch.com/CarsonKompon/2024/July/10_21-46-TautDuck.mp4 Create shortcut for EditorCycleViewMode Make Keybinds page scrollable, add Reset to Default button, and add Are You Sure popup to Reset button Use TitleAttribute for keybind names https://files.facepunch.com/CarsonKompon/2024/July/10_22-23-FakeGourami.png Add AllowModifiers to KeyBind widget, set to true for Editor Keybinds Page (Allows you to bind CTRL+SHIFT+ALT+Whatever) Some FileOption binds, but they dont auto-update yet. Will need to find a good way to do that for Option entries Call keybinds.update EditorEvent on Reset to Default Created EditorShortcuts.cs to eventually replace EditorPreferences.Keybinds Need to call this after EditorTypeLibrary is created Register shortcuts elsewhere and remove some option shortcuts Change default shortcut type Register shortcuts on hotload Convert some older shortcuts into the new [Shortcut] attribute Change shortcut defaults Update EditorShortcuts to include Identifier and Keys, including method to get current keys from overrides (player defined overrides) Display [Shortcut] shortcuts in Editor Keybinds page instead of EditorPreferences.Keybinds EditorShortcuts rebinding actually works now, much more lightweight than prior version Make user overrides save properly Get Name and Group properly, allow attributes to override. Get keys from shortcut name in Option.cs Allow non-static method shortcuts since there seems to be a good chunk of those Stop feeding shortcut to Options for now Fix size of Editor Keybinds page Fix using the wrong widget for non-static shortcuts Move EditorPreferences.Keybinds over to new [Shortcut] attribute system on each function Completely remove EditorPreferences.Keybinds Change name/groups for a few shortcuts Order categories by name in PageKeybinds Remove some debug logs Create Texture Editor and Actiongraph shortcuts Create ShaderGraph, Hotspot Editor and some more scene shortcuts Add GameObject/Transform shortcuts and fix static method issues. Made grid size shortcuts Window type instead of Widget type Make all the different editors share a few binds (So there's not a Copy,Cut,Paste,Undo,Redo,ect. per-editor) Make classes with [Shortcut] attribute properly rebindable (used for editortools) Cleanup shortcut groups Added individual Revert button when bind is different from the default https://files.facepunch.com/CarsonKompon/2024/July/12_08-54-UnimportantTarantula.mp4 Qt Option now takes shortcut ident (eg. "editor.undo") and internally resolves bind (eg. "CTRL+Z"), updating when changed. No longer registers shortcut internally when set. Shortcuts with Function Keys are always to editor even when Game Frame is in focus F3 and F5 editor commands are now Shortcuts like everything else Fix shortcut not displaying on Align To View option Fix SaveMixer being static Change "F5" -> "editor.toggle-play" on Play menu option Cache the overrides so we don't have to keep checking against EditorCookie Super minor cleanup Rename Name -> DisplayName so there's no conflict on KeybindPanel Fix ShortcutOverrides not loading properly Use CodeToString(ButtonCode) instead of the weird enum parsing I was doing. Remove `Editor.Option.ShortcutContext` Strip native shortcuts from `Editor.Shortcut` class. Make class internal. Documentation cleanup Update Shortcut.Invoke so it handles Mode logic EditorShortcut.Invoke is now a bool returning whether or not a shortcut was invoked from the pressed keys Shortcuts are now invoked from Sandbox.Tools instead of thru native QT shortcut. Make `scene.fullscreen` (F4) bind static. Fixes rebuilding issue. Fix Function Keys not being sent when in-game since it was checking for a console bind instead of keybind Fix number keys not working Create keybinds for the different Tools now that Editor.Shortcut is internal Create keybinds for the different subtools for the same reason Mark `MenuAttribute.Shortcut` as Obsolete. Get identifier from `[Shortcut]` attribute if one exists. Update Shortcut value in AssetInspector Display shortcuts on Tool and Subtool buttons without need for ShortcutAttribute on the class Mark Editor.Option.Shortcut as [Obsolete], telling users to use Editor.Option.ShortcutName instead GlobalKeyPressed now passes KeyEvent instead of key int Added KeyEvent.Name which returns the name of the key pressed based on it's KeyCode and NativeKeyCode Strip the Shortcut class from EditorShortcuts altogether, reducing bloat and fixing widget focus issues. Pulled ShortcutType enum outside of ShortcutAttribute class. Added `Widget.IsDescendantOf` and `Widget.IsAscenstorOf` Check if widget is a descendant of the focused widget when invoking shortcuts NRE fixes Don't invoke shortcuts if the focused widget is an input field Remove hack to call F1-F12 binds in the editor. Make F6 Editor Shortcut to replace F6 bind. Merge pull request #1624 from Facepunch/editor-keybinds Editor Keybinds