MCPcopy Index your code
hub / github.com/pyfa-org/Pyfa / NotesView

Class NotesView

gui/builtinAdditionPanes/notesView.py:11–88  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9
10
11class NotesView(wx.Panel):
12
13 def __init__(self, parent):
14 wx.Panel.__init__(self, parent)
15 self.lastFitId = None
16 self.mainFrame = gui.mainFrame.MainFrame.getInstance()
17 mainSizer = wx.BoxSizer(wx.VERTICAL)
18 self.editNotes = wx.TextCtrl(self, style=wx.TE_MULTILINE | wx.BORDER_NONE)
19 mainSizer.Add(self.editNotes, 1, wx.EXPAND | wx.ALL, 10)
20 self.SetSizer(mainSizer)
21 self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged)
22 self.Bind(wx.EVT_TEXT, self.onText)
23 self.editNotes.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
24 self.changeTimer = wx.Timer(self)
25 self.Bind(wx.EVT_TIMER, self.delayedSave, self.changeTimer)
26
27 def OnKeyDown(self, event):
28 if event.RawControlDown() and event.GetKeyCode() == wx.WXK_BACK:
29 try:
30 HandleCtrlBackspace(self.editNotes)
31 except (KeyboardInterrupt, SystemExit):
32 raise
33 except:
34 pass
35 else:
36 event.Skip()
37
38 def fitChanged(self, event):
39 event.Skip()
40 activeFitID = self.mainFrame.getActiveFit()
41 if activeFitID is not None and activeFitID not in event.fitIDs:
42 return
43
44 sFit = Fit.getInstance()
45 fit = sFit.getFit(activeFitID)
46
47 self.changeTimer.Stop() # cancel any pending timers
48
49 self.Parent.Parent.DisablePage(self, not fit or fit.isStructure)
50
51 # when switching fits, ensure that we save the notes for the previous fit
52 if self.lastFitId is not None:
53 sFit.editNotes(self.lastFitId, self.editNotes.GetValue())
54
55 if activeFitID is None and self.lastFitId is not None:
56 self.lastFitId = None
57 return
58 elif activeFitID != self.lastFitId:
59 self.lastFitId = activeFitID
60 self.editNotes.ChangeValue(fit.notes or "")
61 wx.PostEvent(self.mainFrame, GE.FitNotesChanged())
62
63 def onText(self, event):
64 # delay the save so we're not writing to sqlite on every keystroke
65 self.changeTimer.Stop() # cancel the existing timer
66 self.changeTimer.Start(1000, True)
67
68 def delayedSave(self, event):

Callers 1

__init__Method · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected