item = self.GetControl().GetSelection()
if item:
self.GetControl().CallDoSelectCallback(item)
+ event.Skip()
def ResumeActionOnSelect(self):
treeCtrl.Expand(child)
(child, cookie) = treeCtrl.GetNextChild(parentItem, cookie)
- # wxBug: This causes a crash, tried using ScrollTo which crashed as well. Then tried calling it with wx.CallAfter and that crashed as well, with both EnsureVisible and ScrollTo
- # self.GetControl().EnsureVisible(self.GetControl().GetRootItem())
- # So doing the following massive hack which forces the treectrl to scroll up to the top item
- treeCtrl.Collapse(parentItem)
- treeCtrl.Expand(parentItem)
+ if parentItem:
+ treeCtrl.EnsureVisible(parentItem)
class OutlineTreeCtrl(wx.TreeCtrl):
def __init__(self, serviceName, embeddedWindowLocation = wx.lib.pydocview.EMBEDDED_WINDOW_BOTTOM):
Service.Service.__init__(self, serviceName, embeddedWindowLocation)
- self._validTemplates = []
+ self._validViewTypes = []
def _CreateView(self):
if not self.GetView():
return
- self.SaveExpansionState()
- if view.DoLoadOutlineCallback(force=force):
- self.GetView().OnSort(wx.ConfigBase_Get().ReadInt("OutlineSort", SORT_NONE))
- self.LoadExpansionState()
- if position >= 0:
- self.SyncToPosition(position)
+ if hasattr(view, "DoLoadOutlineCallback"):
+ self.SaveExpansionState()
+ if view.DoLoadOutlineCallback(force=force):
+ self.GetView().OnSort(wx.ConfigBase_Get().ReadInt("OutlineSort", SORT_NONE))
+ self.LoadExpansionState()
+ if position >= 0:
+ self.SyncToPosition(position)
def SyncToPosition(self, position):
if self.GetView():
currView = wx.GetApp().GetDocumentManager().GetCurrentView()
if currView:
- for template in self._validTemplates:
- type = template.GetViewType()
- if isinstance(currView, type):
+ for viewType in self._validViewTypes:
+ if isinstance(currView, viewType):
self.LoadOutline(currView)
foundRegisteredView = True
break
- if not foundRegisteredView:
- self.GetView().ClearTreeCtrl()
+ if not foundRegisteredView:
+ self.GetView().ClearTreeCtrl()
self._timer.Start(1000) # 1 second interval
- def AddTemplateForBackgroundHandler(self, template):
- self._validTemplates.append(template)
+ def AddViewTypeForBackgroundHandler(self, viewType):
+ self._validViewTypes.append(viewType)
- def GetTemplatesForBackgroundHandler(self):
- return self._validTemplates
+ def GetViewTypesForBackgroundHandler(self):
+ return self._validViewTypes
- def RemoveTemplateForBackgroundHandler(self, template):
- self._validTemplates.remove(template)
+ def RemoveViewTypeForBackgroundHandler(self, viewType):
+ self._validViewTypes.remove(viewType)