Source code for timelinelib.wxgui.dialogs.shortcutseditor.view
# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Rickard Lindberg, Roger Lindberg
#
# This file is part of Timeline.
#
# Timeline is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Timeline is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Timeline. If not, see <http://www.gnu.org/licenses/>.
from timelinelib.wxgui.dialogs.shortcutseditor.controller import ShortcutsEditorDialogController
from timelinelib.wxgui.framework import Dialog
from timelinelib.wxgui.utils import display_warning_message
from timelinelib.wxgui.utils import PopupTextWindow
from timelinelib.db.utils import safe_locking
[docs]class ShortcutsEditorDialog(Dialog):
"""
<BoxSizerVertical>
<FlexGridSizer name="grid" rows="0" columns="2" border="ALL" >
<StaticText align="ALIGN_CENTER_VERTICAL" label="$(functions)" />
<ComboBox name="cb_functions" style="CB_READONLY" width="280" align="ALIGN_CENTER_VERTICAL"
event_EVT_COMBOBOX="on_selection_changed" />
<StaticText align="ALIGN_CENTER_VERTICAL" label="$(modifiers)" />
<ComboBox name="cb_modifiers" style="CB_READONLY" align="ALIGN_CENTER_VERTICAL" />
<StaticText align="ALIGN_CENTER_VERTICAL" label="$(shortcutkey)" />
<ComboBox name="cb_shortcut_keys" style="CB_READONLY" align="ALIGN_CENTER_VERTICAL" />
</FlexGridSizer>
<DialogButtonsApplyCloseSizer
border="LEFT|BOTTOM|RIGHT"
event_EVT_BUTTON__ID_APPLY="on_apply_clicked"
/>
</BoxSizerVertical>
"""
[docs] def __init__(self, parent, shortcut_config):
Dialog.__init__(self, ShortcutsEditorDialogController, parent, {
"functions": _("Functions:"),
"modifiers": _("Modifier:"),
"shortcutkey": _("Shortcut Key:"),
}, title=_("Edit Shortcuts"))
self.controller.on_init(shortcut_config)
[docs] def SetFunctions(self, choices):
self.cb_functions.AppendItems(choices)
self.cb_functions.SetValue(choices[0])
[docs] def SetModifiers(self, choices, value):
self.cb_modifiers.AppendItems(choices)
self.SetModifier(value)
[docs] def SetModifier(self, value):
self.cb_modifiers.SetValue(value)
[docs] def SetShortcutKeys(self, choices, value):
self.cb_shortcut_keys.AppendItems(choices)
self.SetShortcutKey(value)
[docs] def SetShortcutKey(self, value):
self.cb_shortcut_keys.SetValue(value)
[docs] def GetFunction(self):
return self.cb_functions.GetValue()
[docs] def GetShortcutKey(self):
return self.cb_shortcut_keys.GetValue()
[docs] def GetModifier(self):
return self.cb_modifiers.GetValue()
[docs] def DisplayWarningMessage(self, text):
display_warning_message(text)
[docs]def open_shortcuts_editor_dialog(main_frame, shortcut_controller):
def open_dialog():
dialog = ShortcutsEditorDialog(main_frame, shortcut_controller)
dialog.ShowModal()
dialog.Destroy()
safe_locking(main_frame.controller, open_dialog)