From 4ad60373e5cb913af6a484a6f44dd09252200c97 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Fri, 19 Nov 2010 14:11:34 +0200 Subject: [PATCH] Minor cleanup (made possible to subclass ListPane without too much hassle) --- gui/shipBrowser.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/gui/shipBrowser.py b/gui/shipBrowser.py index d58023a5a..2e55cf43f 100644 --- a/gui/shipBrowser.py +++ b/gui/shipBrowser.py @@ -751,7 +751,6 @@ class ListPane (wx.ScrolledWindow): posy = self.GetScrollPos(wx.VERTICAL) posy -= 12 self.Scroll(0, posy) -# self.RefreshList() event.Skip() def MScrollDown(self, event): @@ -759,7 +758,6 @@ class ListPane (wx.ScrolledWindow): posy = self.GetScrollPos(wx.VERTICAL) posy += 12 self.Scroll(0, posy) -# self.RefreshList() event.Skip() @@ -813,21 +811,28 @@ class ListPane (wx.ScrolledWindow): self._wList.append(widget) self._wCount += 1 + # Override this method if needed ( return False by default if we do not want to scroll to selected widget) + def IsWidgetSelectedByContext(self, widget): + stage = self.Parent.GetActiveStage() + fit = self.mainFrame.getActiveFit() + if stage == 3 or stage == 4: + if self._wList[widget].GetType() == 3: + if fit == self._wList[widget].fitID: + return True + return False + def RefreshList(self, doRefresh = False): ypos = 0 maxy = 0 scrollTo = 0 - stage = self.Parent.GetActiveStage() - fit = self.mainFrame.getActiveFit() + selected = None for i in xrange( len(self._wList) ): iwidth, iheight = self._wList[i].GetSize() xa, ya = self.CalcScrolledPosition((0, maxy)) self._wList[i].SetPosition((xa, ya)) - if stage == 3 or stage == 4: - if self._wList[i].GetType() == 3: - if fit == self._wList[i].fitID: - selected = self._wList[i] + if self.IsWidgetSelectedByContext(i): + selected = self._wList[i] maxy += iheight self.SetVirtualSize((1, maxy))