Rework how toggling factor reload works

This commit is contained in:
DarkPhoenix
2019-07-05 09:10:23 +03:00
parent 63ca8dc559
commit e6dce726b7
16 changed files with 91 additions and 48 deletions

View File

@@ -99,6 +99,11 @@ class BoosterView(d.Display):
event.Skip()
def fitChanged(self, event):
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
@@ -108,7 +113,6 @@ class BoosterView(d.Display):
if event.fitID is None and self.lastFitId is not None:
self.DeleteAllItems()
self.lastFitId = None
event.Skip()
return
self.original = fit.boosters if fit is not None else None
@@ -127,7 +131,6 @@ class BoosterView(d.Display):
self.unselectAll()
self.update(self.boosters)
event.Skip()
def addItem(self, event):
item = Market.getInstance().getItem(event.itemID, eager='group')

View File

@@ -135,6 +135,11 @@ class CargoView(d.Display):
copy=wx.GetMouseState().GetModifiers() == wx.MOD_CONTROL))
def fitChanged(self, event):
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
@@ -144,7 +149,6 @@ class CargoView(d.Display):
if event.fitID is None and self.lastFitId is not None:
self.DeleteAllItems()
self.lastFitId = None
event.Skip()
return
self.original = fit.cargo if fit is not None else None
@@ -164,7 +168,6 @@ class CargoView(d.Display):
self.populate(self.cargo)
self.refresh(self.cargo)
event.Skip()
def onLeftDoubleClick(self, event):
row, _ = self.HitTest(event.Position)

View File

@@ -124,6 +124,11 @@ class CommandView(d.Display):
return fit.name
def fitChanged(self, event):
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
@@ -135,7 +140,6 @@ class CommandView(d.Display):
if event.fitID is None and self.lastFitId is not None:
self.DeleteAllItems()
self.lastFitId = None
event.Skip()
return
if event.fitID != self.lastFitId:
@@ -150,8 +154,6 @@ class CommandView(d.Display):
self.refreshContents(fit)
event.Skip()
def refreshContents(self, fit):
stuff = []
if fit is not None:

View File

@@ -199,6 +199,11 @@ class DroneView(Display):
drone.item.name)
def fitChanged(self, event):
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
@@ -208,7 +213,6 @@ class DroneView(Display):
if event.fitID is None and self.lastFitId is not None:
self.DeleteAllItems()
self.lastFitId = None
event.Skip()
return
self.original = fit.drones if fit is not None else None
@@ -228,7 +232,6 @@ class DroneView(Display):
self.unselectAll()
self.update(self.drones)
event.Skip()
def addItem(self, event):
item = Market.getInstance().getItem(event.itemID, eager='group.category')

View File

@@ -88,8 +88,12 @@ class FighterView(wx.Panel):
self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged)
def fitChanged(self, event):
sFit = Fit.getInstance()
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
sFit = Fit.getInstance()
fit = sFit.getFit(activeFitID)
if fit:
@@ -113,8 +117,6 @@ class FighterView(wx.Panel):
self.Refresh()
event.Skip()
class FighterDisplay(d.Display):
@@ -242,6 +244,11 @@ class FighterDisplay(d.Display):
return orderPos, abilityEffectIDs, fighter.item.name
def fitChanged(self, event):
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
@@ -251,7 +258,6 @@ class FighterDisplay(d.Display):
if event.fitID is None and self.lastFitId is not None:
self.DeleteAllItems()
self.lastFitId = None
event.Skip()
return
self.original = fit.fighters if fit is not None else None
@@ -271,7 +277,6 @@ class FighterDisplay(d.Display):
self.unselectAll()
self.update(self.fighters)
event.Skip()
def addItem(self, event):
item = Market.getInstance().getItem(event.itemID, eager='group.category')

View File

@@ -78,8 +78,12 @@ class ImplantView(wx.Panel):
self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged)
def fitChanged(self, event):
sFit = Fit.getInstance()
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
sFit = Fit.getInstance()
fit = sFit.getFit(activeFitID)
if fit:
self.source = fit.implantSource
@@ -91,8 +95,6 @@ class ImplantView(wx.Panel):
self.rbFit.Enable(fit is not None)
self.rbChar.Enable(fit is not None)
event.Skip()
def OnRadioSelect(self, event):
fitID = self.mainFrame.getActiveFit()
if fitID is not None:
@@ -152,6 +154,11 @@ class ImplantDisplay(d.Display):
event.Skip()
def fitChanged(self, event):
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
@@ -161,7 +168,6 @@ class ImplantDisplay(d.Display):
if event.fitID is None and self.lastFitId is not None:
self.DeleteAllItems()
self.lastFitId = None
event.Skip()
return
self.original = fit.appliedImplants if fit is not None else None
@@ -180,7 +186,6 @@ class ImplantDisplay(d.Display):
self.unselectAll()
self.update(self.implants)
event.Skip()
def addItem(self, event):
item = Market.getInstance().getItem(event.itemID, eager='group.category')

View File

@@ -30,6 +30,11 @@ class NotesView(wx.Panel):
event.Skip()
def fitChanged(self, event):
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
@@ -43,14 +48,11 @@ class NotesView(wx.Panel):
if event.fitID is None and self.lastFitId is not None:
self.lastFitId = None
event.Skip()
return
elif event.fitID != self.lastFitId:
self.lastFitId = event.fitID
self.editNotes.SetValue(fit.notes or "")
event.Skip()
def onText(self, event):
# delay the save so we're not writing to sqlite on every keystroke
self.saveTimer.Stop() # cancel the existing timer

View File

@@ -168,6 +168,11 @@ class ProjectedView(d.Display):
return fit.name
def fitChanged(self, event):
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
# pyfalog.debug('ProjectedView::fitChanged: {}', repr(fit))
@@ -178,7 +183,6 @@ class ProjectedView(d.Display):
if event.fitID is None and self.lastFitId is not None:
self.DeleteAllItems()
self.lastFitId = None
event.Skip()
return
@@ -195,8 +199,6 @@ class ProjectedView(d.Display):
self.refreshContents(fit)
event.Skip()
def refreshContents(self, fit):
stuff = []
if fit is not None:

View File

@@ -604,8 +604,11 @@ class FittingView(d.Display):
self.populate(self.mods)
def fitChanged(self, event):
event.Skip()
if not self:
event.Skip()
return
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
try:
if self.activeFitID is not None and self.activeFitID == event.fitID:
@@ -619,8 +622,6 @@ class FittingView(d.Display):
self.Show(self.activeFitID is not None and self.activeFitID == event.fitID)
except RuntimeError:
pyfalog.error("Caught dead object")
finally:
event.Skip()
def spawnMenu(self, event):
if self.activeFitID is None or self.getColumn(self.screenToClientFixed(event.Position)) == self.getColIndex(State):

View File

@@ -214,6 +214,10 @@ class CharacterSelection(wx.Panel):
"""
When fit is changed, or new fit is selected
"""
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
self.charChoice.Enable(event.fitID is not None)
choice = self.charChoice
sFit = Fit.getInstance()
@@ -257,8 +261,6 @@ class CharacterSelection(wx.Panel):
self.toggleRefreshButton()
event.Skip()
def exportSkills(self, evt):
skillsMap = self._buildSkillsTooltipCondensed(self.reqs, skillsMap={})

View File

@@ -176,6 +176,10 @@ class MainMenuBar(wx.MenuBar):
self.mainFrame.Bind(EVT_FIT_RENAMED, self.fitRenamed)
def fitChanged(self, event):
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
enable = event.fitID is not None
self.Enable(wx.ID_SAVEAS, enable)
self.Enable(wx.ID_COPY, enable)
@@ -203,8 +207,6 @@ class MainMenuBar(wx.MenuBar):
else:
self.ignoreRestrictionItem.SetItemLabel("Disable Fitting Re&strictions")
event.Skip()
def fitRenamed(self, event):
self.refreshUndo()
event.Skip()

View File

@@ -97,11 +97,14 @@ class ShipBrowser(wx.Panel):
self.navpanel.gotoStage(stage, stageData)
def RefreshList(self, event):
stage = self.GetActiveStage()
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
stage = self.GetActiveStage()
if stage in (3, 4, 5):
self.lpane.RefreshList(True)
event.Skip()
def SizeRefreshList(self, event):
self.Layout()

View File

@@ -69,11 +69,14 @@ class StatsPane(wx.Panel):
pyfalog.error("Unknown setting for view: {0}", aView)
def fitChanged(self, event):
event.Skip()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID is not None and event.fitID is not None and event.fitID != activeFitID:
return
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
for view in self.views:
view.refreshPanel(fit)
event.Skip()
def __init__(self, parent):
wx.Panel.__init__(self, parent)