예제 #1
0
    def Menu(self, songs, library, items):
        if len(songs) == 1:
            item = qltk.MenuItem(_(u"_Download…"), Icons.NETWORK_WORKGROUP)
            item.connect('activate', self.__download, songs[0]("~uri"))
            item.set_sensitive(not songs[0].is_file)
        else:
            songs = filter(lambda s: not s.is_file, songs)
            uris = [song("~uri") for song in songs]
            item = qltk.MenuItem(_(u"_Download…"), Icons.NETWORK_WORKGROUP)
            item.connect('activate', self.__download_many, uris)
            item.set_sensitive(bool(songs))

        items.append([item])
        menu = SongsMenu(library, songs, items=items)
        return menu
예제 #2
0
    def __popup(self, library):
        songs = self.get_selected_songs()
        if not songs:
            return

        menu = SongsMenu(
            library, songs, queue=False, remove=False, delete=False,
            ratings=False)
        menu.preseparate()
        remove = Gtk.ImageMenuItem(Gtk.STOCK_REMOVE, use_stock=True)
        qltk.add_fake_accel(remove, "Delete")
        remove.connect('activate', self.__remove)
        menu.prepend(remove)
        menu.show_all()
        return self.popup_menu(menu, 0, Gtk.get_current_event_time())
예제 #3
0
 def Menu(self, songs, songlist, library):
     menu = SongsMenu(library, songs, parent=self)
     if len(songs) == 1:
         item = qltk.MenuItem(_("_Download..."), Gtk.STOCK_CONNECT)
         item.connect('activate', self.__download, songs[0]("~uri"))
         item.set_sensitive(not songs[0].is_file)
     else:
         songs = filter(lambda s: not s.is_file, songs)
         uris = [song("~uri") for song in songs]
         item = qltk.MenuItem(_("_Download..."), Gtk.STOCK_CONNECT)
         item.connect('activate', self.__download_many, uris)
         item.set_sensitive(bool(songs))
     menu.preseparate()
     menu.prepend(item)
     return menu
예제 #4
0
 def Menu(self, songs, songlist, library):
     menu = SongsMenu(library,
                      songs,
                      remove=self.__remove_songs,
                      delete=True,
                      parent=self)
     i = qltk.MenuItem(_("_Add to Library"), Gtk.STOCK_ADD)
     i.set_sensitive(False)
     i.connect('activate', self.__add_songs, songs)
     for song in songs:
         if song not in self.__glibrary:
             i.set_sensitive(True)
             break
     menu.preseparate()
     menu.prepend(i)
     return menu
예제 #5
0
 def test_devices(self):
     self.menu = SongsMenu(self.library,
                           self.songs,
                           plugins=False,
                           playlists=False,
                           queue=False,
                           devices=True,
                           remove=False,
                           delete=False,
                           edit=False,
                           ratings=False)
     from quodlibet import browsers
     if browsers.media.MediaDevices in browsers.browsers:
         self.failUnlessEqual(1, len(self.menu))
     else:
         self.failUnlessEqual(0, len(self.menu))
예제 #6
0
    def __popup(self, view, library):
        albums = self.__get_selected_albums()
        songs = self.__get_songs_from_albums(albums)

        items = []
        if self.__cover_column.get_visible():
            num = len(albums)
            button = MenuItem(
                ngettext("Reload album _cover", "Reload album _covers", num),
                Icons.VIEW_REFRESH)
            button.connect('activate', self.__refresh_album, view)
            items.append(button)

        menu = SongsMenu(library, songs, items=[items])
        menu.show_all()
        return view.popup_menu(menu, 0, Gtk.get_current_event_time())
예제 #7
0
파일: main.py 프로젝트: WammKD/quodlibet
    def __popup(self, view, library):

        albums = self.__get_selected_albums()
        songs = self.__get_songs_from_albums(albums)

        items = []
        num = len(albums)
        button = MenuItem(
            ngettext("Reload album _cover", "Reload album _covers", num),
            Icons.VIEW_REFRESH)
        button.connect('activate', self.__refresh_album, view)
        items.append(button)

        menu = SongsMenu(library, songs, items=[items])
        menu.show_all()
        popup_menu_at_widget(menu, view, Gdk.BUTTON_SECONDARY,
                             Gtk.get_current_event_time())
예제 #8
0
파일: media.py 프로젝트: thisfred/quodlibet
    def __popup_menu(self, view, library):
        model, iter = view.get_selection().get_selected()
        device = model[iter][0]

        if device.is_connected() and not self.__busy:
            songs = self.__list_songs(device)
        else:
            songs = []
        menu = SongsMenu(library, songs, playlists=False,
                         devices=False, remove=False)

        menu.preseparate()

        props = Gtk.ImageMenuItem(Gtk.STOCK_PROPERTIES, use_stock=True)
        connect_obj(props, 'activate', self.__properties, model[iter][0])
        props.set_sensitive(not self.__busy)
        menu.prepend(props)

        ren = qltk.MenuItem(_("_Rename"), Gtk.STOCK_EDIT)
        keyval, mod = Gtk.accelerator_parse("F2")
        ren.add_accelerator(
            'activate', self.accelerators, keyval, mod, Gtk.AccelFlags.VISIBLE)

        def rename(path):
            self.__render.set_property('editable', True)
            view.set_cursor(path, view.get_columns()[0], start_editing=True)
        connect_obj(ren, 'activate', rename, model.get_path(iter))
        menu.prepend(ren)

        menu.preseparate()

        eject = Gtk.ImageMenuItem(_("_Eject"), use_underline=True)
        eject.set_image(
            Gtk.Image.new_from_icon_name("media-eject", Gtk.IconSize.MENU))
        eject.set_sensitive(
            not self.__busy and device.eject and device.is_connected())
        connect_obj(eject, 'activate', self.__eject, None)
        menu.prepend(eject)

        refresh = Gtk.ImageMenuItem(Gtk.STOCK_REFRESH, use_stock=True)
        refresh.set_sensitive(device.is_connected())
        connect_obj(refresh, 'activate', self.__refresh, True)
        menu.prepend(refresh)

        menu.show_all()
        return view.popup_menu(menu, 0, Gtk.get_current_event_time())
예제 #9
0
    def __popup(self, view, library):
        albums = self.__get_selected_albums()
        songs = self.__get_songs_from_albums(albums)
        menu = SongsMenu(library, songs, parent=self)

        if self.__cover_column.get_visible():
            num = len(albums)
            button = MenuItem(
                ngettext("Reload album _cover", "Reload album _covers", num),
                Gtk.STOCK_REFRESH)
            gobject_weak(button.connect, 'activate',
                self.__refresh_album, view)
            menu.prepend(SeparatorMenuItem())
            menu.prepend(button)

        menu.show_all()
        return view.popup_menu(menu, 0, Gtk.get_current_event_time())
예제 #10
0
    def Menu(self, songs, library, items):

        i = qltk.MenuItem(_("_Add to Library"), Icons.LIST_ADD)
        i.set_sensitive(False)
        i.connect('activate', self.__add_songs, songs)
        for song in songs:
            if song not in self.__glibrary:
                i.set_sensitive(True)
                break

        items.append([i])
        menu = SongsMenu(library,
                         songs,
                         remove=self.__remove_songs,
                         delete=True,
                         items=items)
        return menu
예제 #11
0
    def __popup(self, widget, library):
        songs = self.get_selected_songs()
        if not songs:
            return

        menu = SongsMenu(library,
                         songs,
                         queue=False,
                         remove=False,
                         delete=False,
                         ratings=False)
        menu.preseparate()
        remove = MenuItem(_("_Remove"), Icons.LIST_REMOVE)
        qltk.add_fake_accel(remove, "Delete")
        remove.connect('activate', self.__remove)
        menu.prepend(remove)
        menu.show_all()
        return self.popup_menu(menu, 0, Gtk.get_current_event_time())
예제 #12
0
 def empty_menu_with(self,
                     plugins=False,
                     playlists=False,
                     queue=False,
                     remove=False,
                     delete=False,
                     edit=False,
                     ratings=False,
                     show_files=False,
                     removal_confirmer=None):
     return SongsMenu(self.library,
                      self.songs,
                      plugins=plugins,
                      playlists=playlists,
                      queue=queue,
                      remove=remove,
                      delete=delete,
                      edit=edit,
                      ratings=ratings,
                      show_files=show_files,
                      removal_confirmer=removal_confirmer)
예제 #13
0
파일: main.py 프로젝트: mkalinski/quodlibet
    def __popup_menu(self, view, library):
        model, itr = view.get_selection().get_selected()
        if itr is None:
            return
        songs = list(model[itr][0])
        songs = [s for s in songs if isinstance(s, AudioFile)]
        menu = SongsMenu(library,
                         songs,
                         playlists=False,
                         remove=False,
                         ratings=False)
        menu.preseparate()

        def _remove(model, itr):
            playlist = model[itr][0]
            response = confirm_remove_playlist_dialog_invoke(
                self, playlist, self.Confirmer)
            if response:
                playlist.delete()
                model.get_model().remove(model.convert_iter_to_child_iter(itr))
            else:
                print_d("Playlist removal cancelled through prompt")

        rem = MenuItem(_("_Delete"), Icons.EDIT_DELETE)
        connect_obj(rem, 'activate', _remove, model, itr)
        menu.prepend(rem)

        def _rename(path):
            self._start_rename(path)

        ren = qltk.MenuItem(_("_Rename"), Icons.EDIT)
        qltk.add_fake_accel(ren, "F2")
        connect_obj(ren, 'activate', _rename, model.get_path(itr))
        menu.prepend(ren)

        playlist = model[itr][0]
        PLAYLIST_HANDLER.populate_menu(menu, library, self, [playlist])
        menu.show_all()
        return view.popup_menu(menu, 0, Gtk.get_current_event_time())
예제 #14
0
파일: main.py 프로젝트: qwence/quodlibet
    def __popup_menu(self, view, library):
        model, itr = view.get_selection().get_selected()
        if itr is None:
            return
        songs = list(model[itr][0])
        songs = filter(lambda s: isinstance(s, AudioFile), songs)
        menu = SongsMenu(library,
                         songs,
                         playlists=False,
                         remove=False,
                         ratings=False)
        menu.preseparate()

        def _remove(model, itr):
            playlist = model[itr][0]
            dialog = ConfirmRemovePlaylistDialog(self, playlist)
            if dialog.run() == Gtk.ResponseType.YES:
                playlist.delete()
                model.get_model().remove(model.convert_iter_to_child_iter(itr))

        rem = MenuItem(_("_Delete"), Icons.EDIT_DELETE)
        connect_obj(rem, 'activate', _remove, model, itr)
        menu.prepend(rem)

        def _rename(path):
            self.__render.set_property('editable', True)
            view.set_cursor(path, view.get_columns()[0], start_editing=True)

        ren = qltk.MenuItem(_("_Rename"), Icons.EDIT)
        qltk.add_fake_accel(ren, "F2")
        connect_obj(ren, 'activate', _rename, model.get_path(itr))
        menu.prepend(ren)

        playlist = model[itr][0]
        PLAYLIST_HANDLER.populate_menu(menu, library, self, [playlist])
        menu.show_all()
        return view.popup_menu(menu, 0, Gtk.get_current_event_time())
예제 #15
0
파일: main.py 프로젝트: nkuttler/quodlibet
 def __popup(self, view, library):
     songs = self.__get_selected_songs(view.get_selection())
     menu = SongsMenu(library, songs)
     menu.show_all()
     return view.popup_menu(menu, 0, Gtk.get_current_event_time())
예제 #16
0
 def Menu(self, songs, library, items):
     return SongsMenu(library, songs, download=True, items=items)
예제 #17
0
 def test_simple(self):
     self.menu = SongsMenu(self.library, self.songs, plugins=False)
예제 #18
0
    def Menu(self, songs, library, items):
        """This method returns a Gtk.Menu, probably a SongsMenu. After this
        menu is returned the SongList may modify it further.
        """

        return SongsMenu(library, songs, delete=True, items=items)
예제 #19
0
 def __popup_menu(self, view, library):
     songs = self.__get_selected_songs(sort=True)
     menu = SongsMenu(library, songs, parent=self)
     menu.show_all()
     return view.popup_menu(menu, 0, Gtk.get_current_event_time())
예제 #20
0
파일: _base.py 프로젝트: ch1huizong/scode
 def Menu(self, songs, songlist, library):
     menu = SongsMenu(library, songs, delete=True, parent=songlist)
     return menu
예제 #21
0
 def test_empty(self):
     self.menu = SongsMenu(self.library, self.songs, plugins=False,
                           playlists=False, queue=False, devices=False,
                           remove=False, delete=False, edit=False,
                           ratings=False)
     self.failUnlessEqual(0, len(self.menu))