Got rid of UpdateFleetFitsUI and baked it's functionality into fitSelected; now supports dragging/setting via right click.

This commit is contained in:
blitzmann
2014-02-23 22:18:58 -05:00
parent 354b732c2c
commit c34215f9e3

View File

@@ -54,7 +54,7 @@ class GangView ( ScrolledPanel ):
self.oneonePlaceholder = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
self.oneonePlaceholder.Wrap( -1 )
contentFGSizer.Add( self.oneonePlaceholder, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 )
fleetFitsSizer = wx.BoxSizer( wx.VERTICAL )
wingFitsSizer = wx.BoxSizer( wx.VERTICAL )
squadFitsSizer = wx.BoxSizer( wx.VERTICAL )
@@ -87,7 +87,7 @@ class GangView ( ScrolledPanel ):
self.stFleetFit = wx.StaticText( self, wx.ID_ANY, u"None", wx.DefaultPosition, wx.DefaultSize, 0 )
self.stFleetFit.Wrap( -1 )
self.stFleetFit.Hide()
cFleetFitChoices = []
self.cFleetFit = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, cFleetFitChoices, 0 )
@@ -109,10 +109,10 @@ class GangView ( ScrolledPanel ):
self.stWingFit = wx.StaticText( self, wx.ID_ANY, u"None", wx.DefaultPosition, wx.DefaultSize, 0 )
self.stWingFit.Wrap( -1 )
self.stWingFit.Hide()
cWingFitChoices = []
self.cWingFit = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, cWingFitChoices, 0 )
wingFitsSizer.Add( self.stWingFit, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
wingFitsSizer.Add( self.cWingFit, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
contentFGSizer.Add( wingFitsSizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
@@ -131,7 +131,7 @@ class GangView ( ScrolledPanel ):
self.stSquadFit = wx.StaticText( self, wx.ID_ANY, u"None", wx.DefaultPosition, wx.DefaultSize, 0 )
self.stSquadFit.Wrap( -1 )
self.stSquadFit.Hide()
cSquadFitChoices = []
self.cSquadFit = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, cSquadFitChoices, 0 )
@@ -139,7 +139,7 @@ class GangView ( ScrolledPanel ):
squadFitsSizer.Add( self.cSquadFit, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
contentFGSizer.Add( squadFitsSizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 )
chSquadCharChoices = []
self.chSquadChar = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, chSquadCharChoices, 0 )
self.chSquadChar.SetSelection( 0 )
@@ -163,7 +163,7 @@ class GangView ( ScrolledPanel ):
self.chFits.append(self.cFleetFit)
self.chFits.append(self.cWingFit)
self.chFits.append(self.cSquadFit)
self.SetSizer( mainSizer )
self.SetAutoLayout(True)
self.SetupScrolling()
@@ -184,39 +184,11 @@ class GangView ( ScrolledPanel ):
chCharacter.Bind(wx.EVT_CHOICE, self.CharChanged)
for chFits in self.chFits:
chFits.Bind(wx.EVT_CHOICE, self.BoosterChanged)
chFits.Bind(wx.EVT_CHOICE, self.OnFitChoiceSelected)
self.RefreshBoosterFits()
self.RefreshCharacterList()
def BoosterChanged(self, event):
''' Fired when booster choice is selected '''
chFit = event.GetEventObject()
type = -1
if chFit == self.cFleetFit:
type = 0
if chFit == self.cWingFit:
type = 1
if chFit == self.cSquadFit:
type = 2
if type == -1:
event.Skip()
return
id = chFit.GetClientData(chFit.GetSelection())
sFit = service.Fit.getInstance()
fit = sFit.getFit(id)
chFit.Hide()
text = self.stBoosters[type]
text.Show()
self.AddCommander(fit.ID, type)
self.mainFrame.additionsPane.select("Fleet")
def OnEnterWindow(self, event):
obj = event.GetEventObject()
obj.SetCursor(wx.StockCursor(wx.CURSOR_HAND))
@@ -227,16 +199,14 @@ class GangView ( ScrolledPanel ):
obj.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
event.Skip()
def CharChanged(self, event):
''' Change booster character '''
chBooster = event.GetEventObject()
type = -1
if chBooster == self.chFleetChar:
type = 0
if chBooster == self.chWingChar:
type = 1
if chBooster == self.chSquadChar:
type = 2
if chBooster == self.chFleetChar: type = 0
if chBooster == self.chWingChar: type = 1
if chBooster == self.chSquadChar: type = 2
if type == -1:
event.Skip()
@@ -293,12 +263,9 @@ class GangView ( ScrolledPanel ):
location = event.GetEventObject()
if location == self.stFleetFit:
type = 0
if location == self.stWingFit:
type = 1
if location == self.stSquadFit:
type = 2
if location == self.stFleetFit: type = 0
if location == self.stWingFit: type = 1
if location == self.stSquadFit: type = 2
sFit = service.Fit.getInstance()
boostee = sFit.getFit(activeFitID)
@@ -306,17 +273,14 @@ class GangView ( ScrolledPanel ):
fleetSrv = service.Fleet.getInstance()
if type == 0:
fleetSrv.setLinearFleetCom(boostee, booster)
elif type == 1:
fleetSrv.setLinearWingCom(boostee, booster)
elif type == 2:
fleetSrv.setLinearSquadCom(boostee, booster)
if type == 0: fleetSrv.setLinearFleetCom(boostee, booster)
if type == 1: fleetSrv.setLinearWingCom(boostee, booster)
if type == 2: fleetSrv.setLinearSquadCom(boostee, booster)
location.Hide()
choice = self.chFits[type]
choice.Show()
sFit.recalc(boostee, withBoosters=True)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFitID))
@@ -344,55 +308,53 @@ class GangView ( ScrolledPanel ):
fleetCom, wingCom, squadCom = commanders
if fleetCom:
fleetComName = fleetCom.ship.item.name + ": " + fleetCom.name
fleetComCharName = fleetCom.character.name if fleetCom.character is not None else "All 0"
self.stFleetFit.SetLabel(fleetCom.ship.item.name + ": " + fleetCom.name)
self.chFleetChar.SetStringSelection(fleetCom.character.name if fleetCom.character is not None else "All 0")
self.cFleetFit.Hide()
self.stFleetFit.Show()
else:
fleetComName = "None"
fleetComCharName = "All 0"
self.stFleetFit.SetLabel("None")
self.chFleetChar.SetStringSelection("All 0")
self.stFleetFit.Hide()
self.cFleetFit.Show()
if wingCom:
wingComName = wingCom.ship.item.name + ": " + wingCom.name
wingComCharName = wingCom.character.name if wingCom.character is not None else "All 0"
self.stWingFit.SetLabel(wingCom.ship.item.name + ": " + wingCom.name)
self.chWingChar.SetStringSelection(wingCom.character.name if wingCom.character is not None else "All 0")
self.cWingFit.Hide()
self.stWingFit.Show()
else:
wingComName = "None"
wingComCharName = "All 0"
self.stWingFit.SetLabel("None")
self.chWingChar.SetStringSelection("All 0")
self.stWingFit.Hide()
self.cWingFit.Show()
if squadCom:
squadComName = squadCom.ship.item.name + ": " + squadCom.name
squadComCharName = squadCom.character.name if squadCom.character is not None else "All 0"
self.stSquadFit.SetLabel(squadCom.ship.item.name + ": " + squadCom.name)
self.chSquadChar.SetStringSelection(squadCom.character.name if squadCom.character is not None else "All 0")
self.cSquadFit.Hide()
self.stSquadFit.Show()
else:
squadComName = "None"
squadComCharName = "All 0"
self.stSquadFit.SetLabel("None")
self.chSquadChar.SetStringSelection("All 0")
self.stSquadFit.Hide()
self.cSquadFit.Show()
self.UpdateFleetFitsUI( fleetComName, wingComName, squadComName, fleetComCharName, wingComCharName, squadComCharName )
self.Enable()
else:
fleetComName = "None"
fleetComCharName = "All 0"
wingComName = "None"
wingComCharName = "All 0"
squadComName = "None"
squadComCharName = "All 0"
self.stFleetFit.SetLabel("None")
self.chFleetChar.SetStringSelection("All 0")
self.stWingFit.SetLabel("None")
self.chWingChar.SetStringSelection("All 0")
self.stSquadFit.SetLabel("None")
self.chSquadChar.SetStringSelection("All 0")
self.UpdateFleetFitsUI( fleetComName, wingComName, squadComName, fleetComCharName, wingComCharName, squadComCharName )
self.Disable()
def UpdateFleetFitsUI(self, fleet, wing, squad, fleetChar, wingChar, squadChar):
self.stFleetFit.SetLabel(fleet)
self.stWingFit.SetLabel(wing)
self.stSquadFit.SetLabel(squad)
self.chFleetChar.SetStringSelection(fleetChar)
self.chWingChar.SetStringSelection(wingChar)
self.chSquadChar.SetStringSelection(squadChar)
self.Layout()
self.SendSizeEvent()
def AddCommander(self, fitID, type = None):
if type is None:
return
@@ -406,20 +368,18 @@ class GangView ( ScrolledPanel ):
fleetSrv = service.Fleet.getInstance()
if type == 0:
fleetSrv.setLinearFleetCom(boostee, booster)
elif type == 1:
fleetSrv.setLinearWingCom(boostee, booster)
elif type == 2:
fleetSrv.setLinearSquadCom(boostee, booster)
if type == 0: fleetSrv.setLinearFleetCom(boostee, booster)
if type == 1: fleetSrv.setLinearWingCom(boostee, booster)
if type == 2: fleetSrv.setLinearSquadCom(boostee, booster)
sFit.recalc(boostee, withBoosters=True)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFitID))
def RefreshBoosterFits(self, event = None):
sFit = service.Fit.getInstance()
sFit = service.Fit.getInstance()
sMarket = service.Market.getInstance()
fitList = sFit.getBoosterFits()
for choice in self.chFits:
chCurrSelection = choice.GetSelection()
chCurrData = -1
@@ -483,21 +443,39 @@ class GangView ( ScrolledPanel ):
self.PopupMenu(self.FitDNDPopupMenu, pos)
# sFit.project(activeFit,draggedFit)
# wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFit))
def OnPopupItemSelected(self, event):
''' Fired when booster popup item is selected '''
item = self.FitDNDPopupMenu.FindItemById(event.GetId())
text = item.GetText()
booster = self.options.index(text)
''' Fired when booster popup item is selected '''
# Get menu selection ID via self.options
menuItem = self.FitDNDPopupMenu.FindItemById(event.GetId())
type = self.options.index(menuItem.GetText())
if self.draggedFitID:
sFit = service.Fit.getInstance()
draggedFit = sFit.getFit(self.draggedFitID)
# self.stBoosters[booster].SetLabel(draggedFit.name)
# self.Layout()
self.AddCommander(draggedFit.ID, booster)
self.AddCommander(draggedFit.ID, type)
self.mainFrame.additionsPane.select("Fleet")
def OnFitChoiceSelected(self, event):
''' Fired when booster choice is selected '''
sFit = service.Fit.getInstance()
# set type via choice box used
chFit = event.GetEventObject()
type = -1
if chFit == self.cFleetFit: type = 0
if chFit == self.cWingFit: type = 1
if chFit == self.cSquadFit: type = 2
if type == -1:
event.Skip()
return
id = chFit.GetClientData(chFit.GetSelection())
fit = sFit.getFit(id)
self.AddCommander(fit.ID, type)
self.mainFrame.additionsPane.select("Fleet")