From ac93c5487c66e9059b7a7a3158ce38344e9093eb Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Fri, 5 Jul 2019 00:36:44 +0300 Subject: [PATCH] Change the way force reload setting is changed --- gui/builtinContextMenus/factorReload.py | 10 ++++++---- .../pyfaEnginePreferences.py | 9 ++++++--- service/fit.py | 14 +++++--------- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/gui/builtinContextMenus/factorReload.py b/gui/builtinContextMenus/factorReload.py index c541ceac9..9d6e6d852 100644 --- a/gui/builtinContextMenus/factorReload.py +++ b/gui/builtinContextMenus/factorReload.py @@ -25,11 +25,13 @@ class FactorReload(ContextMenuUnconditional): return "Factor in Reload Time" def activate(self, fullContext, i): - sFit = Fit.getInstance() - sFit.serviceFittingOptions["useGlobalForceReload"] = not sFit.serviceFittingOptions["useGlobalForceReload"] + refreshFitIDs = set() fitID = self.mainFrame.getActiveFit() - sFit.refreshFit(fitID) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + if fitID is not None: + refreshFitIDs.add(fitID) + Fit.getInstance().toggleFactorReload(fitsIdToRefresh=refreshFitIDs) + for fitID in refreshFitIDs: + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) @property def checked(self): diff --git a/gui/builtinPreferenceViews/pyfaEnginePreferences.py b/gui/builtinPreferenceViews/pyfaEnginePreferences.py index ca227f54c..1b7028222 100644 --- a/gui/builtinPreferenceViews/pyfaEnginePreferences.py +++ b/gui/builtinPreferenceViews/pyfaEnginePreferences.py @@ -123,10 +123,13 @@ class PFFittingEnginePref(PreferenceView): self.engine_settings.set("globalDefaultSpoolupPercentage", self.spoolup_value.GetValue() / 100) def OnCBGlobalForceReloadStateChange(self, event): - self.sFit.serviceFittingOptions["useGlobalForceReload"] = self.cbGlobalForceReload.GetValue() + refreshFitIDs = set() fitID = self.mainFrame.getActiveFit() - self.sFit.refreshFit(fitID) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + if fitID is not None: + refreshFitIDs.add(fitID) + self.sFit.toggleFactorReload(value=bool(self.cbGlobalForceReload.GetValue()), fitsIdToRefresh=refreshFitIDs) + for fitID in refreshFitIDs: + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) def OnCBStrictSkillLevelsChange(self, event): self.engine_settings.set("strictSkillLevels", self.cbStrictSkillLevels.GetValue()) diff --git a/service/fit.py b/service/fit.py index 42800b5cf..da76ff7f8 100644 --- a/service/fit.py +++ b/service/fit.py @@ -249,15 +249,11 @@ class Fit: fit.notes = notes eos.db.commit() - def toggleFactorReload(self, fitID): - pyfalog.debug("Toggling factor reload for fit ID: {0}", fitID) - if fitID is None: - return None - - fit = eos.db.getFit(fitID) - fit.factorReload = not fit.factorReload - eos.db.commit() - self.recalc(fit) + def toggleFactorReload(self, value=None, fitsIdToRefresh=()): + self.serviceFittingOptions['useGlobalForceReload'] = value if value is not None else not self.serviceFittingOptions['useGlobalForceReload'] + for fitID in fitsIdToRefresh: + fit = self.getFit(fitID) + self.recalc(fit) def switchFit(self, fitID): pyfalog.debug("Switching fit to fit ID: {0}", fitID)