From 4a33365195f9787d972849dbf6e8339325bc5629 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Wed, 22 Nov 2017 01:45:31 -0500 Subject: [PATCH] Add some debug and fix indentation issue causing fit deletion to crash open fittings views --- gui/builtinShipBrowser/fitItem.py | 4 ++++ gui/builtinViews/fittingView.py | 21 +++++++++++---------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/gui/builtinShipBrowser/fitItem.py b/gui/builtinShipBrowser/fitItem.py index 4aea370d7..760916d4b 100644 --- a/gui/builtinShipBrowser/fitItem.py +++ b/gui/builtinShipBrowser/fitItem.py @@ -2,6 +2,7 @@ import re import time +import config import wx from logbook import Logger @@ -58,6 +59,9 @@ class FitItem(SFItem.SFBrowserItem): self.shipFittingInfo = shipFittingInfo self.shipName, self.shipTrait, self.fitName, self.fitBooster, self.timestamp, self.notes = shipFittingInfo + if config.debug: + self.fitName = '({}) {}'.format(self.fitID, self.fitName) + self.shipTrait = re.sub("<.*?>", " ", self.shipTrait) # see GH issue #62 diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 67d541b61..69fa3c918 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -78,7 +78,7 @@ class FitSpawner(gui.multiSwitch.TabSpawner): view = self.multiSwitch.GetSelectedPage() - if isinstance(view, gui.builtinViews.emptyView.BlankPage): + if not isinstance(view, FittingView): view = FittingView(self.multiSwitch) print("###################### Created new view:"+repr(view)) self.multiSwitch.ReplaceActivePage(view) @@ -287,19 +287,20 @@ class FittingView(d.Display): We also refresh the fit of the new current page in case delete fit caused change in stats (projected) """ + print('_+_+_+_+_+_ Fit Removed: {} {} activeFitID: {}, eventFitID: {}'.format(repr(self), str(bool(self)), self.activeFitID, event.fitID)) pyfalog.debug("FittingView::fitRemoved") if event.fitID == self.getActiveFit(): pyfalog.debug(" Deleted fit is currently active") self.parent.DeletePage(self.parent.GetPageIndex(self)) - try: - # Sometimes there is no active page after deletion, hence the try block - sFit = Fit.getInstance() - sFit.refreshFit(self.getActiveFit()) - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.activeFitID)) - except RuntimeError: - pyfalog.warning("Caught dead object") - pass + try: + # Sometimes there is no active page after deletion, hence the try block + sFit = Fit.getInstance() + sFit.refreshFit(self.getActiveFit()) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.activeFitID)) + except RuntimeError: + pyfalog.warning("Caught dead object") + pass event.Skip() @@ -520,7 +521,7 @@ class FittingView(d.Display): self.populate(self.mods) def fitChanged(self, event): - print('====== Fit Changed: '+repr(self)+str(bool(self))) + print('====== Fit Changed: {} {} activeFitID: {}, eventFitID: {}'.format(repr(self), str(bool(self)), self.activeFitID, event.fitID)) try: if self.activeFitID is not None and self.activeFitID == event.fitID: