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):
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):
foundRegisteredView = True
break
- if not foundRegisteredView:
- self.GetView().ClearTreeCtrl()
+ if not foundRegisteredView:
+ self.GetView().ClearTreeCtrl()
self._timer.Start(1000) # 1 second interval