Removes the view from the inputed panel and adds it to this panel.
        
        :param      panel | <XViewPanel>
                    view  | <XView>

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)