docs: def collectFilterTerms( self, columns = None, ignore = None ):
          """
          Returns a collection of filter terms for this tree widget based on \
          the results in the tree items.  If the optional columns or ignore \
          values are supplied then the specific columns will be used to generate \
          the search terms, and the columns in the ignore list will be stripped \
          out.
          
          :param      columns | [<str> column, ..] || None
                      ignore  | [<str> column, ..] || None
          
          :return     {<str> column: [<str> term, ..]}
          """
          if ( columns == None ):
              columns = self.columns()
              
          if ( ignore ):
              columns = [column for column in columns if not column in ignore]
          
          # this will return an int/set pairing which we will change to a str/list
          terms = {}
          for column in columns:
              index = self.column(column)
              if ( index == -1 ):
                  continue
              
              terms[index] = set()
          
          self.__collectFilterTerms(terms)
          return dict([(self.columnOf(i[0]), list(i[1])) for i in terms.items()])