def __init__(self, artist, album, player, model, header_bar, selectionModeAllowed): Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL) self.player = player self.album = album self.artist = artist self.model = model self.model.connect('row-changed', self._model_row_changed) self.header_bar = header_bar self.selectionMode = False self.selectionModeAllowed = selectionModeAllowed self.songs = [] self.ui = Gtk.Builder() self.ui.add_from_resource('/org/gnome/Music/ArtistAlbumWidget.ui') GLib.idle_add(self._update_album_art) self.cover = self.ui.get_object('cover') self.cover.set_from_pixbuf(self.loadingIcon) self.songsGrid = self.ui.get_object('grid1') self.ui.get_object('title').set_label(album.get_title()) if album.get_creation_date(): self.ui.get_object('year').set_markup( '<span color=\'grey\'>(%s)</span>' % str(album.get_creation_date().get_year()) ) self.tracks = [] grilo.populate_album_songs(album, self.add_item) self.pack_start(self.ui.get_object('ArtistAlbumWidget'), True, True, 0)
def update(self, album): """Update the album widget. :param Grl.Media album: The grilo media album """ # reset view self._songs = [] self._create_model() for widget in self._disc_listbox.get_children(): self._disc_listbox.remove(widget) self._cover_stack.update(album) self._duration = 0 self._album_name = utils.get_album_title(album) artist = utils.get_artist_name(album) self._title_label.props.label = self._album_name self._title_label.props.tooltip_text = self._album_name self._artist_label.props.label = artist self._artist_label.props.tooltip_text = artist year = utils.get_media_year(album) if not year: year = '----' self._released_info_label.props.label = year self._set_composer_label(album) self._player.connect('song-changed', self._update_model) grilo.populate_album_songs(album, self.add_item)
def __init__(self, artist, album, player, model, header_bar, selectionModeAllowed): Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL) self.player = player self.album = album self.artist = artist self.model = model self.model.connect('row-changed', self._model_row_changed) self.header_bar = header_bar self.selectionMode = False self.selectionModeAllowed = selectionModeAllowed self.songs = [] self.ui = Gtk.Builder() self.ui.add_from_resource('/org/gnome/Music/ArtistAlbumWidget.ui') GLib.idle_add(self._update_album_art) self.cover = self.ui.get_object('cover') self.cover.set_from_pixbuf(self.loadingIcon) self.songsGrid = self.ui.get_object('grid1') self.ui.get_object('title').set_label(album.get_title()) if album.get_creation_date(): self.ui.get_object('year').set_markup( '<span color=\'grey\'>(%s)</span>' % str(album.get_creation_date().get_year())) self.tracks = [] grilo.populate_album_songs(album, self.add_item) self.pack_start(self.ui.get_object('ArtistAlbumWidget'), True, True, 0)
def __init__(self, media, player, model, header_bar, selection_mode_allowed, size_group=None, cover_size_group=None): super().__init__(orientation=Gtk.Orientation.HORIZONTAL) self._size_group = size_group self._cover_size_group = cover_size_group scale = self.get_scale_factor() self._cache = AlbumArtCache(scale) self._loading_icon_surface = DefaultIcon(scale).get( DefaultIcon.Type.loading, ArtSize.MEDIUM) self._media = media self._player = player self._artist = utils.get_artist_name(self._media) self._album_title = utils.get_album_title(self._media) self._model = model self._header_bar = header_bar self._selection_mode = False self._selection_mode_allowed = selection_mode_allowed self._songs = [] self._header_bar._select_button.connect( 'toggled', self._on_header_select_button_toggled) ui = Gtk.Builder() ui.add_from_resource('/org/gnome/Music/ArtistAlbumWidget.ui') self.cover = ui.get_object('cover') self.cover.set_from_surface(self._loading_icon_surface) self._disc_listbox = ui.get_object('disclistbox') self._disc_listbox.set_selection_mode_allowed( self._selection_mode_allowed) ui.get_object('title').set_label(self._album_title) creation_date = self._media.get_creation_date() if creation_date: year = creation_date.get_year() ui.get_object('year').set_markup( '<span color=\'grey\'>{}</span>'.format(year)) if self._size_group: self._size_group.add_widget(ui.get_object('box1')) if self._cover_size_group: self._cover_size_group.add_widget(self.cover) self.pack_start(ui.get_object('ArtistAlbumWidget'), True, True, 0) GLib.idle_add(self._update_album_art) grilo.populate_album_songs(self._media, self._add_item)
def add_songs(source, param, item, remaining, data=None): if item: selected_songs.append(item) if remaining == 0: self._album_index += 1 if self._album_index < len(albums): grilo.populate_album_songs(albums[self._album_index], add_songs) else: callback(selected_songs)
def add_songs(source, param, item, remaining, data=None): if item: selected_songs.append(item) if remaining == 0: self._album_index += 1 if self._album_index < len(albums): grilo.populate_album_songs( albums[self._album_index], add_songs) else: callback(selected_songs)
def __init__(self, media, player, model, header_bar, selection_mode_allowed, size_group=None, cover_size_group=None): super().__init__(orientation=Gtk.Orientation.HORIZONTAL) self._size_group = size_group self._cover_size_group = cover_size_group self._media = media self._player = player self._artist = utils.get_artist_name(self._media) self._album_title = utils.get_album_title(self._media) self._model = model self._header_bar = header_bar self._selection_mode = False self._selection_mode_allowed = selection_mode_allowed self._songs = [] self._cover_stack.props.size = Art.Size.MEDIUM self._cover_stack.update(self._media) allowed = self._selection_mode_allowed self._disc_list_box.props.selection_mode_allowed = allowed self.bind_property( 'selection-mode', self._disc_list_box, 'selection-mode', GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) self._title.props.label = self._album_title year = utils.get_media_year(self._media) if year: self._year.props.label = year if self._size_group: self._size_group.add_widget(self._album_box) if self._cover_size_group: self._cover_size_group.add_widget(self._cover_stack) grilo.populate_album_songs(self._media, self._add_item)
def update(self, album): """Update the album widget. :param Grl.Media album: The grilo media album """ # reset view self._songs = [] self._create_model() for widget in self._disc_listbox.get_children(): self._disc_listbox.remove(widget) self._cover_stack.update(album) self._duration = 0 self._album_name = utils.get_album_title(album) artist = utils.get_artist_name(album) self._title_label.props.label = self._album_name self._title_label.props.tooltip_text = self._album_name self._artist_label.props.label = artist self._artist_label.props.tooltip_text = artist year = utils.get_media_year(album) if not year: year = '----' self._released_info_label.props.label = year self._set_composer_label(album) self._album = album self._player.connect('song-changed', self._update_model) grilo.populate_album_songs(album, self.add_item)
def _get_selected_artists_albums_songs(self): grilo.populate_album_songs( self.artists_albums_selected[self.artists_albums_index], self._add_selected_artists_albums_songs) self.artists_albums_index += 1
def _get_selected_album_songs(self): grilo.populate_album_songs( self.albums_selected[self.albums_index].get_id(), self._add_selected_item) self.albums_index += 1