docs: def addQuery( self ):
          """
          Sets the query for this widget from the quick query text builder.
          """
          insert_item = self.uiQueryTREE.currentItem()
          if ( insert_item and not insert_item.isSelected() ):
              insert_item = None
          
          # create the query
          if ( self.uiQueryTXT.text() ):
              query = Q.fromString(nativestring(self.uiQueryTXT.text()))
              self.uiQueryTXT.setText('')
          else:
              query = Q()
          
          # determine where to create the item at
          tree = self.uiQueryTREE
          
          if ( not insert_item ):
              # determine if we are already joining queries together
              count = tree.topLevelItemCount()
              
              # create the first item
              if ( not count ):
                  XQueryItem(tree, query)
              else:
                  if ( 1 < count ):
                      join = tree.topLevelItem(count - 2).text(0)
                  else:
                      join = 'and'
                  
                  # create the join item & query item
                  XJoinItem(tree, join)
                  XQueryItem(tree, query)
          
          # add a query into a group
          elif ( insert_item.childCount() ):
              count = insert_item.childCount()
              join = insert_item.child(count - 2).text(0)
              
              # add the query to the group
              XJoinItem(insert_item, join)
              XQueryItem(tree, query)
          
          # add a query underneath another item
          else:
              parent_item = insert_item.parent()
              
              # add into the tree
              if ( not parent_item ):
                  count = tree.topLevelItemCount()
                  index = tree.indexOfTopLevelItem(insert_item)
                  
                  # add to the end
                  if ( index == count - 1 ):
                      if ( 1 < count ):
                          join = tree.topLevelItem(count - 2).text(0)
                      else:
                          join = 'and'
                      
                      XJoinItem(tree, join)
                      XQueryItem(tree, query)
                  
                  # insert in the middle
                  else:
                      join_item = tree.topLevelItem(index + 1)
                      join = join_item.text(0)
                      XJoinItem(tree, join, preceeding = join_item)
                      XQueryItem(tree, query, preceeding = join_item)
              else:
                  count = parent_item.childCount()
                  index = parent_item.indexOfChild(insert_item)
                  
                  # add to the end
                  if ( index == count - 1 ):
                      if ( 1 < count ):
                          join = parent_item.child(count - 2).text(0)
                      else:
                          join = 'and'
                      
                      XJoinItem(parent_item, join)
                      XQueryItem(parent_item, query)
                  
                  # insert in the middle
                  else:
                      join_item = parent_item.child(index + 1)
                      join = join_item.text(0)
                      XJoinItem(parent_item, join, preceeding = join_item)
                      XQueryItem(parent_item, join, preceeding = join_item)