Example #1
0
 def test_show_uri_with_existing_window(self):
     PluginManager.instance = PluginManager()
     # Force an instance
     win = PluginWindow()
     qltk.show_uri("foo", "quodlibet:///prefs/plugins/Squeezebox Output")
     # TODO: proper assertions, etc
     win.destroy()
Example #2
0
    def Menu(self, library, songs):
        songs = ListWrapper(songs)

        attrs = [
            'plugin_song', 'plugin_songs', 'plugin_album', 'plugin_albums'
        ]

        if len(songs) == 1:
            attrs.append('plugin_single_song')

        last = (songs and songs[-1]) or None
        for song in songs:
            if song.album_key != last.album_key:
                break
            last = song
        else:
            attrs.append('plugin_single_album')

        items = []
        kinds = self.__plugins
        kinds.sort(key=lambda plugin: plugin.PLUGIN_ID)
        for Kind in kinds:
            usable = any(callable(getattr(Kind, s)) for s in attrs)
            if usable:
                try:
                    items.append(Kind(songs, library))
                except:
                    print_e(
                        "Couldn't initialise song plugin %s. Stack trace:" %
                        Kind)
                    errorhook()
        items = [i for i in items if i.initialized]

        if items:
            menu = Gtk.Menu()
            for item in items:
                try:
                    menu.append(item)
                    args = (library, songs)
                    if item.get_submenu():
                        for subitem in item.get_submenu().get_children():
                            subitem.connect('activate', self.__on_activate,
                                            item, *args)
                    else:
                        item.connect('activate', self.__on_activate, item,
                                     *args)
                except:
                    errorhook()
                    item.destroy()
            menu.append(SeparatorMenuItem())
            prefs = Gtk.MenuItem(label=_("Configure Plugins…"))
            prefs.connect("activate", lambda _: PluginWindow().show())
            menu.append(prefs)

        else:
            menu = None
        return menu
Example #3
0
 def test_plugin_win(self):
     win = PluginWindow()
     win.destroy()
Example #4
0
 def PluginPreferences(cls, parent):
     return PluginWindow()
Example #5
0
 def __plugins(self, activator):
     window = PluginWindow(self)
     window.show()
Example #6
0
 def plugin_window_cb(*args):
     window = PluginWindow(self)
     window.show()
 def plugin_window_cb(button):
     window = PluginWindow(self)
     window.show()
Example #8
0
 def test_show_uri_with_existing_window(self):
     PluginManager.instance = PluginManager()
     # Force an instance
     PluginWindow()
     qltk.show_uri("foo", "quodlibet:///prefs/plugins/Squeezebox Output")