mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2024-11-26 20:53:13 -06:00
#41: Implement keymap switching.
This commit is contained in:
parent
671e0e0bff
commit
b5f1294b82
@ -14,6 +14,7 @@ from extra.autocompletionUsers import settings
|
|||||||
from extra.AudioUploader import dropbox_transfer
|
from extra.AudioUploader import dropbox_transfer
|
||||||
from pubsub import pub
|
from pubsub import pub
|
||||||
import logging
|
import logging
|
||||||
|
import config_utils
|
||||||
log = logging.getLogger("Settings")
|
log = logging.getLogger("Settings")
|
||||||
|
|
||||||
class globalSettingsController(object):
|
class globalSettingsController(object):
|
||||||
@ -24,15 +25,34 @@ class globalSettingsController(object):
|
|||||||
self.needs_restart = False
|
self.needs_restart = False
|
||||||
self.is_started = True
|
self.is_started = True
|
||||||
|
|
||||||
|
def make_kmmap(self):
|
||||||
|
res={}
|
||||||
|
for i in os.listdir(paths.app_path('keymaps')):
|
||||||
|
if ".keymap" not in i:
|
||||||
|
continue
|
||||||
|
print paths.app_path('keymaps/'+i)
|
||||||
|
try:
|
||||||
|
res[config_utils.load_config(paths.app_path('keymaps/'+i))['info']['name']]=i
|
||||||
|
except:
|
||||||
|
log.exception("Exception while loading keymap " + i)
|
||||||
|
return res
|
||||||
def create_config(self):
|
def create_config(self):
|
||||||
|
self.kmmap=self.make_kmmap()
|
||||||
self.langs = languageHandler.getAvailableLanguages()
|
self.langs = languageHandler.getAvailableLanguages()
|
||||||
langs = []
|
langs = []
|
||||||
[langs.append(i[1]) for i in self.langs]
|
[langs.append(i[1]) for i in self.langs]
|
||||||
self.codes = []
|
self.codes = []
|
||||||
[self.codes.append(i[0]) for i in self.langs]
|
[self.codes.append(i[0]) for i in self.langs]
|
||||||
id = self.codes.index(config.app["app-settings"]["language"])
|
id = self.codes.index(config.app["app-settings"]["language"])
|
||||||
self.dialog.create_general(langs)
|
self.kmfriendlies=[]
|
||||||
|
self.kmnames=[]
|
||||||
|
for k,v in self.kmmap.items():
|
||||||
|
self.kmfriendlies.append(k)
|
||||||
|
self.kmnames.append(v)
|
||||||
|
self.kmid=self.kmnames.index(config.app['app-settings']['load_keymap'])
|
||||||
|
self.dialog.create_general(langs,self.kmfriendlies)
|
||||||
self.dialog.general.language.SetSelection(id)
|
self.dialog.general.language.SetSelection(id)
|
||||||
|
self.dialog.general.km.SetSelection(self.kmid)
|
||||||
self.dialog.set_value("general", "ask_at_exit", config.app["app-settings"]["ask_at_exit"])
|
self.dialog.set_value("general", "ask_at_exit", config.app["app-settings"]["ask_at_exit"])
|
||||||
|
|
||||||
self.dialog.set_value("general", "play_ready_sound", config.app["app-settings"]["play_ready_sound"])
|
self.dialog.set_value("general", "play_ready_sound", config.app["app-settings"]["play_ready_sound"])
|
||||||
@ -54,6 +74,10 @@ class globalSettingsController(object):
|
|||||||
config.app["app-settings"]["language"] = self.codes[self.dialog.general.language.GetSelection()]
|
config.app["app-settings"]["language"] = self.codes[self.dialog.general.language.GetSelection()]
|
||||||
languageHandler.setLanguage(config.app["app-settings"]["language"])
|
languageHandler.setLanguage(config.app["app-settings"]["language"])
|
||||||
self.needs_restart = True
|
self.needs_restart = True
|
||||||
|
if self.kmnames[self.dialog.general.km.GetSelection()] != config.app["app-settings"]["load_keymap"]:
|
||||||
|
config.app["app-settings"]["load_keymap"] =self.kmnames[self.dialog.general.km.GetSelection()]
|
||||||
|
self.needs_restart = True
|
||||||
|
|
||||||
if config.app["app-settings"]["use_invisible_keyboard_shorcuts"] != self.dialog.get_value("general", "use_invisible_shorcuts"):
|
if config.app["app-settings"]["use_invisible_keyboard_shorcuts"] != self.dialog.get_value("general", "use_invisible_shorcuts"):
|
||||||
config.app["app-settings"]["use_invisible_keyboard_shorcuts"] = self.dialog.get_value("general", "use_invisible_shorcuts")
|
config.app["app-settings"]["use_invisible_keyboard_shorcuts"] = self.dialog.get_value("general", "use_invisible_shorcuts")
|
||||||
pub.sendMessage("invisible-shorcuts-changed", registered=self.dialog.get_value("general", "use_invisible_shorcuts"))
|
pub.sendMessage("invisible-shorcuts-changed", registered=self.dialog.get_value("general", "use_invisible_shorcuts"))
|
||||||
|
@ -7,7 +7,7 @@ from multiplatform_widgets import widgets
|
|||||||
import output
|
import output
|
||||||
import config
|
import config
|
||||||
class general(wx.Panel, baseDialog.BaseWXDialog):
|
class general(wx.Panel, baseDialog.BaseWXDialog):
|
||||||
def __init__(self, parent, languages):
|
def __init__(self, parent, languages,keymaps):
|
||||||
super(general, self).__init__(parent)
|
super(general, self).__init__(parent)
|
||||||
sizer = wx.BoxSizer(wx.VERTICAL)
|
sizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
language = wx.StaticText(self, -1, _(u"Language"))
|
language = wx.StaticText(self, -1, _(u"Language"))
|
||||||
@ -29,9 +29,16 @@ class general(wx.Panel, baseDialog.BaseWXDialog):
|
|||||||
sizer.Add(self.disable_sapi5, 0, wx.ALL, 5)
|
sizer.Add(self.disable_sapi5, 0, wx.ALL, 5)
|
||||||
self.hide_gui = wx.CheckBox(self, -1, _(u"Hide GUI on launch"))
|
self.hide_gui = wx.CheckBox(self, -1, _(u"Hide GUI on launch"))
|
||||||
sizer.Add(self.hide_gui, 0, wx.ALL, 5)
|
sizer.Add(self.hide_gui, 0, wx.ALL, 5)
|
||||||
self.SetSizer(sizer)
|
kmbox = wx.BoxSizer(wx.VERTICAL)
|
||||||
|
km_label = wx.StaticText(self, -1, _(u"Keymap"))
|
||||||
|
self.km = wx.ComboBox(self, -1, choices=keymaps, style=wx.CB_READONLY)
|
||||||
|
self.km.SetSize(self.km.GetBestSize())
|
||||||
|
kmbox.Add(km_label, 0, wx.ALL, 5)
|
||||||
|
kmbox.Add(self.km, 0, wx.ALL, 5)
|
||||||
|
sizer.Add(kmbox, 0, wx.ALL, 5)
|
||||||
self.use_slow_audio_algo= wx.CheckBox(self, -1, _(U"Use slow audio tweet detection algorithm (improves audio tweet detection accuracy at the cost of performance)"))
|
self.use_slow_audio_algo= wx.CheckBox(self, -1, _(U"Use slow audio tweet detection algorithm (improves audio tweet detection accuracy at the cost of performance)"))
|
||||||
sizer.Add(self.use_slow_audio_algo, 0, wx.ALL, 5)
|
sizer.Add(self.use_slow_audio_algo, 0, wx.ALL, 5)
|
||||||
|
self.SetSizer(sizer)
|
||||||
|
|
||||||
class proxy(wx.Panel, baseDialog.BaseWXDialog):
|
class proxy(wx.Panel, baseDialog.BaseWXDialog):
|
||||||
|
|
||||||
@ -311,8 +318,8 @@ class configurationDialog(baseDialog.BaseWXDialog):
|
|||||||
self.sizer = wx.BoxSizer(wx.VERTICAL)
|
self.sizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
self.notebook = wx.Notebook(self.panel)
|
self.notebook = wx.Notebook(self.panel)
|
||||||
|
|
||||||
def create_general(self, languageList):
|
def create_general(self, languageList,keymaps):
|
||||||
self.general = general(self.notebook, languageList)
|
self.general = general(self.notebook, languageList,keymaps)
|
||||||
self.notebook.AddPage(self.general, _(u"General"))
|
self.notebook.AddPage(self.general, _(u"General"))
|
||||||
self.general.SetFocus()
|
self.general.SetFocus()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user