From 17a4f5aafe20908812ec78aebe0cb932ace4b57d Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Sun, 10 Oct 2010 18:52:47 +0300 Subject: [PATCH 1/3] Fix crap alignment in firepower statspane + display optimizations --- gui/builtinStatsViews/firepowerViewFull.py | 48 +++++++++++++++------- 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/gui/builtinStatsViews/firepowerViewFull.py b/gui/builtinStatsViews/firepowerViewFull.py index 5cee82f8b..7aec18692 100644 --- a/gui/builtinStatsViews/firepowerViewFull.py +++ b/gui/builtinStatsViews/firepowerViewFull.py @@ -28,6 +28,7 @@ class FirepowerViewFull(StatsView): def __init__(self, parent): StatsView.__init__(self) self.parent = parent + self._cachedValues = [] def getHeaderText(self, fit): return "Firepower" @@ -42,14 +43,21 @@ class FirepowerViewFull(StatsView): panel = "full" - sizerFirepower = wx.FlexGridSizer(1, 3) - for i in xrange(3): - sizerFirepower.AddGrowableCol(i) - + sizerFirepower = wx.FlexGridSizer(1, 4) + sizerFirepower.AddGrowableCol(2) + psize = contentPanel.GetSize() + sWidth = psize.width/4 + print sWidth contentSizer.Add( sizerFirepower, 0, wx.EXPAND, 0) + counter = 0 + for damageType, image in (("weapon", "turret") , ("drone", "droneBay")): baseBox = wx.BoxSizer(wx.HORIZONTAL) + if counter == 1: + sizerFirepower.AddSpacer( ( 40, 0), 1, 0, 5 ) + + counter += 1 sizerFirepower.Add(baseBox, 0, wx.ALIGN_LEFT) baseBox.Add(bitmapLoader.getStaticBitmap("%s_big" % image, parent, "icons"), 0, wx.ALIGN_CENTER) @@ -62,12 +70,12 @@ class FirepowerViewFull(StatsView): hbox = wx.BoxSizer(wx.HORIZONTAL) box.Add(hbox, 1, wx.ALIGN_CENTER) - lbl = wx.StaticText(parent, wx.ID_ANY, "0.0") + lbl = wx.StaticText(parent, wx.ID_ANY, "0.0 DPS") setattr(self, "label%sDps%s" % (panel.capitalize() ,damageType.capitalize()), lbl) hbox.Add(lbl, 0, wx.ALIGN_CENTER) - hbox.Add(wx.StaticText(parent, wx.ID_ANY, " DPS"), 0, wx.ALIGN_CENTER) - +# hbox.Add(wx.StaticText(parent, wx.ID_ANY, " DPS"), 0, wx.ALIGN_CENTER) + self._cachedValues.append(0) targetSizer = sizerFirepower baseBox = wx.BoxSizer(wx.HORIZONTAL) @@ -84,26 +92,36 @@ class FirepowerViewFull(StatsView): gridS.Add(wx.StaticText(parent, wx.ID_ANY, " Volley: "), 0, wx.ALL | wx.ALIGN_RIGHT) gridS.Add(lbl, 0, wx.ALIGN_LEFT) + self._cachedValues.append(0) + lbl = wx.StaticText(parent, wx.ID_ANY, "0.0") setattr(self, "label%sDpsTotal" % panel.capitalize(), lbl) gridS.Add(wx.StaticText(parent, wx.ID_ANY, " DPS: "), 0, wx.ALL | wx.ALIGN_RIGHT) + + self._cachedValues.append(0) + gridS.Add(lbl, 0, wx.ALIGN_LEFT) def refreshPanel(self, fit): #If we did anything intresting, we'd update our labels to reflect the new fit's stats here - stats = (("labelFullDpsWeapon", lambda: fit.weaponDPS, 3, 0, 9), - ("labelFullDpsDrone", lambda: fit.droneDPS, 3, 0, 9), - ("labelFullVolleyTotal", lambda: fit.weaponVolley, 3, 0, 9), - ("labelFullDpsTotal", lambda: fit.totalDPS, 3, 0, 9)) + stats = (("labelFullDpsWeapon", lambda: fit.weaponDPS, 3, 0, 9, "%s DPS",None), + ("labelFullDpsDrone", lambda: fit.droneDPS, 3, 0, 9, "%s DPS", None), + ("labelFullVolleyTotal", lambda: fit.weaponVolley, 3, 0, 9, "%s", "Volley: %.1f"), + ("labelFullDpsTotal", lambda: fit.totalDPS, 3, 0, 9, "%s", None)) - for labelName, value, prec, lowest, highest in stats: + counter = 0 + for labelName, value, prec, lowest, highest, valueFormat, altFormat in stats: label = getattr(self, labelName) value = value() if fit is not None else 0 value = value if value is not None else 0 - label.SetLabel(formatAmount(value, prec, lowest, highest)) - label.SetToolTip(wx.ToolTip("%.1f" % value)) - + if self._cachedValues[counter] != value: + valueStr = formatAmount(value, prec, lowest, highest) + label.SetLabel(valueFormat % valueStr) + tipStr = valueFormat % valueStr if altFormat is None else altFormat % value + label.SetToolTip(wx.ToolTip(tipStr)) + self._cachedValues[counter] = value + counter +=1 self.panel.Layout() self.headerPanel.Layout() From bcad51e1cb2eee04302aef4777d7211364a4137a Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Sun, 10 Oct 2010 18:59:57 +0300 Subject: [PATCH 2/3] Leftovers cleanup in firepowerview --- gui/builtinStatsViews/firepowerViewFull.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gui/builtinStatsViews/firepowerViewFull.py b/gui/builtinStatsViews/firepowerViewFull.py index 7aec18692..d4e56915c 100644 --- a/gui/builtinStatsViews/firepowerViewFull.py +++ b/gui/builtinStatsViews/firepowerViewFull.py @@ -45,9 +45,7 @@ class FirepowerViewFull(StatsView): sizerFirepower = wx.FlexGridSizer(1, 4) sizerFirepower.AddGrowableCol(2) - psize = contentPanel.GetSize() - sWidth = psize.width/4 - print sWidth + contentSizer.Add( sizerFirepower, 0, wx.EXPAND, 0) counter = 0 From a82f465fa0d11116e173b6e77ad303a1f06a81a4 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Sun, 10 Oct 2010 19:38:21 +0300 Subject: [PATCH 3/3] Fixed a stupid bug(fail) in pygauge onpaint event that made the animation color changes not behave like intended --- gui/pygauge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/pygauge.py b/gui/pygauge.py index 5c95c73e9..df4e8752c 100644 --- a/gui/pygauge.py +++ b/gui/pygauge.py @@ -289,7 +289,7 @@ class PyGauge(wx.PyWindow): r.width = w r.height = r.height/2+1 - pv = self._percentage + pv = value if pv <= 100: c1 = map(lambda t: sum(t), zip(c1, (0,pv/3,-pv,0)))