def __handleProjectedItem(self, callingWindow, mainItem, selection): fitID = self.mainFrame.getActiveFit() if isinstance(mainItem, EosFit): self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand( fitID=fitID, items=selection, amount=math.inf)) elif isinstance(mainItem, EosModule): if wx.GetMouseState().GetModifiers() in (wx.MOD_ALT, wx.MOD_CONTROL): fit = Fit.getInstance().getFit(fitID) positions = getSimilarModPositions(fit.projectedModules, mainItem) items = [fit.projectedModules[p] for p in positions] else: items = selection self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand( fitID=fitID, items=items, amount=math.inf)) elif isinstance(mainItem, EosDrone): self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand( fitID=fitID, items=selection, amount=math.inf)) elif isinstance(mainItem, EosFighter): if wx.GetMouseState().GetModifiers() in (wx.MOD_ALT, wx.MOD_CONTROL): fit = Fit.getInstance().getFit(fitID) items = getSimilarFighters(fit.projectedFighters, mainItem) else: items = selection self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand( fitID=fitID, items=items, amount=math.inf)) else: self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand( fitID=fitID, items=selection, amount=math.inf))
def onLeftDoubleClick(self, event): row, _ = self.HitTest(event.Position) if row != -1: col = self.getColumn(event.Position) if col != self.getColIndex(State): mainItem = self.get(row) if mainItem is None: return fitID = self.mainFrame.getActiveFit() modPressed = event.GetModifiers() == wx.MOD_ALT if isinstance(mainItem, EosFit): self.mainFrame.command.Submit( cmd.GuiRemoveProjectedItemsCommand( fitID=fitID, items=[mainItem], amount=math.inf if modPressed else 1)) elif isinstance(mainItem, EosModule): if modPressed: fit = Fit.getInstance().getFit(fitID) positions = getSimilarModPositions( fit.projectedModules, mainItem) items = [fit.projectedModules[p] for p in positions] else: items = [mainItem] self.mainFrame.command.Submit( cmd.GuiRemoveProjectedItemsCommand(fitID=fitID, items=items, amount=1)) elif isinstance(mainItem, EosDrone): self.mainFrame.command.Submit( cmd.GuiRemoveProjectedItemsCommand( fitID=fitID, items=[mainItem], amount=math.inf if modPressed else 1)) elif isinstance(mainItem, EosFighter): if modPressed: fit = Fit.getInstance().getFit(fitID) items = getSimilarFighters(fit.projectedFighters, mainItem) else: items = [mainItem] self.mainFrame.command.Submit( cmd.GuiRemoveProjectedItemsCommand(fitID=fitID, items=items, amount=1)) else: self.mainFrame.command.Submit( cmd.GuiRemoveProjectedItemsCommand( fitID=fitID, items=[mainItem], amount=math.inf if modPressed else 1))
def kbEvent(self, event): keycode = event.GetKeyCode() mstate = wx.GetMouseState() if keycode == wx.WXK_ESCAPE and mstate.GetModifiers() == wx.MOD_NONE: self.unselectAll() elif keycode == 65 and mstate.GetModifiers() == wx.MOD_CONTROL: self.selectAll() elif keycode in (wx.WXK_DELETE, wx.WXK_NUMPAD_DELETE) and mstate.GetModifiers() == wx.MOD_NONE: self.mainFrame.command.Submit(cmd.GuiRemoveProjectedItemsCommand( fitID=self.mainFrame.getActiveFit(), items=self.getSelectedProjectors(), amount=math.inf)) event.Skip()