Add an "all" skills button to any right click skills menu

This commit is contained in:
2026-01-09 20:50:34 +01:00
parent 3a5a9c6e09
commit 169b041677

View File

@@ -89,6 +89,24 @@ class ChangeAffectingSkills(ContextMenuSingle):
self.skillIds = {}
sub = wx.Menu()
# Add "All" entry
allItem = wx.MenuItem(sub, ContextMenuSingle.nextID(), _t("All"))
grandSubAll = wx.Menu()
allItem.SetSubMenu(grandSubAll)
# For "All", only show levels 1-5 (not "Not Learned")
for i in range(1, 6):
id = ContextMenuSingle.nextID()
self.skillIds[id] = (None, i) # None indicates "All" was selected
label = _t("Level %s") % i
menuItem = wx.MenuItem(rootMenu if msw else grandSubAll, id, label, kind=wx.ITEM_RADIO)
grandSubAll.Bind(wx.EVT_MENU, self.handleSkillChange, menuItem)
grandSubAll.Append(menuItem)
sub.Append(allItem)
# Add separator
sub.AppendSeparator()
for skill in self.skills:
skillItem = wx.MenuItem(sub, ContextMenuSingle.nextID(), skill.item.name)
grandSub = wx.Menu()
@@ -110,7 +128,12 @@ class ChangeAffectingSkills(ContextMenuSingle):
def handleSkillChange(self, event):
skill, level = self.skillIds[event.Id]
self.sChar.changeLevel(self.charID, skill.item.ID, level)
if skill is None: # "All" was selected
for s in self.skills:
self.sChar.changeLevel(self.charID, s.item.ID, level)
else:
self.sChar.changeLevel(self.charID, skill.item.ID, level)
fitID = self.mainFrame.getActiveFit()
self.sFit.changeChar(fitID, self.charID)