4 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.