DarkRadiant: master 602afdae

Author Committer Branch Timestamp Parent
orbweaver orbweaver master 22.04.2020 20:02 master b2f42b90
Changeset Use EntityClassChooser for choosing entity class in Difficulty editor

The previous dropdown for choosing an entity class did not make it easy to
select the correct entity class out of the hundreds of values (at least on
GTK). Now there are two widgets: a text entry which allows a class to be typed
in (but still offers autocompletion), and an adjacent button which shows the
regular EntityClassChooser for choosing an entity class interactively.

In order to allow the Difficulty editor to use the EntityClassChooser, the
latter class has been moved from the radiant module into libs/wxutil. It still
retains its previous behaviour of maintaining a static singleton instance to
avoid repeatedly populating the large list of entity classes; hopefully this
use of a static won't cause any problems now that the class is in wxutil.

As well as improving usability, this change also removes the noticeable delay
(around 1 second on my machine) when showing the DifficultyEditor, caused by
the costly population of three different wxChoice widgets with a complete list
of entity classes.
mod - install/ui/difficultyeditor.fbp Diff File
mod - install/ui/difficultyeditor.xrc Diff File
mod - libs/wxutil/Makefile.am Diff File
mod - plugins/dm.difficulty/DifficultyEditor.cpp Diff File
mod - plugins/dm.difficulty/DifficultyEditor.h Diff File
mod - radiant/Makefile.am Diff File
mod - radiant/ui/einspector/ClassnamePropertyEditor.cpp Diff File
rm - radiant/ui/entitychooser/EntityClassChooser.cpp Diff
rm - radiant/ui/entitychooser/EntityClassChooser.h Diff
rm - radiant/ui/entitychooser/EntityClassTreePopulator.cpp Diff
rm - radiant/ui/entitychooser/EntityClassTreePopulator.h Diff
mod - radiant/ui/ortho/OrthoContextMenu.cpp Diff File