From 3d26a31ee2e2943eb2843249363895b47a40265d Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 9 Jan 2016 12:36:55 -0500 Subject: [PATCH] Add option to disable gauge animations (primarily for osx 10.11 users, see #438) --- .../pyfaGeneralPreferences.py | 10 ++++++++++ gui/pygauge.py | 16 ++++++++++++---- service/fit.py | 3 ++- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/gui/builtinPreferenceViews/pyfaGeneralPreferences.py b/gui/builtinPreferenceViews/pyfaGeneralPreferences.py index 75d1273c0..1f7417316 100644 --- a/gui/builtinPreferenceViews/pyfaGeneralPreferences.py +++ b/gui/builtinPreferenceViews/pyfaGeneralPreferences.py @@ -59,6 +59,10 @@ class PFGeneralPref ( PreferenceView): self.cbMarketShortcuts = wx.CheckBox( panel, wx.ID_ANY, u"Show market shortcuts", wx.DefaultPosition, wx.DefaultSize, 0 ) mainSizer.Add( self.cbMarketShortcuts, 0, wx.ALL|wx.EXPAND, 5 ) + self.cbGaugeAnimation = wx.CheckBox( panel, wx.ID_ANY, u"Animate gauges", wx.DefaultPosition, wx.DefaultSize, 0 ) + mainSizer.Add( self.cbGaugeAnimation, 0, wx.ALL|wx.EXPAND, 5 ) + + defCharSizer = wx.BoxSizer( wx.HORIZONTAL ) self.sFit = service.Fit.getInstance() @@ -73,6 +77,7 @@ class PFGeneralPref ( PreferenceView): self.cbReopenFits.SetValue(self.openFitsSettings["enabled"]) self.cbShowTooltip.SetValue(self.sFit.serviceFittingOptions["showTooltip"] or False) self.cbMarketShortcuts.SetValue(self.sFit.serviceFittingOptions["showMarketShortcuts"] or False) + self.cbGaugeAnimation.SetValue(self.sFit.serviceFittingOptions["enableGaugeAnimation"]) self.cbGlobalChar.Bind(wx.EVT_CHECKBOX, self.OnCBGlobalCharStateChange) self.cbGlobalDmgPattern.Bind(wx.EVT_CHECKBOX, self.OnCBGlobalDmgPatternStateChange) @@ -84,6 +89,7 @@ class PFGeneralPref ( PreferenceView): self.cbReopenFits.Bind(wx.EVT_CHECKBOX, self.onCBReopenFits) self.cbShowTooltip.Bind(wx.EVT_CHECKBOX, self.onCBShowTooltip) self.cbMarketShortcuts.Bind(wx.EVT_CHECKBOX, self.onCBShowShortcuts) + self.cbGaugeAnimation.Bind(wx.EVT_CHECKBOX, self.onCBGaugeAnimation) self.cbRackLabels.Enable(self.sFit.serviceFittingOptions["rackSlots"] or False) @@ -143,6 +149,10 @@ class PFGeneralPref ( PreferenceView): def onCBShowShortcuts(self, event): self.sFit.serviceFittingOptions["showMarketShortcuts"] = self.cbMarketShortcuts.GetValue() + def onCBGaugeAnimation(self, event): + self.sFit.serviceFittingOptions["enableGaugeAnimation"] = self.cbGaugeAnimation.GetValue() + print self.sFit.serviceFittingOptions["enableGaugeAnimation"] + def getImage(self): return BitmapLoader.getBitmap("prefs_settings", "gui") diff --git a/gui/pygauge.py b/gui/pygauge.py index 308004a6b..0904859b5 100644 --- a/gui/pygauge.py +++ b/gui/pygauge.py @@ -20,6 +20,8 @@ import gui.utils.drawUtils as drawUtils import gui.utils.animEffects as animEffects import gui.utils.fonts as fonts +from service import fit + class PyGauge(wx.PyWindow): """ This class provides a visual alternative for `wx.Gauge`. It currently @@ -174,10 +176,16 @@ class PyGauge(wx.PyWindow): return self._range def Animate(self): - if not self._timer: - self._timer = wx.Timer(self, self._timerId) - self._animStep = 0 - self._timer.Start(self._period) + sFit = fit.Fit.getInstance() + print sFit.serviceFittingOptions["enableGaugeAnimation"] + if sFit.serviceFittingOptions["enableGaugeAnimation"]: + if not self._timer: + self._timer = wx.Timer(self, self._timerId) + self._animStep = 0 + self._timer.Start(self._period) + else: + self._animValue = self._percentage + self.Refresh() def SetRange(self, range, reinit = False): """ diff --git a/service/fit.py b/service/fit.py index b50ec1ae7..9397cd15e 100644 --- a/service/fit.py +++ b/service/fit.py @@ -103,7 +103,8 @@ class Fit(object): "rackLabels": True, "compactSkills": True, "showTooltip": True, - "showMarketShortcuts": False} + "showMarketShortcuts": False, + "enableGaugeAnimation": True} self.serviceFittingOptions = SettingsProvider.getInstance().getSettings( "pyfaServiceFittingOptions", serviceFittingDefaultOptions)