def handleButtonClick( self, button ):
        """
        Handle the event when a user clicks on one of the part buttons.
        
        :param      button | <QToolButton>
        """
        path            = button.property('path')
        is_completer    = button.property('is_completer')
        
        # popup a completion menu
        if ( unwrapVariant(is_completer) ):
            model = self.navigationModel()
            if ( not model ):
                return
            
            sep  = self.separator()
            path = nativestring(unwrapVariant(path))
            item = model.itemByPath(path, includeRoot = True)
            if ( not item ):
                return
            
            curr_path = nativestring(self.text()).strip(self.separator())
            curr_path = curr_path.replace(path, '').strip(self.separator())
            
            child_name = ''
            if ( curr_path ):
                child_name = curr_path.split(self.separator())[0]
            
            index = model.indexFromItem(item)
            
            self._completerTree.move(QCursor.pos())
            self._completerTree.setRootIndex(index)
            self._completerTree.verticalScrollBar().setValue(0)
            
            if ( child_name ):
                child_item = None
                for i in range(item.rowCount()):
                    child = item.child(i)
                    if ( child.text() == child_name ):
                        child_item = child
                        break
                
                if ( child_item ):
                    child_index = model.indexFromItem(child_item)
                    self._completerTree.setCurrentIndex(child_index)
                    self._completerTree.scrollTo(child_index)
            
            self._completerTree.show()
            self._completerTree.setUpdatesEnabled(True)
        else:
            self.setText(unwrapVariant(path))
def handleButtonClick ( self , button ) : path = button . property ( 'path' ) is_completer = button . property ( 'is_completer' ) if ( unwrapVariant ( is_completer ) ) : model = self . navigationModel ( ) if ( not model ) : return sep = self . separator ( ) path = nativestring ( unwrapVariant ( path ) ) item = model . itemByPath ( path , includeRoot = True ) if ( not item ) : return curr_path = nativestring ( self . text ( ) ) . strip ( self . separator ( ) ) curr_path = curr_path . replace ( path , '' ) . strip ( self . separator ( ) ) child_name = '' if ( curr_path ) : child_name = curr_path . split ( self . separator ( ) ) [ 0 ] index = model . indexFromItem ( item ) self . _completerTree . move ( QCursor . pos ( ) ) self . _completerTree . setRootIndex ( index ) self . _completerTree . verticalScrollBar ( ) . setValue ( 0 ) if ( child_name ) : child_item = None for i in range ( item . rowCount ( ) ) : child = item . child ( i ) if ( child . text ( ) == child_name ) : child_item = child break if ( child_item ) : child_index = model . indexFromItem ( child_item ) self . _completerTree . setCurrentIndex ( child_index ) self . _completerTree . scrollTo ( child_index ) self . _completerTree . show ( ) self . _completerTree . setUpdatesEnabled ( True ) else : self . setText ( unwrapVariant ( path ) )
Handle the event when a user clicks on one of the part buttons.
        
        :param      button | <QToolButton>