Filters events for the popup tree widget.
        
        :param      object | <QObject>
                    event  | <QEvent>
        
        :retuen     <bool> | consumed

def eventFilter(self, object, event):
        """
        Filters events for the popup tree widget.
        
        :param      object | <QObject>
                    event  | <QEvent>
        
        :retuen     <bool> | consumed
        """
        try:
            is_lineedit = object == self.lineEdit()
        except RuntimeError:
            is_lineedit = False
        
        try:
            is_nav = object == self._navigator
        except RuntimeError:
            is_nav = False
        
        if not (is_nav or is_lineedit):
            return super(XOrbColumnNavigatorBox, self).eventFilter(object, event)
        
        if event.type() == event.KeyPress:
            # accept lookup
            if event.key() in (Qt.Key_Enter, Qt.Key_Return, Qt.Key_Tab):
                self.acceptColumn()
                event.accept()
                return True
                
            # cancel lookup
            elif event.key() == Qt.Key_Escape:
                self.hidePopup()
                event.accept()
                return True
            
            # update the search info
            else:
                self.lineEdit().keyPressEvent(event)
                event.accept()
                return True
        
        elif is_nav and event.type() == event.Show:
            object.resizeToContents()
            object.horizontalScrollBar().setValue(0)
            
        elif event.type() == event.KeyRelease:
            self.lineEdit().keyReleaseEvent(event)
            self.navigator().blockSignals(True)
            self.navigator().setCurrentSchemaPath(self.lineEdit().text())
            self.navigator().blockSignals(False)
            event.accept()
            return True
        
        elif event.type() == event.MouseButtonPress:
            local_pos = object.mapFromGlobal(event.globalPos())
            in_widget = object.rect().contains(local_pos)
            
            if not in_widget:
                self.hidePopup()
                event.accept()
                return True
            
        return super(XOrbColumnNavigatorBox, self).eventFilter(object, event)