Пример #1
0
class QueuePage(NotebookPage):
    menu_provider_name = 'queue-tab-context'
    def __init__(self, container, player):
        NotebookPage.__init__(self)
        self.container = container
        self.player = player
        self.playlist = player.queue # a queue is a playlist object... 
        
        self.swindow = gtk.ScrolledWindow()
        self.swindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        self.pack_start(self.swindow, True, True)

        self.view = PlaylistView(self.player.queue, self.player)
        self.view.dragdrop_copyonly = True
        self.swindow.add(self.view)

        event.add_callback(self.on_length_changed, 'playlist_current_position_changed', self.player.queue)
        event.add_callback(self.on_length_changed, "playlist_tracks_added", self.player.queue)
        event.add_callback(self.on_length_changed, "playlist_tracks_removed", self.player.queue)

        self.show_all()

    def on_length_changed(self, *args):
        self.name_changed()
        if len(self.player.queue) == 0:
            self.tab.set_closable(True)
        else:
            self.container.show_queue(switch=False)
            self.tab.set_closable(False)


    ## NotebookPage API ##

    def focus(self):
        self.view.grab_focus()
    
    def get_page_name(self):
        qlen = self.player.queue.queue_length()
        if qlen == -1:
            return _("Queue")
        else:
            return _("Queue (%d)") % qlen

    def set_tab(self, tab):
        NotebookPage.set_tab(self, tab)
        tab.set_closable(not self.do_closing())

    def do_closing(self):
        """
            Allows closing only if the queue is empty
        """
        return len(self.player.queue) != 0
Пример #2
0
class QueuePage(PlaylistPageBase):

    def __init__(self, container, player):
        PlaylistPageBase.__init__(self)
        self.plcontainer = container
        self.player = player
        self.playlist = player.queue  # a queue is a playlist object...

        self.swindow = Gtk.ScrolledWindow()
        self.swindow.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        self.pack_start(self.swindow, True, True, 0)

        self.view = PlaylistView(self.player.queue, self.player)
        self.view.dragdrop_copyonly = True
        self.swindow.add(self.view)

        event.add_ui_callback(self.on_length_changed, 'playlist_current_position_changed', self.player.queue)
        event.add_ui_callback(self.on_length_changed, "playlist_tracks_added", self.player.queue)
        event.add_ui_callback(self.on_length_changed, "playlist_tracks_removed", self.player.queue)

        self.show_all()

    def on_length_changed(self, *args):
        self.name_changed()
        if len(self.player.queue) == 0:
            self.tab.set_closable(True)
        else:
            self.plcontainer.show_queue(switch=False)
            self.tab.set_closable(False)

    ## NotebookPage API ##

    def focus(self):
        self.view.grab_focus()

    def get_page_name(self):
        qlen = self.player.queue.queue_length()
        if qlen == -1:
            return _("Queue")
        else:
            return _("Queue (%d)") % qlen

    def set_tab(self, tab):
        super(QueuePage, self).set_tab(tab)
        tab.set_closable(not self.do_closing())

    def do_closing(self):
        """
            Allows closing only if the queue is empty
        """
        return len(self.player.queue) != 0

    ## End NotebookPage ##

    def on_saveas(self):
        exaile = main.exaile()
        name = dialogs.ask_for_playlist_name(
            exaile.gui.main.window, exaile.playlists)
        if name is not None:
            pl = playlist.Playlist(name, self.playlist[:])
            exaile.playlists.save_playlist(pl)
            self.plcontainer.create_tab_from_playlist(pl)
Пример #3
0
class QueuePage(PlaylistPageBase):
    
    def __init__(self, container, player):
        PlaylistPageBase.__init__(self)
        self.plcontainer = container
        self.player = player
        self.playlist = player.queue # a queue is a playlist object... 
        
        self.swindow = Gtk.ScrolledWindow()
        self.swindow.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        self.pack_start(self.swindow, True, True, 0)

        self.view = PlaylistView(self.player.queue, self.player)
        self.view.dragdrop_copyonly = True
        self.swindow.add(self.view)

        event.add_ui_callback(self.on_length_changed, 'playlist_current_position_changed', self.player.queue)
        event.add_ui_callback(self.on_length_changed, "playlist_tracks_added", self.player.queue)
        event.add_ui_callback(self.on_length_changed, "playlist_tracks_removed", self.player.queue)

        self.show_all()

    def on_length_changed(self, *args):
        self.name_changed()
        if len(self.player.queue) == 0:
            self.tab.set_closable(True)
        else:
            self.plcontainer.show_queue(switch=False)
            self.tab.set_closable(False)


    ## NotebookPage API ##

    def focus(self):
        self.view.grab_focus()
    
    def get_page_name(self):
        qlen = self.player.queue.queue_length()
        if qlen == -1:
            return _("Queue")
        else:
            return _("Queue (%d)") % qlen

    def set_tab(self, tab):
        super(QueuePage, self).set_tab(tab)
        tab.set_closable(not self.do_closing())

    def do_closing(self):
        """
            Allows closing only if the queue is empty
        """
        return len(self.player.queue) != 0

    ## End NotebookPage ##

    def on_saveas(self):
        exaile = main.exaile()
        name = dialogs.ask_for_playlist_name(
            exaile.gui.main.window, exaile.playlists)
        if name is not None:
            pl = playlist.Playlist(name, self.playlist[:])
            exaile.playlists.save_playlist(pl)
            self.plcontainer.create_tab_from_playlist(pl)