View Issue Details

IDProjectCategoryView StatusLast Update
0005180DarkRadiantDesign/Codingpublic29.09.2020 16:47
Reportergreebo Assigned Togreebo  
PrioritynormalSeveritytweakReproducibilityN/A
Status resolvedResolutionfixed 
Product Version2.7.0 
Target Version2.8.1Fixed in Version2.8.1 
Summary0005180: Simplify Commands and Event registration
DescriptionRight now we have lots of calls looking like this:

    GlobalEventManager().addCommand("DeleteSelection", "DeleteSelection");

For UI elements being able to target commands, an event has to be created and named. Usually this event is directly linked to the a command or statement in the CommandSystem, which is named exactly the same. The EventManager code should be made more intelligent to automatically detect whether a command with a certain name is present in the CommandSystem, without having the modules register proxy events with the same name.
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Related Changesets

DarkRadiant: eventregistration 73d41251

2020-05-10 17:45:05

greebo

Details Diff
0005180: Experimental step, removing all IEventManager::addCommand calls with statement == name Affected Issues
0005180
mod - include/ieventmanager.h Diff File
mod - plugins/dm.conversation/plugin.cpp Diff File
mod - plugins/dm.difficulty/plugin.cpp Diff File
mod - plugins/dm.editing/plugin.cpp Diff File
mod - plugins/dm.gui/plugin.cpp Diff File
mod - plugins/dm.objectives/objectives.cpp Diff File
mod - plugins/dm.stimresponse/plugin.cpp Diff File
mod - plugins/script/ScriptCommand.cpp Diff File
mod - plugins/script/ScriptingSystem.cpp Diff File
mod - radiant/brush/BrushModule.cpp Diff File
mod - radiant/brush/csg/CSG.cpp Diff File
mod - radiant/camera/GlobalCamera.cpp Diff File
mod - radiant/clipper/Clipper.cpp Diff File
mod - radiant/eclassmgr/EClassManager.cpp Diff File
mod - radiant/layers/LayerModule.cpp Diff File
mod - radiant/map/Map.cpp Diff File
mod - radiant/map/MapPositionManager.cpp Diff File
mod - radiant/map/PointFile.cpp Diff File
mod - radiant/map/RegionManager.cpp Diff File
mod - radiant/model/ModelCache.cpp Diff File
mod - radiant/particles/ParticlesManager.cpp Diff File
mod - radiant/particles/editor/ParticleEditorModule.h Diff File
mod - radiant/patch/PatchCreators.cpp Diff File
mod - radiant/selection/RadiantSelectionSystem.cpp Diff File
mod - radiant/selection/algorithm/General.cpp Diff File
mod - radiant/selection/group/SelectionGroupModule.cpp Diff File
mod - radiant/selection/selectionset/SelectionSetModule.cpp Diff File
mod - radiant/textool/TexTool.cpp Diff File
mod - radiant/ui/UserInterfaceModule.cpp Diff File
mod - radiant/ui/aas/AasControlDialog.cpp Diff File
mod - radiant/ui/einspector/EntityInspector.cpp Diff File
mod - radiant/ui/filters/FilterUserInterface.cpp Diff File
mod - radiant/ui/grid/GridUserInterface.cpp Diff File
mod - radiant/ui/mainframe/LayoutCommand.h Diff File
mod - radiant/ui/mainframe/MainFrame.cpp Diff File
mod - radiant/ui/mediabrowser/MediaBrowser.cpp Diff File
mod - radiant/ui/mru/MRU.cpp Diff File
mod - radiant/ui/texturebrowser/TextureBrowserManager.cpp Diff File
mod - radiant/uimanager/UIManager.cpp Diff File
mod - radiant/undo/UndoSystem.cpp Diff File
mod - radiant/xyview/GlobalXYWnd.cpp Diff File
mod - radiantcore/commandsystem/CommandSystem.cpp Diff File

DarkRadiant: eventregistration 5fc31547

2020-05-11 05:04:01

greebo

Details Diff
0005180: Associate accelerators to statements if possible. Add EventManager::handleKeyEvent method doing the logic instead of the GlobalKeyEventFilter. Affected Issues
0005180
mod - include/icommandsystem.h Diff File
mod - radiant/eventmanager/Accelerator.cpp Diff File
mod - radiant/eventmanager/Accelerator.h Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/EventManager.h Diff File
mod - radiant/eventmanager/GlobalKeyEventFilter.cpp Diff File
mod - radiantcore/commandsystem/CommandSystem.cpp Diff File
mod - radiantcore/commandsystem/CommandSystem.h Diff File

DarkRadiant: eventregistration 930786d8

2020-05-11 07:52:14

greebo

Details Diff
0005180: Another WIP commit, changing accelerator and menu item handling. Affected Issues
0005180
mod - include/ieventmanager.h Diff File
mod - include/iuimanager.h Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/EventManager.h Diff File
mod - radiant/uimanager/menu/MenuBar.h Diff File
mod - radiant/uimanager/menu/MenuElement.cpp Diff File
mod - radiant/uimanager/menu/MenuElement.h Diff File
mod - radiant/uimanager/menu/MenuFolder.h Diff File
mod - radiant/uimanager/menu/MenuItem.cpp Diff File
mod - radiant/uimanager/menu/MenuItem.h Diff File
mod - radiant/uimanager/menu/MenuRootElement.h Diff File
mod - radiant/uimanager/menu/MenuSeparator.h Diff File

DarkRadiant: eventregistration b39df35e

2020-05-11 12:47:04

greebo

Details Diff
0005180: Accelerator handling Affected Issues
0005180
mod - radiant/eventmanager/Accelerator.cpp Diff File
mod - radiant/eventmanager/Accelerator.h Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/EventManager.h Diff File
mod - radiant/eventmanager/Statement.cpp Diff File
mod - radiant/uimanager/menu/MenuItem.cpp Diff File

DarkRadiant: eventregistration 3e04e412

2020-05-11 18:34:27

greebo

Details Diff
0005180: More accelerator handling changes Affected Issues
0005180
mod - include/ieventmanager.h Diff File
mod - include/iuimanager.h Diff File
mod - radiant/eventmanager/Accelerator.cpp Diff File
mod - radiant/eventmanager/Accelerator.h Diff File
mod - radiant/eventmanager/Event.h Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/EventManager.h Diff File
mod - radiant/eventmanager/Toggle.cpp Diff File
mod - radiant/eventmanager/Toggle.h Diff File
mod - radiant/ui/commandlist/ShortcutChooser.cpp Diff File
mod - radiant/uimanager/menu/MenuElement.h Diff File
mod - radiant/uimanager/menu/MenuItem.cpp Diff File
mod - radiant/uimanager/menu/MenuItem.h Diff File

DarkRadiant: eventregistration 1c430626

2020-05-12 17:42:48

greebo

Details Diff
0005180: IMenuElements are now offering a clicked signal to subscribe to. Affected Issues
0005180
mod - include/iuimanager.h Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/EventManager.h Diff File
mod - radiant/eventmanager/Statement.cpp Diff File
mod - radiant/eventmanager/Statement.h Diff File
mod - radiant/eventmanager/Toggle.cpp Diff File
mod - radiant/eventmanager/Toggle.h Diff File
mod - radiant/uimanager/menu/MenuElement.h Diff File
mod - radiant/uimanager/menu/MenuItem.cpp Diff File
mod - radiant/uimanager/menu/MenuItem.h Diff File

DarkRadiant: eventregistration 7e0dc324

2020-05-12 18:46:55

greebo

Details Diff
0005180: Disconnect signals on destruction to prevent double-firing. Affected Issues
0005180
mod - radiant/eventmanager/RegistryToggle.h Diff File
mod - radiant/eventmanager/Statement.cpp Diff File
mod - radiant/eventmanager/Toggle.cpp Diff File

DarkRadiant: eventregistration 8ddc9e6e

2020-05-12 19:32:25

greebo

Details Diff
0005180: Allow disconnection of registry keys observed by registry::observeBooleanKey Affected Issues
0005180
mod - libs/registry/adaptors.h Diff File
mod - radiant/eventmanager/RegistryToggle.h Diff File

DarkRadiant: eventregistration 53753838

2020-05-13 04:22:28

greebo

Details Diff
0005180: Menu item accelerator strings are kept in sync Affected Issues
0005180
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/EventManager.h Diff File

DarkRadiant: eventregistration 3d8016eb

2020-05-13 04:51:02

greebo

Details Diff
0005180: Accelerator handling Affected Issues
0005180
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/ui/commandlist/CommandList.cpp Diff File

DarkRadiant: eventregistration 1d95fc69

2020-05-14 18:44:52

greebo

Details Diff
0005180: Tool items connected to statements are working again Affected Issues
0005180
mod - include/ieventmanager.h Diff File
mod - radiant/eventmanager/Event.h Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/EventManager.h Diff File
mod - radiant/eventmanager/SaveEventVisitor.h Diff File
mod - radiant/eventmanager/Statement.cpp Diff File
mod - radiant/eventmanager/Toggle.cpp Diff File
mod - radiant/uimanager/ToolbarManager.cpp Diff File

DarkRadiant: eventregistration 1b580898

2020-05-14 19:11:37

greebo

Details Diff
0005180: Toolbars are properly unregistering themselves on destruction. Affected Issues
0005180
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/ui/mainframe/TopLevelFrame.cpp Diff File
mod - radiant/ui/mainframe/TopLevelFrame.h Diff File
mod - radiant/uimanager/ToolbarManager.cpp Diff File
mod - radiant/uimanager/ToolbarManager.h Diff File

DarkRadiant: eventregistration c8358c29

2020-05-15 04:48:36

greebo

Details Diff
0005180: Move most of the toolbar logic to the ToolbarManager. Affected Issues
0005180
mod - include/ieventmanager.h Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/EventManager.h Diff File
mod - radiant/uimanager/ToolbarManager.cpp Diff File
mod - radiant/uimanager/ToolbarManager.h Diff File

DarkRadiant: eventregistration 44f495c5

2020-05-15 06:16:39

greebo

Details Diff
0005180: Connect simple buttons directly to the commandsystem Affected Issues
0005180
mod - include/ieventmanager.h Diff File
add - libs/wxutil/Button.h Diff File
mod - radiant/eventmanager/Event.h Diff File
mod - radiant/eventmanager/Statement.cpp Diff File
mod - radiant/eventmanager/Statement.h Diff File
mod - radiant/ui/layers/LayerControlDialog.cpp Diff File
mod - radiant/ui/surfaceinspector/SurfaceInspector.cpp Diff File
mod - radiant/ui/texturebrowser/TextureBrowser.cpp Diff File
mod - tools/msvc/wxutillib.vcxproj Diff File
mod - tools/msvc/wxutillib.vcxproj.filters Diff File

DarkRadiant: eventregistration 3f03436a

2020-05-15 07:11:45

greebo

Details Diff
0005180: Take back some of the changes introduced earlier, they didn't make things easier. Affected Issues
0005180
mod - include/ieventmanager.h Diff File
mod - include/iuimanager.h Diff File
mod - radiant/eventmanager/Event.h Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/EventManager.h Diff File
mod - radiant/eventmanager/Statement.cpp Diff File
mod - radiant/eventmanager/Statement.h Diff File
mod - radiant/eventmanager/Toggle.cpp Diff File
mod - radiant/eventmanager/Toggle.h Diff File
mod - radiant/uimanager/menu/MenuElement.h Diff File
mod - radiant/uimanager/menu/MenuItem.cpp Diff File
mod - radiant/uimanager/menu/MenuItem.h Diff File

DarkRadiant: eventregistration 9344476e

2020-05-15 07:15:53

greebo

Details Diff
0005180: Migrate FilterMenu to use registerMenuItem instead of doing the logic on its own Affected Issues
0005180
mod - radiant/ui/filters/FilterMenu.cpp Diff File

DarkRadiant: eventregistration a84d959a

2020-05-15 10:17:41

greebo

Details Diff
0005180: Remove accelerator handling from Event classes Affected Issues
0005180
mod - include/ieventmanager.h Diff File
mod - radiant/eventmanager/Event.h Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/Statement.cpp Diff File
mod - radiant/eventmanager/Statement.h Diff File
mod - radiant/eventmanager/Toggle.cpp Diff File
mod - radiant/eventmanager/Toggle.h Diff File

DarkRadiant: eventregistration 5be36c75

2020-05-15 10:20:33

greebo

Details Diff
0005180: Remove leftover files still referencing on Gtkmm Affected Issues
0005180
rm - libs/wxutil/MenuItemAccelerator.cpp Diff File
rm - libs/wxutil/MenuItemAccelerator.h Diff File
mod - tools/msvc/wxutillib.vcxproj Diff File
mod - tools/msvc/wxutillib.vcxproj.filters Diff File

DarkRadiant: eventregistration 586d8c03

2020-05-15 10:28:07

greebo

Details Diff
0005180: Remove deactivated code Affected Issues
0005180
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/EventManager.h Diff File
mod - radiant/eventmanager/MouseToolManager.cpp Diff File

DarkRadiant: eventregistration e6430e52

2020-05-15 10:53:59

greebo

Details Diff
0005180: Fix broken ShortcutChooser Affected Issues
0005180
mod - include/ieventmanager.h Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/EventManager.h Diff File
mod - radiant/ui/commandlist/ShortcutChooser.cpp Diff File
mod - radiant/ui/commandlist/ShortcutChooser.h Diff File

DarkRadiant: eventregistration c64761ce

2020-05-16 04:59:04

greebo

Details Diff
0005180: Start fixing the camera movement key handling Affected Issues
0005180
mod - install/input.xml Diff File
mod - radiant/camera/CamWnd.cpp Diff File
mod - radiant/camera/CamWnd.h Diff File
mod - radiant/camera/Camera.cpp Diff File
mod - radiant/camera/Camera.h Diff File
mod - radiant/camera/GlobalCamera.cpp Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File

DarkRadiant: eventregistration 120b2c0f

2020-05-16 06:24:01

greebo

Details Diff
0005180: Move more camera movement key handling to inner classes Affected Issues
0005180
mod - install/input.xml Diff File
mod - radiant/camera/Camera.cpp Diff File
mod - radiant/camera/Camera.h Diff File
mod - radiant/camera/GlobalCamera.cpp Diff File

DarkRadiant: eventregistration 67409a0e

2020-05-16 06:51:42

greebo

Details Diff
0005180: Cam move up/down functionality merged into one method Affected Issues
0005180
mod - install/input.xml Diff File
mod - radiant/camera/Camera.cpp Diff File
mod - radiant/camera/Camera.h Diff File
mod - radiant/camera/GlobalCamera.cpp Diff File

DarkRadiant: eventregistration e37536a6

2020-05-16 15:46:11

greebo

Details Diff
0005180: Add MoveCamera console command before removing the discrete events which will be bound to the KeyEvents only. Affected Issues
0005180
mod - radiant/camera/CamWnd.cpp Diff File
mod - radiant/camera/Camera.cpp Diff File
mod - radiant/camera/Camera.h Diff File
mod - radiant/camera/GlobalCamera.cpp Diff File
mod - radiant/camera/GlobalCamera.h Diff File

DarkRadiant: eventregistration 2e2bbb49

2020-05-16 16:32:09

greebo

Details Diff
0005180: First round of cleanup in CamWnd class. Affected Issues
0005180
mod - radiant/camera/CamWnd.cpp Diff File
mod - radiant/camera/CamWnd.h Diff File
mod - radiant/camera/GlobalCamera.cpp Diff File
mod - radiant/camera/GlobalCamera.h Diff File

DarkRadiant: eventregistration f5cd8da0

2020-05-16 16:52:49

greebo

Details Diff
0005180: GlobalCamera class cleanup Affected Issues
0005180
mod - radiant/camera/CamWnd.cpp Diff File
mod - radiant/camera/CamWnd.h Diff File
mod - radiant/camera/GlobalCamera.cpp Diff File
mod - radiant/camera/GlobalCamera.h Diff File

DarkRadiant: eventregistration bac9206a

2020-05-16 18:01:17

greebo

Details Diff
0005180: Remove more unused code Affected Issues
0005180
mod - radiant/uimanager/ToolbarManager.cpp Diff File
mod - radiant/uimanager/menu/MenuItem.cpp Diff File

DarkRadiant: eventregistration 3867f3cd

2020-05-16 18:10:50

greebo

Details Diff
0005180: Rename SaveEventVisitor to ShortcutSaver. Remove redundant cycling over registered events to save accelerators, they are all handled. Affected Issues
0005180
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - tools/msvc/DarkRadiant.vcxproj Diff File
mod - tools/msvc/DarkRadiant.vcxproj.filters Diff File

DarkRadiant: eventregistration a4dc785c

2020-05-16 18:29:56

greebo

Details Diff
0005180: Remove unused method from interface. Prevent duplicated commands showing up in Shortcut dialog. Affected Issues
0005180
mod - include/ieventmanager.h Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/EventManager.h Diff File

DarkRadiant: eventregistration 32b4af61

2020-05-16 18:53:39

greebo

Details Diff
0005180: Handle legacy command bindings to save users from having to reset all their shortcuts after upgrading. Affected Issues
0005180
mod - install/input.xml Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File

Issue History

Date Modified Username Field Change
15.03.2020 04:35 greebo New Issue
15.03.2020 04:35 greebo Status new => confirmed
12.05.2020 04:06 greebo Changeset attached => DarkRadiant eventregistration 73d41251
12.05.2020 04:06 greebo Changeset attached => DarkRadiant eventregistration 5fc31547
12.05.2020 04:06 greebo Changeset attached => DarkRadiant eventregistration 930786d8
12.05.2020 04:06 greebo Changeset attached => DarkRadiant eventregistration b39df35e
12.05.2020 04:06 greebo Changeset attached => DarkRadiant eventregistration 3e04e412
12.05.2020 19:32 greebo Changeset attached => DarkRadiant eventregistration 1c430626
12.05.2020 19:32 greebo Changeset attached => DarkRadiant eventregistration 7e0dc324
12.05.2020 19:32 greebo Changeset attached => DarkRadiant eventregistration 8ddc9e6e
16.05.2020 04:59 greebo Changeset attached => DarkRadiant eventregistration 53753838
16.05.2020 04:59 greebo Changeset attached => DarkRadiant eventregistration 3d8016eb
16.05.2020 04:59 greebo Changeset attached => DarkRadiant eventregistration 1d95fc69
16.05.2020 04:59 greebo Changeset attached => DarkRadiant eventregistration 1b580898
16.05.2020 04:59 greebo Changeset attached => DarkRadiant eventregistration c8358c29
16.05.2020 04:59 greebo Changeset attached => DarkRadiant eventregistration 44f495c5
16.05.2020 04:59 greebo Changeset attached => DarkRadiant eventregistration 3f03436a
16.05.2020 04:59 greebo Changeset attached => DarkRadiant eventregistration 9344476e
16.05.2020 04:59 greebo Changeset attached => DarkRadiant eventregistration a84d959a
16.05.2020 04:59 greebo Changeset attached => DarkRadiant eventregistration 5be36c75
16.05.2020 04:59 greebo Changeset attached => DarkRadiant eventregistration 586d8c03
16.05.2020 04:59 greebo Changeset attached => DarkRadiant eventregistration e6430e52
16.05.2020 04:59 greebo Changeset attached => DarkRadiant eventregistration c64761ce
16.05.2020 16:53 greebo Changeset attached => DarkRadiant eventregistration 120b2c0f
16.05.2020 16:53 greebo Changeset attached => DarkRadiant eventregistration 67409a0e
16.05.2020 16:53 greebo Changeset attached => DarkRadiant eventregistration e37536a6
16.05.2020 16:53 greebo Changeset attached => DarkRadiant eventregistration 2e2bbb49
16.05.2020 16:53 greebo Changeset attached => DarkRadiant eventregistration f5cd8da0
16.05.2020 18:53 greebo Changeset attached => DarkRadiant eventregistration bac9206a
16.05.2020 18:53 greebo Changeset attached => DarkRadiant eventregistration 3867f3cd
16.05.2020 18:53 greebo Changeset attached => DarkRadiant eventregistration a4dc785c
16.05.2020 18:53 greebo Changeset attached => DarkRadiant eventregistration 32b4af61
17.09.2020 18:01 greebo Assigned To => greebo
17.09.2020 18:01 greebo Status confirmed => resolved
17.09.2020 18:01 greebo Resolution open => fixed
17.09.2020 18:01 greebo Fixed in Version => 2.9.0
29.09.2020 16:46 greebo Fixed in Version 2.9.0 => 2.8.1
29.09.2020 16:47 greebo Target Version => 2.8.1