Add amount of text in notes to notes tab title
This commit is contained in:
@@ -86,6 +86,7 @@ class AdditionsPane(TogglePanel):
|
||||
self.notebook.AddPage(self.notes, "Notes", image=notesImg, closeable=False)
|
||||
|
||||
self.mainFrame.Bind(GE.FIT_CHANGED, self.OnFitChanged)
|
||||
self.mainFrame.Bind(GE.FIT_NOTES_CHANGED, self.OnNotesChanged)
|
||||
|
||||
self.notebook.SetSelection(0)
|
||||
|
||||
@@ -118,6 +119,10 @@ class AdditionsPane(TogglePanel):
|
||||
return
|
||||
self.updateExtraText()
|
||||
|
||||
def OnNotesChanged(self, event):
|
||||
event.Skip()
|
||||
self.updateExtraText()
|
||||
|
||||
def updateExtraText(self):
|
||||
refresh = False
|
||||
for i in range(self.notebook.GetPageCount()):
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
# noinspection PyPackageRequirements
|
||||
import wx
|
||||
|
||||
from service.fit import Fit
|
||||
import gui.globalEvents as GE
|
||||
import gui.mainFrame
|
||||
from gui.utils.helpers_wxPython import HandleCtrlBackspace
|
||||
from gui.utils.numberFormatter import formatAmount
|
||||
from service.fit import Fit
|
||||
|
||||
|
||||
class NotesView(wx.Panel):
|
||||
@@ -14,14 +15,14 @@ class NotesView(wx.Panel):
|
||||
self.lastFitId = None
|
||||
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||
mainSizer = wx.BoxSizer(wx.VERTICAL)
|
||||
self.editNotes = wx.TextCtrl(self, style=wx.TE_MULTILINE | wx.BORDER_NONE, )
|
||||
mainSizer.Add(self.editNotes, 1, wx.EXPAND)
|
||||
self.editNotes = wx.TextCtrl(self, style=wx.TE_MULTILINE | wx.BORDER_NONE)
|
||||
mainSizer.Add(self.editNotes, 1, wx.EXPAND | wx.ALL, 10)
|
||||
self.SetSizer(mainSizer)
|
||||
self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged)
|
||||
self.Bind(wx.EVT_TEXT, self.onText)
|
||||
self.editNotes.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
|
||||
self.saveTimer = wx.Timer(self)
|
||||
self.Bind(wx.EVT_TIMER, self.delayedSave, self.saveTimer)
|
||||
self.changeTimer = wx.Timer(self)
|
||||
self.Bind(wx.EVT_TIMER, self.delayedSave, self.changeTimer)
|
||||
|
||||
def OnKeyDown(self, event):
|
||||
if event.RawControlDown() and event.GetKeyCode() == wx.WXK_BACK:
|
||||
@@ -38,7 +39,7 @@ class NotesView(wx.Panel):
|
||||
sFit = Fit.getInstance()
|
||||
fit = sFit.getFit(activeFitID)
|
||||
|
||||
self.saveTimer.Stop() # cancel any pending timers
|
||||
self.changeTimer.Stop() # cancel any pending timers
|
||||
|
||||
self.Parent.Parent.DisablePage(self, not fit or fit.isStructure)
|
||||
|
||||
@@ -51,13 +52,32 @@ class NotesView(wx.Panel):
|
||||
return
|
||||
elif activeFitID != self.lastFitId:
|
||||
self.lastFitId = activeFitID
|
||||
self.editNotes.SetValue(fit.notes or "")
|
||||
self.editNotes.ChangeValue(fit.notes or "")
|
||||
wx.PostEvent(self.mainFrame, GE.FitNotesChanged())
|
||||
|
||||
def onText(self, event):
|
||||
# delay the save so we're not writing to sqlite on every keystroke
|
||||
self.saveTimer.Stop() # cancel the existing timer
|
||||
self.saveTimer.Start(1000, True)
|
||||
self.changeTimer.Stop() # cancel the existing timer
|
||||
self.changeTimer.Start(1000, True)
|
||||
|
||||
def delayedSave(self, event):
|
||||
event.Skip()
|
||||
sFit = Fit.getInstance()
|
||||
sFit.editNotes(self.lastFitId, self.editNotes.GetValue())
|
||||
wx.PostEvent(self.mainFrame, GE.FitNotesChanged())
|
||||
|
||||
def getTabExtraText(self):
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
if fitID is None:
|
||||
return None
|
||||
sFit = Fit.getInstance()
|
||||
fit = sFit.getFit(fitID)
|
||||
if fit is None:
|
||||
return None
|
||||
opt = sFit.serviceFittingOptions["additionsLabels"]
|
||||
# Amount of active implants
|
||||
if opt in (1, 2):
|
||||
amount = len(self.editNotes.GetValue())
|
||||
return ' ({})'.format(formatAmount(amount, 2, 0, 3)) if amount else None
|
||||
else:
|
||||
return None
|
||||
|
||||
@@ -4,6 +4,7 @@ import wx.lib.newevent
|
||||
FitRenamed, FIT_RENAMED = wx.lib.newevent.NewEvent()
|
||||
FitChanged, FIT_CHANGED = wx.lib.newevent.NewEvent()
|
||||
FitRemoved, FIT_REMOVED = wx.lib.newevent.NewEvent()
|
||||
FitNotesChanged, FIT_NOTES_CHANGED = wx.lib.newevent.NewEvent()
|
||||
CharListUpdated, CHAR_LIST_UPDATED = wx.lib.newevent.NewEvent()
|
||||
CharChanged, CHAR_CHANGED = wx.lib.newevent.NewEvent()
|
||||
GraphOptionChanged, GRAPH_OPTION_CHANGED = wx.lib.newevent.NewEvent()
|
||||
|
||||
Reference in New Issue
Block a user