diff --git a/gui/builtinPreferenceViews/pyfaGlobalPreferences.py b/gui/builtinPreferenceViews/pyfaGlobalPreferences.py index a12c8327f..160dc4434 100644 --- a/gui/builtinPreferenceViews/pyfaGlobalPreferences.py +++ b/gui/builtinPreferenceViews/pyfaGlobalPreferences.py @@ -3,7 +3,10 @@ import service from gui.preferenceView import PreferenceView from gui import bitmapLoader + +import gui.mainFrame import service +import gui.globalEvents as GE class PFGlobalPref ( PreferenceView): @@ -11,6 +14,7 @@ class PFGlobalPref ( PreferenceView): def populatePanel( self, panel ): + self.mainFrame = gui.mainFrame.MainFrame.getInstance() mainSizer = wx.BoxSizer( wx.VERTICAL ) self.stTitle = wx.StaticText( panel, wx.ID_ANY, self.title, wx.DefaultPosition, wx.DefaultSize, 0 ) @@ -28,6 +32,9 @@ class PFGlobalPref ( PreferenceView): self.cbGlobalDmgPattern = wx.CheckBox( panel, wx.ID_ANY, u"Use global damage pattern", wx.DefaultPosition, wx.DefaultSize, 0 ) mainSizer.Add( self.cbGlobalDmgPattern, 0, wx.ALL|wx.EXPAND, 5 ) + self.cbGlobalForceReload = wx.CheckBox( panel, wx.ID_ANY, u"Use force reload", wx.DefaultPosition, wx.DefaultSize, 0 ) + mainSizer.Add( self.cbGlobalForceReload, 0, wx.ALL|wx.EXPAND, 5 ) + defCharSizer = wx.BoxSizer( wx.HORIZONTAL ) self.stDefChar = wx.StaticText( panel, wx.ID_ANY, u"Default character:", wx.DefaultPosition, wx.DefaultSize, 0 ) @@ -52,18 +59,27 @@ class PFGlobalPref ( PreferenceView): self.sFit = service.Fit.getInstance() useGlobalChar = self.sFit.serviceFittingOptions["useGlobalCharacter"] useGlobalDmgPattern = self.sFit.serviceFittingOptions["useGlobalDamagePattern"] + useGlobalForceReload = self.sFit.serviceFittingOptions["useGlobalForceReload"] self.cbGlobalChar.SetValue(useGlobalChar) self.cbGlobalDmgPattern.SetValue(useGlobalDmgPattern) + self.cbGlobalForceReload.SetValue(useGlobalForceReload) self.cbGlobalChar.Bind(wx.EVT_CHECKBOX, self.OnCBGlobalCharStateChange) self.cbGlobalDmgPattern.Bind(wx.EVT_CHECKBOX, self.OnCBGlobalDmgPatternStateChange) + self.cbGlobalForceReload.Bind(wx.EVT_CHECKBOX, self.OnCBGlobalForceReloadStateChange) self.chDefaultChar.Disable() panel.SetSizer( mainSizer ) panel.Layout() + def OnCBGlobalForceReloadStateChange(self, event): + self.sFit.serviceFittingOptions["useGlobalForceReload"] = self.cbGlobalForceReload.GetValue() + fitID = self.mainFrame.getActiveFit() + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + event.Skip() + def OnCBGlobalCharStateChange(self, event): self.sFit.serviceFittingOptions["useGlobalCharacter"] = self.cbGlobalChar.GetValue() event.Skip() diff --git a/service/fit.py b/service/fit.py index 5cc044d34..b52b1e969 100644 --- a/service/fit.py +++ b/service/fit.py @@ -81,7 +81,7 @@ class Fit(object): self.character = Character.getInstance().all0() self.dirtyFitIDs = set() - serviceFittingDefaultOptions = {"useGlobalCharacter": False, "useGlobalDamagePattern": False, "defaultCharacter": self.character.ID} + serviceFittingDefaultOptions = {"useGlobalCharacter": False, "useGlobalDamagePattern": False, "defaultCharacter": self.character.ID, "useGlobalForceReload": False} self.serviceFittingOptions = SettingsProvider.getInstance().getSettings("pyfaServiceFittingOptions", serviceFittingDefaultOptions) @@ -663,4 +663,5 @@ class Fit(object): def recalc(self, fit, withBoosters=False): fit.clear() + fit.forceReload = self.serviceFittingOptions["useGlobalForceReload"] fit.calculateModifiedAttributes(withBoosters=withBoosters, dirtyStorage=self.dirtyFitIDs)