def Widget(self):
                return self.vbox
 
-# Context-sensitive call graph window
-
-class CallGraphWindow(QMdiSubWindow):
-
-       def __init__(self, glb, parent=None):
-               super(CallGraphWindow, self).__init__(parent)
+# Tree window base
 
-               self.model = LookupCreateModel("Context-Sensitive Call Graph", lambda x=glb: CallGraphModel(x))
+class TreeWindowBase(QMdiSubWindow):
 
-               self.view = QTreeView()
-               self.view.setModel(self.model)
-
-               for c, w in ((0, 250), (1, 100), (2, 60), (3, 70), (4, 70), (5, 100)):
-                       self.view.setColumnWidth(c, w)
-
-               self.find_bar = FindBar(self, self)
-
-               self.vbox = VBox(self.view, self.find_bar.Widget())
-
-               self.setWidget(self.vbox.Widget())
+       def __init__(self, parent=None):
+               super(TreeWindowBase, self).__init__(parent)
 
-               AddSubWindow(glb.mainwindow.mdi_area, self, "Context-Sensitive Call Graph")
+               self.model = None
+               self.view = None
+               self.find_bar = None
 
        def DisplayFound(self, ids):
                if not len(ids):
                if not found:
                        self.find_bar.NotFound()
 
+
+# Context-sensitive call graph window
+
+class CallGraphWindow(TreeWindowBase):
+
+       def __init__(self, glb, parent=None):
+               super(CallGraphWindow, self).__init__(parent)
+
+               self.model = LookupCreateModel("Context-Sensitive Call Graph", lambda x=glb: CallGraphModel(x))
+
+               self.view = QTreeView()
+               self.view.setModel(self.model)
+
+               for c, w in ((0, 250), (1, 100), (2, 60), (3, 70), (4, 70), (5, 100)):
+                       self.view.setColumnWidth(c, w)
+
+               self.find_bar = FindBar(self, self)
+
+               self.vbox = VBox(self.view, self.find_bar.Widget())
+
+               self.setWidget(self.vbox.Widget())
+
+               AddSubWindow(glb.mainwindow.mdi_area, self, "Context-Sensitive Call Graph")
+
 # Child data item  finder
 
 class ChildDataItemFinder():