Swaps the current tab view for the inputed action's type.
        
        :param      action | <QAction>

def swapTabType(self, action):
        """
        Swaps the current tab view for the inputed action's type.
        
        :param      action | <QAction>
        """
        # for a new tab, use the add tab slot
        if not self._currentPanel.count():
            self.addView(action)
            return
        
        # make sure we're not trying to switch to the same type
        viewType = self._viewWidget.viewType(action.text())
        view = self._currentPanel.currentView()
        if type(view) == viewType:
            return
        
        # create a new view and close the old one
        self._viewWidget.setUpdatesEnabled(False)
        self._currentPanel.blockSignals(True)
        
        # create the new view
        view.close()
        
        index       = self._currentPanel.currentIndex()
        new_view    = viewType.createInstance(self._viewWidget,
                                              self._viewWidget)
        
        # add the new view
        self._currentPanel.insertTab(index,
                                     new_view, 
                                     new_view.windowTitle())
        
        self._currentPanel.blockSignals(False)
        self._currentPanel.setCurrentIndex(index)
        self._viewWidget.setUpdatesEnabled(True)