Redraw only after some delay (reuse market search delay for that)
This commit is contained in:
@@ -47,5 +47,13 @@ class FitDpsVsRangeGraph(Graph):
|
||||
('signatureRadius', ExtraInput(inputDefault=None, inputLabel='Target signature radius (m)', inputIconID=1390)),
|
||||
('angle', ExtraInput(inputDefault=0, inputLabel='Target angle (degrees)', inputIconID=1389))])
|
||||
|
||||
@property
|
||||
def hasTargets(self):
|
||||
return True
|
||||
|
||||
@property
|
||||
def hasVectors(self):
|
||||
return True
|
||||
|
||||
|
||||
FitDpsVsRangeGraph.register()
|
||||
|
||||
@@ -61,7 +61,7 @@ class ItemView(Display):
|
||||
def delaySearch(self, evt):
|
||||
sFit = Fit.getInstance()
|
||||
self.searchTimer.Stop()
|
||||
self.searchTimer.Start(sFit.serviceFittingOptions["marketSearchDelay"], True) # 150ms
|
||||
self.searchTimer.Start(sFit.serviceFittingOptions["marketSearchDelay"], True)
|
||||
|
||||
def startDrag(self, event):
|
||||
row = self.GetFirstSelected()
|
||||
|
||||
@@ -54,6 +54,14 @@ class Graph(metaclass=ABCMeta):
|
||||
def yDefs(self):
|
||||
raise NotImplementedError
|
||||
|
||||
@property
|
||||
def hasTargets(self):
|
||||
return False
|
||||
|
||||
@property
|
||||
def hasVectors(self):
|
||||
return False
|
||||
|
||||
@property
|
||||
def redrawOnEffectiveChange(self):
|
||||
return False
|
||||
|
||||
@@ -162,6 +162,9 @@ class GraphFrame(wx.Frame):
|
||||
ctrlPanelSizer.Add(self.inputsSizer, 1, wx.EXPAND | wx.ALL, 0)
|
||||
self.graphCtrlPanel.SetSizer(ctrlPanelSizer)
|
||||
|
||||
self.drawTimer = wx.Timer(self)
|
||||
self.Bind(wx.EVT_TIMER, self.draw, self.drawTimer)
|
||||
|
||||
for view in Graph.views:
|
||||
view = view()
|
||||
self.graphSelection.Append(view.name, view)
|
||||
@@ -330,12 +333,18 @@ class GraphFrame(wx.Frame):
|
||||
self.Layout()
|
||||
self.draw()
|
||||
|
||||
def delayedDraw(self, event=None):
|
||||
self.drawTimer.Stop()
|
||||
self.drawTimer.Start(Fit.getInstance().serviceFittingOptions["marketSearchDelay"], True)
|
||||
|
||||
def draw(self, event=None):
|
||||
global mpl_version
|
||||
|
||||
if event is not None:
|
||||
event.Skip()
|
||||
|
||||
self.drawTimer.Stop()
|
||||
|
||||
# todo: FIX THIS, see #1430. draw() is not being unbound properly when the window closes, this is an easy fix,
|
||||
# but not a proper solution
|
||||
if not self:
|
||||
@@ -446,7 +455,7 @@ class GraphFrame(wx.Frame):
|
||||
def onFieldChanged(self, event):
|
||||
view = self.getView()
|
||||
view.clearCache()
|
||||
self.draw()
|
||||
self.delayedDraw()
|
||||
|
||||
def AppendFitToList(self, fitID):
|
||||
sFit = Fit.getInstance()
|
||||
|
||||
Reference in New Issue
Block a user