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)
def addQuery ( self ) : insert_item = self . uiQueryTREE . currentItem ( ) if ( insert_item and not insert_item . isSelected ( ) ) : insert_item = None if ( self . uiQueryTXT . text ( ) ) : query = Q . fromString ( nativestring ( self . uiQueryTXT . text ( ) ) ) self . uiQueryTXT . setText ( '' ) else : query = Q ( ) tree = self . uiQueryTREE if ( not insert_item ) : count = tree . topLevelItemCount ( ) if ( not count ) : XQueryItem ( tree , query ) else : if ( 1 < count ) : join = tree . topLevelItem ( count - 2 ) . text ( 0 ) else : join = 'and' XJoinItem ( tree , join ) XQueryItem ( tree , query ) elif ( insert_item . childCount ( ) ) : count = insert_item . childCount ( ) join = insert_item . child ( count - 2 ) . text ( 0 ) XJoinItem ( insert_item , join ) XQueryItem ( tree , query ) else : parent_item = insert_item . parent ( ) if ( not parent_item ) : count = tree . topLevelItemCount ( ) index = tree . indexOfTopLevelItem ( insert_item ) if ( index == count - 1 ) : if ( 1 < count ) : join = tree . topLevelItem ( count - 2 ) . text ( 0 ) else : join = 'and' XJoinItem ( tree , join ) XQueryItem ( tree , query ) 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 ) 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 ) 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 )
Sets the query for this widget from the quick query text builder.