When fit is removed, update projected/command contents if needed
This commit is contained in:
@@ -70,7 +70,7 @@ class CommandView(d.Display):
|
||||
self.lastFitId = None
|
||||
|
||||
self.mainFrame.Bind(GE.FIT_CHANGED, AddCommandFit.fitChanged)
|
||||
self.mainFrame.Bind(GE.FIT_REMOVED, AddCommandFit.populateFits)
|
||||
self.mainFrame.Bind(GE.FIT_REMOVED, self.OnFitRemoved)
|
||||
self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged)
|
||||
self.Bind(wx.EVT_LEFT_DOWN, self.click)
|
||||
self.Bind(wx.EVT_LEFT_DCLICK, self.onLeftDoubleClick)
|
||||
@@ -82,6 +82,13 @@ class CommandView(d.Display):
|
||||
|
||||
self.SetDropTarget(CommandViewDrop(self.handleListDrag))
|
||||
|
||||
def OnFitRemoved(self, event):
|
||||
event.Skip()
|
||||
AddCommandFit.populateFits(event)
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
fit = Fit.getInstance().getFit(fitID)
|
||||
self.refreshContents(fit)
|
||||
|
||||
@staticmethod
|
||||
def handleListDrag(x, y, data):
|
||||
"""
|
||||
@@ -131,12 +138,6 @@ class CommandView(d.Display):
|
||||
event.Skip()
|
||||
return
|
||||
|
||||
stuff = []
|
||||
if fit is not None:
|
||||
self.fits = fit.commandFits[:]
|
||||
self.fits.sort(key=self.fitSort)
|
||||
stuff.extend(self.fits)
|
||||
|
||||
if event.fitID != self.lastFitId:
|
||||
self.lastFitId = event.fitID
|
||||
|
||||
@@ -147,13 +148,20 @@ class CommandView(d.Display):
|
||||
|
||||
self.unselectAll()
|
||||
|
||||
if not stuff:
|
||||
stuff = [DummyEntry("Drag a fit to this area")]
|
||||
|
||||
self.update(stuff)
|
||||
self.refreshContents(fit)
|
||||
|
||||
event.Skip()
|
||||
|
||||
def refreshContents(self, fit):
|
||||
stuff = []
|
||||
if fit is not None:
|
||||
self.fits = fit.commandFits[:]
|
||||
self.fits.sort(key=self.fitSort)
|
||||
stuff.extend(self.fits)
|
||||
if not stuff:
|
||||
stuff = [DummyEntry("Drag a fit to this area")]
|
||||
self.update(stuff)
|
||||
|
||||
def click(self, event):
|
||||
mainRow, _ = self.HitTest(event.Position)
|
||||
if mainRow != -1:
|
||||
|
||||
@@ -82,6 +82,7 @@ class ProjectedView(d.Display):
|
||||
self.lastFitId = None
|
||||
|
||||
self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged)
|
||||
self.mainFrame.Bind(GE.FIT_REMOVED, self.OnFitRemoved)
|
||||
self.Bind(wx.EVT_LEFT_DOWN, self.click)
|
||||
self.Bind(wx.EVT_RIGHT_DOWN, self.click)
|
||||
self.Bind(wx.EVT_LEFT_DCLICK, self.onLeftDoubleClick)
|
||||
@@ -93,6 +94,12 @@ class ProjectedView(d.Display):
|
||||
|
||||
self.SetDropTarget(ProjectedViewDrop(self.handleListDrag))
|
||||
|
||||
def OnFitRemoved(self, event):
|
||||
event.Skip()
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
fit = Fit.getInstance().getFit(fitID)
|
||||
self.refreshContents(fit)
|
||||
|
||||
def handleListDrag(self, x, y, data):
|
||||
"""
|
||||
Handles dragging of items from various pyfa displays which support it
|
||||
@@ -174,6 +181,23 @@ class ProjectedView(d.Display):
|
||||
event.Skip()
|
||||
return
|
||||
|
||||
|
||||
|
||||
if event.fitID != self.lastFitId:
|
||||
self.lastFitId = event.fitID
|
||||
|
||||
item = self.GetNextItem(-1, wx.LIST_NEXT_ALL, wx.LIST_STATE_DONTCARE)
|
||||
|
||||
if item != -1:
|
||||
self.EnsureVisible(item)
|
||||
|
||||
self.unselectAll()
|
||||
|
||||
self.refreshContents(fit)
|
||||
|
||||
event.Skip()
|
||||
|
||||
def refreshContents(self, fit):
|
||||
stuff = []
|
||||
if fit is not None:
|
||||
self.originalFits = fit.projectedFits
|
||||
@@ -194,24 +218,10 @@ class ProjectedView(d.Display):
|
||||
stuff.extend(self.modules)
|
||||
stuff.extend(self.drones)
|
||||
stuff.extend(self.fighters)
|
||||
|
||||
if event.fitID != self.lastFitId:
|
||||
self.lastFitId = event.fitID
|
||||
|
||||
item = self.GetNextItem(-1, wx.LIST_NEXT_ALL, wx.LIST_STATE_DONTCARE)
|
||||
|
||||
if item != -1:
|
||||
self.EnsureVisible(item)
|
||||
|
||||
self.unselectAll()
|
||||
|
||||
if not stuff:
|
||||
stuff = [DummyEntry('Drag an item or fit, or use right-click menu for wormhole effects')]
|
||||
|
||||
self.update(stuff)
|
||||
|
||||
event.Skip()
|
||||
|
||||
def get(self, row):
|
||||
if row == -1:
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user