aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesús Eduardo <heckyel@hyperbola.info>2018-01-13 14:17:09 -0500
committerJesús Eduardo <heckyel@hyperbola.info>2018-01-13 14:17:09 -0500
commitb3aea69fc02224bc8a50e6b9169f7e06d4fa5a8c (patch)
tree64df0f06a335cb0c47cd8f2467d6f6d13afef911
parentd1f4c7ee9ea35a750367d1867b52f6a3228fbea7 (diff)
downloadlibrevideoconverter-b3aea69fc02224bc8a50e6b9169f7e06d4fa5a8c.tar.lz
librevideoconverter-b3aea69fc02224bc8a50e6b9169f7e06d4fa5a8c.tar.xz
librevideoconverter-b3aea69fc02224bc8a50e6b9169f7e06d4fa5a8c.zip
pep8 en lvc/widgets/menus.py
-rw-r--r--lvc/widgets/menus.py50
1 files changed, 33 insertions, 17 deletions
diff --git a/lvc/widgets/menus.py b/lvc/widgets/menus.py
index 4e23b46..64e73aa 100644
--- a/lvc/widgets/menus.py
+++ b/lvc/widgets/menus.py
@@ -13,16 +13,20 @@ from lvc.widgets import widgetset
from lvc.widgets import app
from lvc.widgets.keyboard import (Shortcut, CTRL, ALT, SHIFT, CMD,
- MOD, RIGHT_ARROW, LEFT_ARROW, UP_ARROW, DOWN_ARROW, SPACE, ENTER, DELETE,
- BKSPACE, ESCAPE, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12)
+ MOD, RIGHT_ARROW, LEFT_ARROW, UP_ARROW,
+ DOWN_ARROW, SPACE, ENTER, DELETE, BKSPACE,
+ ESCAPE, F1, F2, F3, F4, F5, F6, F7, F8, F9,
+ F10, F11, F12)
# XXX hack:
+
def _(text, *params):
if params:
- return text % params[0]
+ return text % params[0]
return text
+
class MenuItem(widgetset.MenuItem):
"""Portable MenuItem class.
@@ -41,6 +45,7 @@ class MenuItem(widgetset.MenuItem):
raise ValueError("only support one group")
MenuItem.group_map[groups[0]].add(self)
+
class MenuItemFetcher(object):
"""Get MenuItems by their name quickly. """
@@ -55,21 +60,22 @@ class MenuItemFetcher(object):
self._cache[name] = menu_item
return menu_item
+
def get_app_menu():
"""Returns the default menu structure."""
app_name = "Libre Video Converter" # XXX HACK
- file_menu = widgetset.Menu(_("_File"), "FileMenu", [
- MenuItem(_("_Open"), "Open", Shortcut("o", MOD),
- groups=["NonPlaying"]),
- MenuItem(_("_Quit"), "Quit", Shortcut("q", MOD)),
- ])
- help_menu = widgetset.Menu(_("_Help"), "HelpMenu", [
- MenuItem(_("About %(name)s",
- {'name': app_name}),
- "About")
- ])
+ file_menu = widgetset.Menu(_("_File"), "FileMenu",
+ [MenuItem(_("_Open"), "Open",
+ Shortcut("o", MOD),
+ groups=["NonPlaying"]),
+ MenuItem(_("_Quit"), "Quit",
+ Shortcut("q", MOD)), ])
+ help_menu = widgetset.Menu(_("_Help"), "HelpMenu",
+ [MenuItem(_("About %(name)s",
+ {'name': app_name}),
+ "About")])
all_menus = [file_menu, help_menu]
return all_menus
@@ -77,11 +83,13 @@ def get_app_menu():
action_handlers = {}
group_action_handlers = {}
+
def on_menubar_activate(menubar, action_name):
callback = lookup_handler(action_name)
if callback is not None:
callback()
+
def lookup_handler(action_name):
"""For a given action name, get a callback to handle it. Return
None if no callback is found.
@@ -92,11 +100,12 @@ def lookup_handler(action_name):
retval = action_handlers.get(action_name)
return retval
+
def _lookup_group_handler(action_name):
try:
group_name, callback_arg = action_name.split('-', 1)
except ValueError:
- return None # split return tuple of length 1
+ return None # split return tuple of length 1
try:
group_handler = group_action_handlers[group_name]
except KeyError:
@@ -104,6 +113,7 @@ def _lookup_group_handler(action_name):
else:
return lambda: group_handler(callback_arg)
+
def action_handler(name):
"""Decorator for functions that handle menu actions."""
def decorator(func):
@@ -111,26 +121,31 @@ def action_handler(name):
return func
return decorator
+
def group_action_handler(action_prefix):
def decorator(func):
group_action_handlers[action_prefix] = func
return func
return decorator
+
# File menu
@action_handler("Open")
def on_open():
app.widgetapp.choose_file()
+
@action_handler("Quit")
def on_quit():
app.widgetapp.quit()
+
# Help menu
@action_handler("About")
def on_about():
app.widgetapp.about()
+
class MenuManager(signals.SignalEmitter):
"""Updates the menu based on the current selection.
@@ -149,7 +164,7 @@ class MenuManager(signals.SignalEmitter):
def __init__(self):
signals.SignalEmitter.__init__(self, 'menus-updated')
self.menu_item_fetcher = MenuItemFetcher()
- #self.subtitle_encoding_updater = SubtitleEncodingMenuUpdater()
+ # self.subtitle_encoding_updater = SubtitleEncodingMenuUpdater()
self.subtitle_encoding_updater = None
def setup_menubar(self, menubar):
@@ -160,8 +175,8 @@ class MenuManager(signals.SignalEmitter):
self.menu_updaters = []
def _set_play_pause(self):
- if ((not app.playback_manager.is_playing
- or app.playback_manager.is_paused)):
+ if ((not app.playback_manager.is_playing or
+ app.playback_manager.is_paused)):
label = _('Play')
else:
label = _('Pause')
@@ -204,6 +219,7 @@ class MenuManager(signals.SignalEmitter):
menu_updater.update(reasons)
self.emit('menus-updated', reasons)
+
class MenuUpdater(object):
"""Base class for objects that dynamically update menus."""
def __init__(self, menu_name):