code: def SetNewOrder( self, column ):
          
          if column.sortOn:
              # multiple sorts for the click...
              columns = [self.columnByAttribute(attr) for attr in column.sortOn]
              diff = [(a, b) for a, b in zip(self.sortOrder, columns)
                      if b is not a[1]]
              if not diff:
                  self.sortOrder[0] = (not self.sortOrder[0][0], column)
              else:
                  self.sortOrder = [
                      (c.defaultOrder, c) for c in columns
                  ] + [(a, b) for (a, b) in self.sortOrder if b not in columns]
              return False
          else:
              if column is self.sortOrder[0][1]:
                  # reverse current major order
                  self.sortOrder[0] = (not self.sortOrder[0][0], column)
              else:
                  self.sortOrder = [(column.defaultOrder, column)] + [
                      (a, b)
                      for (a, b) in self.sortOrder if b is not column
                  ]
              return True
docs: Set new sorting order based on column, return whether a simple single-column (True) or multiple (False)