code: def toggleColumnByAction( self, action ):
          
          if ( action.text() == 'Show All' ):
              self.blockSignals(True)
              self.setUpdatesEnabled(False)
              for col in range(self.columnCount()):
                  self.setColumnHidden(col, False)
              self.setUpdatesEnabled(True)
              self.blockSignals(False)
              
              self.setColumnHidden(0, False)
              
          elif ( action.text() == 'Hide All' ):
              self.blockSignals(True)
              self.setUpdatesEnabled(False)
              for col in range(self.columnCount()):
                  self.setColumnHidden(col, True)
                  
              # ensure we have at least 1 column visible
              self.blockSignals(False)
              self.setUpdatesEnabled(True)
              
              self.setColumnHidden(0, False)
              
          else:
              col     = self.column(action.text())
              state   = not action.isChecked()
              self.setColumnHidden(col, state)
              if ( state ):
                  self.resizeColumnToContents(col)
              
              # ensure we at least have 1 column visible
              found = False
              for col in range(self.columnCount()):
                  if ( not self.isColumnHidden(col) ):
                      found = True
                      break
              
              if not found:
                  self.setColumnHidden(0, False)
          
          self.resizeToContents()
          self.update()
docs: Toggles whether or not the column at the inputed action's name should \
          be hidden.
          `
          :param      action | <QAction>