code: def swapTabType(self, action):
          
          # 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)
docs: Swaps the current tab view for the inputed action's type.
          
          :param      action | <QAction>