From e28bf545e98597b57b47afc17be3216ad81f81d3 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Wed, 12 Apr 2017 23:22:57 -0400 Subject: [PATCH] Fix some bugs with notes view - exception happening due to lack of fit, and possibility of notes saving under the wrong fit --- gui/notesView.py | 11 +++++++---- service/fit.py | 6 ++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gui/notesView.py b/gui/notesView.py index d4f8703cc..5c44a26c2 100644 --- a/gui/notesView.py +++ b/gui/notesView.py @@ -24,8 +24,14 @@ class NotesView(wx.Panel): sFit = Fit.getInstance() fit = sFit.getFit(event.fitID) + self.saveTimer.Stop() # cancel any pending timers + self.Parent.Parent.DisablePage(self, not fit or fit.isStructure) + # when switching fits, ensure that we save the notes for the previous fit + if self.lastFitId is not None: + sFit.editNotes(self.lastFitId, self.editNotes.GetValue()) + if event.fitID is None and self.lastFitId is not None: self.lastFitId = None event.Skip() @@ -41,7 +47,4 @@ class NotesView(wx.Panel): def delayedSave(self, event): sFit = Fit.getInstance() - fit = sFit.getFit(self.lastFitId) - newNotes = self.editNotes.GetValue() - fit.notes = newNotes - wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fit.ID)) + sFit.editNotes(self.lastFitId, self.editNotes.GetValue()) diff --git a/service/fit.py b/service/fit.py index 1800a8075..f44109d16 100644 --- a/service/fit.py +++ b/service/fit.py @@ -180,6 +180,12 @@ class Fit(object): fit.clear() return fit + @staticmethod + def editNotes(fitID, notes): + fit = eos.db.getFit(fitID) + fit.notes = notes + eos.db.commit() + def toggleFactorReload(self, fitID): pyfalog.debug("Toggling factor reload for fit ID: {0}", fitID) if fitID is None: