Various Quality of Life features
Hi,
I know, big PRs with multiple features suck, but otherwise I had to create a branch per feature which sucks too. :(
I added several QoL features to the main branch so stuff is now a bit more automated. Main driver is to utilize RTTI information more in an automated fashion. These make ReClass.NET now way more usable with RTTI info containing exe's :)
Stuff changed / added:
- Defined various keyboard shortcuts for the node types, centrally defined in the Settings class. I also changed the ToolStripButtons to ToolStripMenuItems so they can have shortcuts (they behave the same). This has the advantage that you can just press e.g.
Ctrl-Shift-Pto define a pointer without opening the context menu as the keyboard shortcut is picked up by the toolbar button :) - Moved ReadFromMemory to MemoryBuffer so it's usable from multiple node types
- VTable node now always displays RTTI info in the comment, if applicable. This information was lost once you created a VTable node
- Added a way to init a class from RTTI information: it'll name the class after the type associated with the VTable and it will also define the first node as a VTable node.
- The node context menu is now visible on nested class nodes, and options work now.
I hope I've added all code to the right place. I avoided refactoring whenever possible.
ps: in the commits there are also changes related to alt-shortcuts (showing when pressing alt on main menu items) but these obviously don't show in a context menu so I later on removed them again.
If you want I can also add Undo / Redo to node info. I wrote an algorithm library years ago (https://github.com/SolutionsDesign/Algorithmia) which I use in my software LLBLGen Pro extensively to build undo-redo aware datastructures and it's very easy to add an undo-redo aware property for instance (without the outside code needing any changes).
Hopefully you can use these changes!
(If you think, who are you: I wrote the Universal Unreal Engine Unlocker tools and a lot of other camera mods for games).
Added 2 tiny things:
- made the initial window a bit wider (was already too narrow) so all toolbar buttons are visible
- added the init class from rtti to the toolbar so the shortcut ctrl-shift-N is now usable without opening the context menu. Disabled/enabled based on selected node (only enabled on class nodes)
I've corrected everything, I think. :)