mirror of
https://github.com/ankitects/anki.git
synced 2025-11-12 23:57:13 -05:00
keyboard layout
This commit is contained in:
parent
c55660ef22
commit
fb36199b04
1 changed files with 33 additions and 25 deletions
|
|
@ -185,6 +185,7 @@ class Editor(object):
|
||||||
self.setupButtons()
|
self.setupButtons()
|
||||||
self.setupWeb()
|
self.setupWeb()
|
||||||
self.setupTags()
|
self.setupTags()
|
||||||
|
self.setupKeyboard()
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
removeHook("deckClosed", self.deckClosedHook)
|
removeHook("deckClosed", self.deckClosedHook)
|
||||||
|
|
@ -352,6 +353,7 @@ class Editor(object):
|
||||||
self.web.setHtml(_html % (getBase(self.mw.deck), anki.js.all),
|
self.web.setHtml(_html % (getBase(self.mw.deck), anki.js.all),
|
||||||
loadCB=self._loadFinished)
|
loadCB=self._loadFinished)
|
||||||
self.updateTags()
|
self.updateTags()
|
||||||
|
self.updateKeyboard()
|
||||||
else:
|
else:
|
||||||
self.widget.hide()
|
self.widget.hide()
|
||||||
|
|
||||||
|
|
@ -586,10 +588,7 @@ class Editor(object):
|
||||||
runHook("colourChanged")
|
runHook("colourChanged")
|
||||||
|
|
||||||
def onNextColour(self):
|
def onNextColour(self):
|
||||||
try:
|
self.colourDiag.focusWidget().nextInFocusChain().setFocus()
|
||||||
self.colourDiag.focusWidget().nextInFocusChain().setFocus()
|
|
||||||
except:
|
|
||||||
ui.utils.showInfo("Your Qt version is too old to support this.")
|
|
||||||
|
|
||||||
def onChooseColourKey(self):
|
def onChooseColourKey(self):
|
||||||
try:
|
try:
|
||||||
|
|
@ -678,6 +677,36 @@ class Editor(object):
|
||||||
self.mw.deck.media.dir(create=True)
|
self.mw.deck.media.dir(create=True)
|
||||||
self.web.eval("wrap('[$$]', '[/$$]');")
|
self.web.eval("wrap('[$$]', '[/$$]');")
|
||||||
|
|
||||||
|
# Keyboard layout
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
def setupKeyboard(self):
|
||||||
|
if sys.platform.startswith("win32") and self.mw.config['preserveKeyboard']:
|
||||||
|
a = ctypes.windll.user32.ActivateKeyboardLayout
|
||||||
|
a.restype = ctypes.c_void_p
|
||||||
|
a.argtypes = [ctypes.c_void_p, ctypes.c_uint]
|
||||||
|
g = ctypes.windll.user32.GetKeyboardLayout
|
||||||
|
g.restype = ctypes.c_void_p
|
||||||
|
g.argtypes = [ctypes.c_uint]
|
||||||
|
else:
|
||||||
|
a = g = None
|
||||||
|
self.activateKeyboard = a
|
||||||
|
self.getKeyboard = g
|
||||||
|
|
||||||
|
def updateKeyboard(self):
|
||||||
|
self.keyboardLayouts = {}
|
||||||
|
|
||||||
|
def saveKeyboard(self):
|
||||||
|
if not self.getKeyboard:
|
||||||
|
return
|
||||||
|
self.keyboardLayouts[self.currentField] = self.getKeyboard(0)
|
||||||
|
|
||||||
|
def restoreKeyboard(self):
|
||||||
|
if not self.getKeyboard:
|
||||||
|
return
|
||||||
|
if self.currentField in self.keyboardLayouts:
|
||||||
|
self.activateKeyboard(self.keyboardLayouts[self.currentField], 0)
|
||||||
|
|
||||||
# Pasting, drag & drop, and keyboard layouts
|
# Pasting, drag & drop, and keyboard layouts
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
|
|
@ -819,24 +848,3 @@ class EditorWebView(AnkiWebView):
|
||||||
if not self.__tmpDir:
|
if not self.__tmpDir:
|
||||||
self.__tmpDir = tempfile.mkdtemp(prefix="anki")
|
self.__tmpDir = tempfile.mkdtemp(prefix="anki")
|
||||||
return self.__tmpDir
|
return self.__tmpDir
|
||||||
|
|
||||||
# if sys.platform.startswith("win32"):
|
|
||||||
# ActivateKeyboardLayout = ctypes.windll.user32.ActivateKeyboardLayout
|
|
||||||
# ActivateKeyboardLayout.restype = ctypes.c_void_p
|
|
||||||
# ActivateKeyboardLayout.argtypes = [ctypes.c_void_p, ctypes.c_uint]
|
|
||||||
# GetKeyboardLayout = ctypes.windll.user32.GetKeyboardLayout
|
|
||||||
# GetKeyboardLayout.restype = ctypes.c_void_p
|
|
||||||
# GetKeyboardLayout.argtypes = [ctypes.c_uint]
|
|
||||||
|
|
||||||
# def focusOutEvent(self, evt):
|
|
||||||
# if self.mw.config['preserveKeyboard'] and sys.platform.startswith("win32"):
|
|
||||||
# self._ownLayout = GetKeyboardLayout(0)
|
|
||||||
# ActivateKeyboardLayout(self._programLayout, 0)
|
|
||||||
# self.emit(SIGNAL("lostFocus"))
|
|
||||||
|
|
||||||
# def focusInEvent(self, evt):
|
|
||||||
# if self.mw.config['preserveKeyboard'] and sys.platform.startswith("win32"):
|
|
||||||
# self._programLayout = GetKeyboardLayout(0)
|
|
||||||
# if self._ownLayout == None:
|
|
||||||
# self._ownLayout = self._programLayout
|
|
||||||
# ActivateKeyboardLayout(self._ownLayout, 0)
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue