View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000410 | DarkRadiant | GUI | public | 04.11.2007 21:59 | 13.01.2024 05:32 |
Reporter | tels | Assigned To | orbweaver | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Fixed in Version | 3.3.0 | ||||
Summary | 0000410: Grey-out menu entries that are not applicable | ||||
Description | Currently, all menu entries are always "active", even when they cannot be used. It would be more user-friendly if only menu entries are selctable that can actually do something. One example are all entries in the Brush -> Clipper submenu. I puzzled forever what these do and how they work, until I found out by accident you have first to select something and create a clip plane and only then these menu entries are "working". Another solution would be to pop up a warning if these menu entries are used in a non-working state. | ||||
Tags | No tags attached. | ||||
I'm tempted to just remove the Brush -> Clipper menu. Who the hell is going to click on a second-level submenu item instead of just hitting ENTER or SHIFT+ENTER to perform a clip operation? Nevertheless, there are several items in the Brush menu which remain active when a brush is not selected (e.g. Make Hollow, CSG Subtract etc) which is probably confusing. |
|
Most (if not all) entries in Brush and Patch menus are now appropriately disabled if the required object(s) is not selected, so I think this will do for now. Other menu entries can be handled on a case-by-case basis, since the menu system now supports this. | |
DarkRadiant: master f71deeb0 15.06.2022 19:18 Details Diff |
0000410: initial mechanism to enable/disable Commands The ICommandSystem interface now exposes methods to test whether a given command is currently runnable. Currently only the CSG module is adding commands with such a check. This is only a back-end mechanism; there is not yet any support in the UI for showing the status of commands. |
Affected Issues 0000410 |
|
mod - include/icommandsystem.h | Diff File | ||
mod - radiantcore/brush/csg/CSG.cpp | Diff File | ||
mod - radiantcore/commandsystem/Command.h | Diff File | ||
mod - radiantcore/commandsystem/CommandSystem.cpp | Diff File | ||
mod - radiantcore/commandsystem/CommandSystem.h | Diff File | ||
mod - radiantcore/commandsystem/Executable.h | Diff File | ||
DarkRadiant: master 5739fc5e 22.06.2022 19:58 Details Diff |
0000410: add mechanism to grey out invalid menu entries Connect to the wxEVT_MENU_OPEN event to detect when a menu is about to be opened, and use the event handler to enable or disable menu items according to the value returned by ICommandSystem::canExecute(). Currently the only visible change is in the Brush/CSG submenu, since these are the only items for which canExecute() is implemented. |
Affected Issues 0000410 |
|
mod - radiant/eventmanager/EventManager.cpp | Diff File | ||
mod - radiant/eventmanager/EventManager.h | Diff File | ||
mod - radiantcore/commandsystem/CommandSystem.cpp | Diff File | ||
DarkRadiant: master 1f8842d0 28.06.2022 19:49 Details Diff |
0000410: add support for greying out menu items based on Statements Some menu items (such as Brush/Prism...) are based on Statements (commands with arguments) rather than simple Commands. This change implements the canExecute() method on Statement objects, allowing menu items such as Prism to be disabled if the underlying command is not runnable (ignoring arguments). The only menu items this change currently affects are the first three items in the Brush menu, which are all variants of the QueryBrushPrefabSidesDialog command with different arguments. |
Affected Issues 0000410 |
|
mod - include/icommandsystem.h | Diff File | ||
mod - libs/selectionlib.h | Diff File | ||
mod - radiant/ui/UserInterfaceModule.cpp | Diff File | ||
mod - radiantcore/brush/csg/CSG.cpp | Diff File | ||
mod - radiantcore/commandsystem/CommandSystem.cpp | Diff File | ||
mod - radiantcore/commandsystem/CommandSystem.h | Diff File | ||
mod - radiantcore/commandsystem/Executable.h | Diff File | ||
mod - radiantcore/commandsystem/Statement.h | Diff File | ||
DarkRadiant: master 231ffcf4 29.06.2022 18:57 Details Diff |
0000410: skeleton test suite for the CommandManager Currently a single trivial test which confirms only that we can obtain the CommandManager module. |
Affected Issues 0000410 |
|
mod - libs/parser/Tokeniser.h | Diff File | ||
mod - test/CMakeLists.txt | Diff File | ||
add - test/CommandSystem.cpp | Diff File | ||
DarkRadiant: master ca727001 29.06.2022 19:08 Details Diff |
0000410: add a simple test for adding and executing a Command This simple command just increments a counter when it is called, so we can confirm that the registration and callback mechanism is working. |
Affected Issues 0000410 |
|
mod - test/CommandSystem.cpp | Diff File | ||
DarkRadiant: master b21d09ac 29.06.2022 19:39 Details Diff |
0000410: add unit test for ICommandSystem::addWithCheck() Confirm that the canExecute() method returns the correct value based on the check function. |
Affected Issues 0000410 |
|
mod - include/icommandsystem.h | Diff File | ||
mod - test/CommandSystem.cpp | Diff File | ||
DarkRadiant: master b7d87a44 29.06.2022 19:49 Details Diff |
0000401: add unit test for a command sequence Confirm that the execute() method can run a sequence of commands separated by semicolons. |
Affected Issues 0000410 |
|
mod - test/CommandSystem.cpp | Diff File | ||
DarkRadiant: master e54c61d7 05.07.2022 19:12 Details Diff |
0000401: test calling a Command with an int argument |
Affected Issues 0000410 |
|
mod - test/CommandSystem.cpp | Diff File | ||
DarkRadiant: master a2b332e7 05.07.2022 19:45 Details Diff |
0000401: expand command-with-args unit test Test that we can receive both a string and an integer argument. Get rid of the local struct since it's not adding any value. Also confirm that the command is not called if the wrong argument types are provided. |
Affected Issues 0000410 |
|
mod - test/CommandSystem.cpp | Diff File | ||
DarkRadiant: master 2c2dfdb8 05.07.2022 20:22 Details Diff |
0000401: test calling a command with an argument list |
Affected Issues 0000410 |
|
mod - test/CommandSystem.cpp | Diff File | ||
DarkRadiant: master cfca3659 06.07.2022 19:27 Details Diff |
0000401: test calling a command with args as a statement string |
Affected Issues 0000410 |
|
mod - test/CommandSystem.cpp | Diff File | ||
DarkRadiant: master 5f4715f9 12.07.2022 19:33 Details Diff |
0000401: refactor common code in CommandSystem test Re-introduce a local struct (TestCommandReceiver) to encapsulate the command name, run count and last received args, instead of needing to explicitly declare these in each test function. |
Affected Issues 0000410 |
|
mod - test/CommandSystem.cpp | Diff File | ||
DarkRadiant: master 57244bd3 12.07.2022 19:58 Details Diff |
0000401: test passing Vector2 and Vector3 args to a command |
Affected Issues 0000410 |
|
mod - test/CommandSystem.cpp | Diff File | ||
DarkRadiant: master 403841f7 13.07.2022 19:09 Details Diff |
0000401: executeCommand() overloads are no longer virtual The executeCommand() overloads which accept 0-3 parameters do not need separate back-end implementations, since they are just constructing an ArgumentList and passing it on to the list-based overload. These are now non-virtual utility functions implemented in ICommandSystem, while the CommandSystem implementing class only needs to implement the list-based method. |
Affected Issues 0000410 |
|
mod - include/icommandsystem.h | Diff File | ||
mod - radiantcore/commandsystem/CommandSystem.cpp | Diff File | ||
mod - radiantcore/commandsystem/CommandSystem.h | Diff File | ||
DarkRadiant: master dfaa3ec6 13.07.2022 19:26 Details Diff |
0000401: 3-argument executeCommand() overload removed Now that we have C++11 initializer lists, it is much easier to construct an argument list inline as "{first, second, third}", making this rarely-used overload less necessary. |
Affected Issues 0000410 |
|
mod - include/icommandsystem.h | Diff File | ||
mod - radiant/ui/modelselector/ModelSelector.h | Diff File | ||
mod - radiant/ui/ortho/OrthoContextMenu.cpp | Diff File | ||
mod - radiant/xyview/tools/BrushCreatorTool.cpp | Diff File | ||
mod - test/Brush.cpp | Diff File | ||
mod - test/Prefabs.cpp | Diff File | ||
DarkRadiant: master d2cc12a6 13.07.2022 19:45 Details Diff |
0000401: 0-argument executeCommand() overload removed This overload can be provided implicitly via a default empty argument list parameter to the list-based method. |
Affected Issues 0000410 |
|
mod - include/icommandsystem.h | Diff File | ||
DarkRadiant: master b899bf7f 19.07.2022 19:29 Details Diff |
0000401: further unit tests for Command argument interpretation |
Affected Issues 0000410 |
|
mod - test/CommandSystem.cpp | Diff File | ||
DarkRadiant: master 1824db7e 19.07.2022 20:10 Details Diff |
0000401: test constructing some cmd::Argument types |
Affected Issues 0000410 |
|
mod - include/icommandsystem.h | Diff File | ||
mod - test/CommandSystem.cpp | Diff File | ||
DarkRadiant: master 4a1b9edb 20.07.2022 19:08 Details Diff |
0000401: further test Command argument parsing |
Affected Issues 0000410 |
|
mod - test/CommandSystem.cpp | Diff File | ||
DarkRadiant: master 4c3a5d69 27.07.2022 19:32 Details Diff |
0000401: disable "Make Visportal" if no brushes selected |
Affected Issues 0000410 |
|
mod - radiantcore/brush/BrushModule.cpp | Diff File | ||
mod - radiantcore/selection/algorithm/Primitives.cpp | Diff File | ||
mod - radiantcore/selection/algorithm/Primitives.h | Diff File | ||
DarkRadiant: master fc7807da 27.07.2022 20:03 Details Diff |
0000401: disable "Create Decal Patches" if no faces selected |
Affected Issues 0000410 |
|
mod - radiantcore/selection/algorithm/General.cpp | Diff File | ||
mod - radiantcore/selection/algorithm/Primitives.cpp | Diff File | ||
mod - radiantcore/selection/algorithm/Primitives.h | Diff File | ||
DarkRadiant: master 01b22c1f 02.08.2022 19:52 Details Diff |
0000401: Brush/Clipper menu items require selected brush |
Affected Issues 0000410 |
|
mod - include/icommandsystem.h | Diff File | ||
mod - radiantcore/brush/BrushModule.cpp | Diff File | ||
mod - radiantcore/clipper/Clipper.cpp | Diff File | ||
mod - radiantcore/clipper/Clipper.h | Diff File | ||
DarkRadiant: master 22240e45 02.08.2022 20:10 Details Diff |
0000401: document some commands in the Brush menu |
Affected Issues 0000410 |
|
mod - doc/manual.adoc | Diff File | ||
DarkRadiant: master 0468d49c 03.08.2022 19:03 Details Diff |
0000401: Bind/Connect entities disabled without appropriate selection These commands require exactly two selected entities (and nothing else). |
Affected Issues 0000410 |
|
mod - libs/selectionlib.h | Diff File | ||
mod - radiantcore/selection/algorithm/Entity.cpp | Diff File | ||
mod - radiantcore/selection/algorithm/Entity.h | Diff File | ||
mod - radiantcore/selection/algorithm/General.cpp | Diff File | ||
DarkRadiant: master da2381b1 03.08.2022 19:14 Details Diff |
0000401: document a few options in the Entity menu |
Affected Issues 0000410 |
|
mod - doc/manual.adoc | Diff File | ||
DarkRadiant: master 885342ed 03.08.2022 19:23 Details Diff |
0000401: document Clipper commands in Brush menu |
Affected Issues 0000410 |
|
mod - doc/manual.adoc | Diff File | ||
DarkRadiant: master b30c3c2d 03.08.2022 19:48 Details Diff |
0000401: Stim/Response editor disabled without selection |
Affected Issues 0000410 |
|
mod - plugins/dm.stimresponse/StimResponseEditor.cpp | Diff File | ||
mod - plugins/dm.stimresponse/StimResponseEditor.h | Diff File | ||
mod - plugins/dm.stimresponse/plugin.cpp | Diff File | ||
DarkRadiant: master 52d8545b 09.08.2022 19:23 Details Diff |
0000401: some Patch menu items disabled without a selected patch |
Affected Issues 0000410 |
|
mod - libs/selectionlib.h | Diff File | ||
mod - radiant/ui/UserInterfaceModule.cpp | Diff File | ||
DarkRadiant: master 250f09ef 09.08.2022 19:43 Details Diff |
0000401: remove hard size from Patch Thicken dialog The inclusion of an explicit size for the main panel causes the dialog to be displayed (on GTK/Linux) with an initial size that is too small for all of the widgets to show. |
Affected Issues 0000410 |
|
mod - install/ui/patchthickendialog.xrc | Diff File | ||
DarkRadiant: master 22851ca7 09.08.2022 19:56 Details Diff |
0000401: remove hard size from Create Simple Patch dialog |
Affected Issues 0000410 |
|
mod - install/ui/patchcreatedialog.xrc | Diff File | ||
DarkRadiant: master ca5609ce 10.08.2022 19:02 Details Diff |
0000401: Stitch Patch Textures disabled without selection |
Affected Issues 0000410 |
|
mod - libs/selectionlib.h | Diff File | ||
mod - radiant/ui/UserInterfaceModule.cpp | Diff File | ||
mod - radiantcore/brush/BrushModule.cpp | Diff File | ||
mod - radiantcore/brush/csg/CSG.cpp | Diff File | ||
mod - radiantcore/clipper/Clipper.cpp | Diff File | ||
mod - radiantcore/patch/PatchModule.cpp | Diff File | ||
DarkRadiant: master 032f59e3 10.08.2022 19:10 Details Diff |
0000401: Weld Patches disabled without selection |
Affected Issues 0000410 |
|
mod - libs/selectionlib.h | Diff File | ||
mod - radiantcore/patch/PatchModule.cpp | Diff File | ||
DarkRadiant: master 73820959 10.08.2022 19:38 Details Diff |
0000401: Patch/Insert options disabled without selection |
Affected Issues 0000410 |
|
mod - install/menu.xml | Diff File | ||
mod - radiantcore/patch/PatchModule.cpp | Diff File | ||
mod - radiantcore/patch/algorithm/General.cpp | Diff File | ||
mod - radiantcore/patch/algorithm/General.h | Diff File | ||
mod - radiantcore/selection/algorithm/Patch.cpp | Diff File | ||
mod - radiantcore/selection/algorithm/Patch.h | Diff File | ||
DarkRadiant: master fba9d09a 21.08.2022 05:29 Details Diff |
0000410: Fix MRU items disappearing after first use |
Affected Issues 0000410 |
|
mod - radiant/eventmanager/EventManager.cpp | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
04.11.2007 21:59 | tels | New Issue | |
04.11.2007 22:28 | greebo | Status | new => confirmed |
08.06.2022 19:32 | orbweaver | Assigned To | => orbweaver |
08.06.2022 19:32 | orbweaver | Status | confirmed => assigned |
08.06.2022 19:36 | orbweaver | Note Added: 0014848 | |
08.06.2022 19:39 | orbweaver | Note Edited: 0014848 | |
15.08.2022 06:12 | orbweaver | Changeset attached | => DarkRadiant master f71deeb0 |
15.08.2022 06:12 | orbweaver | Changeset attached | => DarkRadiant master 5739fc5e |
15.08.2022 06:12 | orbweaver | Changeset attached | => DarkRadiant master 1f8842d0 |
15.08.2022 06:12 | orbweaver | Changeset attached | => DarkRadiant master 231ffcf4 |
15.08.2022 06:12 | orbweaver | Changeset attached | => DarkRadiant master ca727001 |
15.08.2022 06:12 | orbweaver | Changeset attached | => DarkRadiant master b21d09ac |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 73820959 |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 032f59e3 |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master ca5609ce |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 22851ca7 |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 250f09ef |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 52d8545b |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master b30c3c2d |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 885342ed |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master da2381b1 |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 0468d49c |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 22240e45 |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 01b22c1f |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master fc7807da |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 4c3a5d69 |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 4a1b9edb |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 1824db7e |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master b899bf7f |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master d2cc12a6 |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master dfaa3ec6 |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 403841f7 |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 57244bd3 |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master 5f4715f9 |
15.08.2022 12:52 | greebo | Changeset attached | => DarkRadiant master cfca3659 |
15.08.2022 12:53 | greebo | Changeset attached | => DarkRadiant master 2c2dfdb8 |
15.08.2022 12:53 | greebo | Changeset attached | => DarkRadiant master a2b332e7 |
15.08.2022 12:53 | greebo | Changeset attached | => DarkRadiant master e54c61d7 |
15.08.2022 12:53 | greebo | Changeset attached | => DarkRadiant master b7d87a44 |
21.08.2022 05:30 | greebo | Changeset attached | => DarkRadiant master fba9d09a |
07.09.2022 19:02 | orbweaver | Status | assigned => resolved |
07.09.2022 19:02 | orbweaver | Resolution | open => fixed |
07.09.2022 19:02 | orbweaver | Fixed in Version | => 3.3.0 |
07.09.2022 19:02 | orbweaver | Note Added: 0015235 | |
13.01.2024 05:32 | greebo | Status | resolved => closed |