Пример #1
0
 def eventFilter( self, obj, event ):
     """
     Filters particular events for a given QObject through this class. \
     Will use this to intercept events to the completer tree widget while \
     filtering.
     
     :param      obj     | <QObject>
                 event   | <QEvent>
     
     :return     <bool> consumed
     """
     if ( not obj == self._completerTree ):
         return False
     
     if ( event.type() != event.KeyPress ):
         return False
         
     if ( event.key() == Qt.Key_Escape ):
         QToolTip.hideText()
         self.cancelCompletion()
         return False
     
     elif ( event.key() in (Qt.Key_Enter, Qt.Key_Return, Qt.Key_Tab) ):
         self.acceptCompletion()
         return False
     
     elif ( event.key() in (Qt.Key_Up, 
                            Qt.Key_Down) ):
         
         return False
     
     else:
         self.keyPressEvent(event)
         
         # update the completer
         cursor   = self.textCursor()
         text     = projex.text.toUtf8(cursor.block().text())
         text     = text[:cursor.columnNumber()].split(' ')[-1]
         text     = text.split('.')[-1]
         
         self._completerTree.blockSignals(True)
         self._completerTree.setUpdatesEnabled(False)
         
         self._completerTree.setCurrentItem(None)
         
         for i in range(self._completerTree.topLevelItemCount()):
             item = self._completerTree.topLevelItem(i)
             if projex.text.toUtf8(item.text(0)).startswith(text):
                 self._completerTree.setCurrentItem(item)
                 break
         
         self._completerTree.blockSignals(False)
         self._completerTree.setUpdatesEnabled(True)
         
         return True
Пример #2
0
    def eventFilter(self, obj, event):
        """
        Filters particular events for a given QObject through this class. \
        Will use this to intercept events to the completer tree widget while \
        filtering.
        
        :param      obj     | <QObject>
                    event   | <QEvent>
        
        :return     <bool> consumed
        """
        if not obj == self._completerTree:
            return False

        if event.type() != event.KeyPress:
            return False

        if event.key() == Qt.Key_Escape:
            QToolTip.hideText()
            self.cancelCompletion()
            return False

        elif event.key() in (Qt.Key_Enter, Qt.Key_Return, Qt.Key_Tab):
            self.acceptCompletion()
            return False

        elif event.key() in (Qt.Key_Up, Qt.Key_Down, Qt.Key_PageUp,
                             Qt.Key_PageDown):
            return False

        else:
            self.keyPressEvent(event)

            # update the completer
            cursor = self.textCursor()
            text = projex.text.nativestring(cursor.block().text())
            text = text[:cursor.columnNumber()].split(' ')[-1]
            text = text.split('.')[-1]

            self._completerTree.blockSignals(True)
            self._completerTree.setUpdatesEnabled(False)

            self._completerTree.setCurrentItem(None)

            for i in range(self._completerTree.topLevelItemCount()):
                item = self._completerTree.topLevelItem(i)
                if projex.text.nativestring(item.text(0)).startswith(text):
                    self._completerTree.setCurrentItem(item)
                    break

            self._completerTree.blockSignals(False)
            self._completerTree.setUpdatesEnabled(True)

            return True
Пример #3
0
    def formatText(self, text):
        """
        Formats the inputed text based on the input format assigned to this
        line edit.
        
        :param      text | <str>
        
        :return     <str> | frormatted text
        """
        format = self.inputFormat()
        if format == XLineEdit.InputFormat.Normal:
            return text

        text = projex.text.nativestring(text)
        if format == XLineEdit.InputFormat.CamelHump:
            return projex.text.camelHump(text)

        elif format == XLineEdit.InputFormat.Pretty:
            return projex.text.pretty(text)

        elif format == XLineEdit.InputFormat.Underscore:
            return projex.text.underscore(text)

        elif format == XLineEdit.InputFormat.Dash:
            return projex.text.dashed(text)

        elif format == XLineEdit.InputFormat.ClassName:
            return projex.text.classname(text)

        elif format == XLineEdit.InputFormat.NoSpaces:
            return projex.text.joinWords(text, self.spacer())

        elif format == XLineEdit.InputFormat.Capitalize:
            return text.capitalize()

        elif format == XLineEdit.InputFormat.Uppercase:
            return text.upper()

        elif format == XLineEdit.InputFormat.Lowercase:
            return text.lower()

        elif format == XLineEdit.InputFormat.Package:
            return '.'.join(
                map(lambda x: x.lower(),
                    map(projex.text.classname, text.split('.'))))

        return text
Пример #4
0
 def formatText(self, text):
     """
     Formats the inputed text based on the input format assigned to this
     line edit.
     
     :param      text | <str>
     
     :return     <str> | frormatted text
     """
     format = self.inputFormat()
     if format == XLineEdit.InputFormat.Normal:
         return text
     
     text = projex.text.nativestring(text)
     if format == XLineEdit.InputFormat.CamelHump:
         return projex.text.camelHump(text)
     
     elif format == XLineEdit.InputFormat.Pretty:
         return projex.text.pretty(text)
     
     elif format == XLineEdit.InputFormat.Underscore:
         return projex.text.underscore(text)
     
     elif format == XLineEdit.InputFormat.Dash:
         return projex.text.dashed(text)
     
     elif format == XLineEdit.InputFormat.ClassName:
         return projex.text.classname(text)
     
     elif format == XLineEdit.InputFormat.NoSpaces:
         return projex.text.joinWords(text, self.spacer())
     
     elif format == XLineEdit.InputFormat.Capitalize:
         return text.capitalize()
     
     elif format == XLineEdit.InputFormat.Uppercase:
         return text.upper()
     
     elif format == XLineEdit.InputFormat.Lowercase:
         return text.lower()
     
     elif format == XLineEdit.InputFormat.Package:
         return '.'.join(map(lambda x: x.lower(),
                         map(projex.text.classname, text.split('.'))))
     
     return text