From 14e69b1e5911ad08bb4d546b436331c0d7ab16e2 Mon Sep 17 00:00:00 2001 From: blitzman Date: Sun, 20 Nov 2016 19:17:53 -0500 Subject: [PATCH] Add "Command Fit" context menu --- gui/additionsPane.py | 2 +- gui/shipBrowser.py | 27 ++++++++++++++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/gui/additionsPane.py b/gui/additionsPane.py index 19cbf38a9..794e97cac 100644 --- a/gui/additionsPane.py +++ b/gui/additionsPane.py @@ -82,7 +82,7 @@ class AdditionsPane(TogglePanel): self.notebook.SetSelection(0) - PANES = ["Drones", "Fighters", "Cargo", "Implants", "Boosters", "Projected", "Fleet"] + PANES = ["Drones", "Fighters", "Cargo", "Implants", "Boosters", "Projected", "Command"] def select(self, name): self.notebook.SetSelection(self.PANES.index(name)) diff --git a/gui/shipBrowser.py b/gui/shipBrowser.py index 2b19fd797..60afb6d91 100644 --- a/gui/shipBrowser.py +++ b/gui/shipBrowser.py @@ -1552,6 +1552,15 @@ class FitItem(SFItem.SFBrowserItem): wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFit)) self.mainFrame.additionsPane.select("Projected") + def OnAddCommandFit(self, event): + activeFit = self.mainFrame.getActiveFit() + if activeFit: + sFit = service.Fit.getInstance() + commandFit = sFit.getFit(self.fitID) + sFit.addCommandFit(activeFit, commandFit) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFit)) + self.mainFrame.additionsPane.select("Command") + def OnMouseCaptureLost(self, event): ''' Destroy drag information (GH issue #479)''' if self.dragging and self.dragged: @@ -1564,6 +1573,11 @@ class FitItem(SFItem.SFBrowserItem): def OnContextMenu(self, event): ''' Handles context menu for fit. Dragging is handled by MouseLeftUp() ''' + sFit = service.Fit.getInstance() + fit = sFit.getFit(self.mainFrame.getActiveFit()) + + if not fit: + return pos = wx.GetMousePosition() pos = self.ScreenToClient(pos) @@ -1572,13 +1586,9 @@ class FitItem(SFItem.SFBrowserItem): self.mainFrame.additionsPane.gangPage.draggedFitID = self.fitID menu = wx.Menu() - toggleItem = menu.Append(wx.ID_ANY, "Booster Fit", kind=wx.ITEM_CHECK) - menu.Check(toggleItem.GetId(), self.fitBooster) - self.Bind(wx.EVT_MENU, self.OnToggleBooster, toggleItem) - - sFit = service.Fit.getInstance() - fit = sFit.getFit(self.mainFrame.getActiveFit()) - + # toggleItem = menu.Append(wx.ID_ANY, "Booster Fit", kind=wx.ITEM_CHECK) + # menu.Check(toggleItem.GetId(), self.fitBooster) + # self.Bind(wx.EVT_MENU, self.OnToggleBooster, toggleItem) # if fit and not fit.isStructure: # # If there is an active fit, get menu for setting individual boosters @@ -1590,6 +1600,9 @@ class FitItem(SFItem.SFBrowserItem): projectedItem = menu.Append(wx.ID_ANY, "Project onto Active Fit") self.Bind(wx.EVT_MENU, self.OnProjectToFit, projectedItem) + commandItem = menu.Append(wx.ID_ANY, "Add Command Booster") + self.Bind(wx.EVT_MENU, self.OnAddCommandFit, commandItem ) + self.PopupMenu(menu, pos) event.Skip()