Mercurial > libervia-web
diff src/browser/sat_browser/game_radiocol.py @ 676:849ffb24d5bf frontends_multi_profiles
browser side: menus refactorisation:
- use of the new quick_frontends.quick_menus module, resulting in a big code simplification in Libervia
- menu are added in there respective modules: main menus are done directely in libervia_main, while tarot and radiocol menus are done in game_tarot and game_radiocol
- launchAction has the same signature as in QuickApp
- base_menu: there are now 2 classes to launch an action: MenuCmd which manage quick_menus classes, and SimpleCmd to launch a generic callback
- base_menu: MenuNode has been removed as logic is now in quick_menus
- base_menu: GenericMenuBar.update method can be called to fully (re)build the menus
- base_widget: removed WidgetSubMenuBar which is no more useful (GenericMenuBar do the same thing)
- plugin_menu_context is used in LiberviaWidget and other classes with menus to indicate which menu types must be used
- otr menus hooks are temporarily removed, will be fixed soon
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 17 Mar 2015 20:42:02 +0100 |
parents | b39a9eddfe56 |
children | e876f493dccc |
line wrap: on
line diff
--- a/src/browser/sat_browser/game_radiocol.py Tue Mar 17 20:28:41 2015 +0100 +++ b/src/browser/sat_browser/game_radiocol.py Tue Mar 17 20:42:02 2015 +0100 @@ -21,8 +21,9 @@ from sat.core.log import getLogger log = getLogger(__name__) -from sat.core.i18n import _ +from sat.core.i18n import _, D_ from sat_frontends.tools.misc import DEFAULT_MUC +from sat_frontends.tools import host_listener from constants import Const as C from pyjamas.ui.VerticalPanel import VerticalPanel @@ -40,6 +41,7 @@ import html_tools import file_tools +import dialog class MetadataPanel(FlexTable): @@ -320,3 +322,22 @@ def radiocolSongRejectedHandler(self, reason): Window.alert("Song rejected: %s" % reason) + + +## Menu + +def hostReady(host): + def onCollectiveRadio(self): + def callback(room_jid, contacts): + contacts = [unicode(contact) for contact in contacts] + room_jid_s = unicode(room_jid) if room_jid else '' + host.bridge.RadioCollective(contacts, room_jid_s, profile=C.PROF_KEY_NONE) + dialog.RoomAndContactsChooser(host, callback, ok_button="Choose", title="Collective Radio", visible=(False, True)) + + + def gotMenus(): + host.menus.addMenu(C.MENU_GLOBAL, (D_(u"Groups"), D_(u"Collective radio")), callback=onCollectiveRadio) + + host.addListener('gotMenus', gotMenus) + +host_listener.addListener(hostReady)