more robust positioning of cursor for latex

This commit is contained in:
Damien Elmes 2011-01-02 18:02:07 +09:00
parent 06d4fde294
commit 364773fa9d

View file

@ -756,48 +756,38 @@ class FactEditor(object):
runHook("colourChanged") runHook("colourChanged")
self.onChooseColour(txtcol) self.onChooseColour(txtcol)
def _needExtraWord(self):
ver = ui.main.QtConfig.qt_version >> 8
if ver == 0x404:
# qt4.4 behaviour is wrong
return False
return True
def insertLatex(self): def insertLatex(self):
w = self.focusedEdit() w = self.focusedEdit()
if w: if w:
selected = w.textCursor().selectedText() selected = w.textCursor().selectedText()
self.deck.mediaDir(create=True) self.deck.mediaDir(create=True)
cur = w.textCursor()
pos = cur.position()
w.insertHtml("[latex]%s[/latex]" % selected) w.insertHtml("[latex]%s[/latex]" % selected)
w.moveCursor(QTextCursor.PreviousWord) cur.setPosition(pos+7)
if self._needExtraWord(): w.setTextCursor(cur)
w.moveCursor(QTextCursor.PreviousWord)
w.moveCursor(QTextCursor.PreviousCharacter)
w.moveCursor(QTextCursor.PreviousCharacter)
def insertLatexEqn(self): def insertLatexEqn(self):
w = self.focusedEdit() w = self.focusedEdit()
if w: if w:
selected = w.textCursor().selectedText() selected = w.textCursor().selectedText()
self.deck.mediaDir(create=True) self.deck.mediaDir(create=True)
cur = w.textCursor()
pos = cur.position()
w.insertHtml("[$]%s[/$]" % selected) w.insertHtml("[$]%s[/$]" % selected)
w.moveCursor(QTextCursor.PreviousWord) cur.setPosition(pos+3)
if self._needExtraWord(): w.setTextCursor(cur)
w.moveCursor(QTextCursor.PreviousWord)
w.moveCursor(QTextCursor.PreviousCharacter)
w.moveCursor(QTextCursor.PreviousCharacter)
def insertLatexMathEnv(self): def insertLatexMathEnv(self):
w = self.focusedEdit() w = self.focusedEdit()
if w: if w:
selected = w.textCursor().selectedText() selected = w.textCursor().selectedText()
self.deck.mediaDir(create=True) self.deck.mediaDir(create=True)
cur = w.textCursor()
pos = cur.position()
w.insertHtml("[$$]%s[/$$]" % selected) w.insertHtml("[$$]%s[/$$]" % selected)
w.moveCursor(QTextCursor.PreviousWord) cur.setPosition(pos+4)
if self._needExtraWord(): w.setTextCursor(cur)
w.moveCursor(QTextCursor.PreviousWord)
w.moveCursor(QTextCursor.PreviousCharacter)
w.moveCursor(QTextCursor.PreviousCharacter)
def onMore(self, toggle=None): def onMore(self, toggle=None):
if toggle is None: if toggle is None: