docs: def snagViewFromPanel(self, panel, index=None):
          """
          Removes the view from the inputed panel and adds it to this panel.
          
          :param      panel | <XViewPanel>
                      view  | <XView>
          """
          if index == None:
              index = panel.currentIndex()
              
          view = panel.widget(index)
          if not view:
              return
          
          count = panel.count()
          self.addTab(view, view.windowTitle())
          
          # when the panel gets moved and there are no more widgets within the 
          # panel, we'll close it out - but we cannot close it directly or we 
          # run into a segmentation fault here.  Better to provide a timer and
          # close it in a second.  It depends on which thread triggers this call
          # that sometimes causes it to error out. - EKH 01/25/12
          if count == 1:
              QtCore.QTimer.singleShot(0, panel.closePanel)