Exemplo n.º 1
0
    def __onDirectionKey(self,event):
        key = event.key()
        modifiers = event.modifiers()
        
        oldCursorIndexPos = self.cursor().getCursorIndexPos()
        if ( FUF.hasModifier(modifiers) == False ) or ( FUF.hasCtrlModifier(modifiers) == False ):
            dictMap = { str(QtCore.Qt.Key_Left) :self.document().moveIndexPosLeft   , \
                        str(QtCore.Qt.Key_Right):self.document().moveIndexPosRight  , \
                        str(QtCore.Qt.Key_Up)   :self.document().moveIndexPosUp     , \
                        str(QtCore.Qt.Key_Down) :self.document().moveIndexPosDown  }
            newCursorIndexPos = dictMap[str(key)](oldCursorIndexPos)

        elif FUF.hasCtrlModifier(modifiers):
            if key == QtCore.Qt.Key_Up:
                self.showLineNumberAsTop(self.settings().getStartDisLineNumber()-1)
                return 
            elif key == QtCore.Qt.Key_Down:
                self.showLineNumberAsTop(self.settings().getStartDisLineNumber()+1)
                return 
            
            if key == QtCore.Qt.Key_Left:
                newCursorIndexPos = self.document().moveIndexPosLeftByWord(oldCursorIndexPos)
            elif key == QtCore.Qt.Key_Right:
                newCursorIndexPos = self.document().moveIndexPosRightByWord(oldCursorIndexPos)
        
        
        self.cursor().setGlobalCursorPos(newCursorIndexPos)
        if FUF.hasShiftModifier(event.modifiers()) == True:
            self.selectedTextManager().addSelectTextIndexPos(oldCursorIndexPos, newCursorIndexPos)
        else:
            self.selectedTextManager().clearSelectedText()
        self.update()