add a requested interface adjustment for menu invert operations

Originally requested by one of the hardfought admins

Adjust all active window ports (tty, curses, win32, Qt, X11) to store
the itemflags that they receive with each item.

Also, make those active window ports understand the new
MENU_ITEMFLAGS_SKIPINVERT flag by skipping any menu items with that
setting during invert_all and invert_page operations.

Build testing and rudimentary functionality testing was carried out
on each of the window ports listed above.

The code was also modified on some non-active window ports (Qt3, gem,
gnome) but it was not tested for build or function there.

The desired functionality expressed was to be able to select a
single object category, and use the @ "invert all" function to
exclude that one and select all the others.

The "invert all" function's behavior of also including things
like "select all" and BUCX menu items made the feature unuseful
for that purpose.
This commit is contained in:
nhmall
2019-12-23 10:44:07 -05:00
parent fc0596d529
commit 11e003cb47

View File

@@ -15,6 +15,8 @@ fix accessing mons[-1] when trying to gate in a non-valid demon
fast hero could have random clairvoyance happen more than once on same turn
using 'Q' on wielded weapon would offer to split stack; make using 'w' on a
quivered stack behave similarly
leave some menu items out of "invert all" via '@' when their inclusion would
degrade the usefulness of that interface feature
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
@@ -68,4 +70,5 @@ remove STATIC_DCL, STATIC_OVL, STATIC_VAR, STATIC_PTR
old Qt moved from win/Qt to win/Qt3 and files renamed to use qt3_ prefix
more current Qt for Qt version 4 and 5 moved from win/Qt4 to win/Qt; qt4
moniker changed to qt_
window-port-interface: add_menu() modified to take a more general itemflags
parameter to support uses beyond just 'preselected'