Example #1
0
    def __init__(self, artist_ids, genre_ids):
        """
            Init ArtistView
            @param artist id as int (Current if None)
            @param genre id as int
        """
        ArtistAlbumsView.__init__(self, artist_ids, genre_ids)
        self._signal_id = None
        if len(artist_ids) > 1:
            self._artist_id = None
        else:
            self._artist_id = artist_ids[0]

        builder = Gtk.Builder()
        builder.add_from_resource('/org/gnome/Lollypop/ArtistView.ui')
        builder.connect_signals(self)
        self._jump_button = builder.get_object('jump-button')
        self._jump_button.set_tooltip_text(_("Go to current track"))
        self._spinner = builder.get_object('spinner')
        self.attach(builder.get_object('ArtistView'), 0, 0, 1, 1)
        if len(artist_ids) == 1:
            artist = Lp().artists.get_name(artist_ids[0])
        else:
            artist = _("Many artists")
        builder.get_object('artist').set_label(artist)
Example #2
0
    def __init__(self, artist_ids, genre_ids):
        """
            Init ArtistView
            @param artist id as int (Current if None)
            @param genre id as int
        """
        ArtistAlbumsView.__init__(self, artist_ids, genre_ids)
        self._signal_id = None
        if len(artist_ids) > 1:
            self._artist_id = None
        else:
            self._artist_id = artist_ids[0]

        builder = Gtk.Builder()
        builder.add_from_resource('/org/gnome/Lollypop/ArtistView.ui')
        builder.connect_signals(self)
        self._jump_button = builder.get_object('jump-button')
        self._jump_button.set_tooltip_text(_("Go to current track"))
        self._spinner = builder.get_object('spinner')
        self.attach(builder.get_object('ArtistView'), 0, 0, 1, 1)
        if len(artist_ids) == 1:
            artist = Lp().artists.get_name(artist_ids[0])
        else:
            artist = _("Many artists")
        builder.get_object('artist').set_label(artist)
Example #3
0
 def _on_current_changed(self, player):
     """
         Set playing button status
         @param player as Player
     """
     ArtistAlbumsView._on_current_changed(self, player)
     self._update_jump_button()
Example #4
0
 def _on_current_changed(self, player):
     """
         Set playing button status
         @param player as Player
     """
     ArtistAlbumsView._on_current_changed(self, player)
     self.__update_jump_button()
 def _on_populated(self, widget, idle_id):
     """
         Set jump button state
         @param widget as AlbumDetailedWidget
         @param idle_id as int
     """
     self.__update_jump_button()
     ArtistAlbumsView._on_populated(self, widget, idle_id)
Example #6
0
 def _on_populated(self, widget, widgets, scroll_value):
     """
         Set jump button state
         @param widget as AlbumDetailedWidget
         @param widgets as pending AlbumDetailedWidgets
         @param scroll value as float
     """
     self.__update_jump_button()
     ArtistAlbumsView._on_populated(self, widget, widgets, scroll_value)
Example #7
0
 def _on_album_finished(self, album, albums):
     """
         Add another album
         @param album as AlbumDetailedWidget
         @param [album ids as int]
     """
     if not albums:
         self._update_jump_button()
     ArtistAlbumsView._on_album_finished(self, album, albums)
Example #8
0
 def _on_populated(self, widget, widgets, scroll_value):
     """
         Set jump button state
         @param widget as AlbumDetailedWidget
         @param widgets as pending AlbumDetailedWidgets
         @param scroll value as float
     """
     self.__update_jump_button()
     ArtistAlbumsView._on_populated(self, widget, widgets, scroll_value)
Example #9
0
 def _on_value_changed(self, adj):
     """
         Update scroll value and check for lazy queue
         @param adj as Gtk.Adjustment
     """
     ArtistAlbumsView._on_value_changed(self, adj)
     if adj.get_value() == adj.get_lower():
         self._artwork.show()
     else:
         self._artwork.hide()
Example #10
0
    def __init__(self, artist_ids, genre_ids):
        """
            Init ArtistView
            @param artist id as int (Current if None)
            @param genre id as int
        """
        ArtistAlbumsView.__init__(self, artist_ids, genre_ids)
        self.__art_signal_id = None
        self.connect('realize', self.__on_realize)
        self.connect('unrealize', self.__on_unrealize)

        builder = Gtk.Builder()
        builder.add_from_resource('/org/gnome/Lollypop/ArtistView.ui')
        builder.connect_signals(self)
        self.__artwork = builder.get_object('artwork')
        self.__artwork_box = builder.get_object('artwork-box')
        self.__label = builder.get_object('artist')
        self.__jump_button = builder.get_object('jump-button')
        self.__jump_button.set_tooltip_text(_("Go to current track"))
        self.__add_button = builder.get_object('add-button')
        self.__play_button = builder.get_object('play-button')
        self.__grid = builder.get_object('header')
        if Lp().lastfm is None:
            builder.get_object('lastfm-button').hide()
        elif not get_network_available():
            builder.get_object('lastfm-button').set_sensitive(False)
            builder.get_object('lastfm-button').set_tooltip_text(
                                                  _("Network access disabled"))
        self._overlay.add_overlay(self.__grid)
        self.__empty = Gtk.Grid()
        self.__empty.show()
        self._albumbox.add(self.__empty)
        self._albumbox.set_row_spacing(20)

        self.__scale_factor = self.__artwork.get_scale_factor()
        self.__set_artwork()
        self.__set_add_icon()
        self.__on_lock_changed(Lp().player)

        artists = []
        for artist_id in artist_ids:
            artists.append(Lp().artists.get_name(artist_id))
        if Lp().settings.get_value('artist-artwork'):
            self.__label.set_markup(
                                "<span size='x-large' weight='bold'>" +
                                GLib.markup_escape_text(", ".join(artists)) +
                                "</span>")
        else:
            self.__label.set_markup(
                                "<span size='large' weight='bold'>" +
                                GLib.markup_escape_text(", ".join(artists)) +
                                "</span>")
Example #11
0
    def __init__(self, artist_ids, genre_ids):
        """
            Init ArtistView
            @param artist id as int (Current if None)
            @param genre id as int
        """
        ArtistAlbumsView.__init__(self, artist_ids, genre_ids, ArtSize.BIG)
        self.__art_signal_id = None
        self.connect("realize", self.__on_realize)
        self.connect("unrealize", self.__on_unrealize)

        builder = Gtk.Builder()
        builder.add_from_resource("/org/gnome/Lollypop/ArtistView.ui")
        builder.connect_signals(self)
        self.__artwork = builder.get_object("artwork")
        self.__artwork_box = builder.get_object("artwork-box")
        self.__label = builder.get_object("artist")
        self.__jump_button = builder.get_object("jump-button")
        self.__jump_button.set_tooltip_text(_("Go to current track"))
        self.__add_button = builder.get_object("add-button")
        self.__play_button = builder.get_object("play-button")
        self.__grid = builder.get_object("header")
        if Lp().lastfm is None:
            builder.get_object("lastfm-button").hide()
        elif not get_network_available():
            builder.get_object("lastfm-button").set_sensitive(False)
            builder.get_object("lastfm-button").set_tooltip_text(
                                                  _("Network access disabled"))
        self._overlay.add_overlay(self.__grid)
        self.__empty = Gtk.Grid()
        self.__empty.show()
        self._albumbox.add(self.__empty)
        self._albumbox.set_row_spacing(20)

        self.__scale_factor = self.__artwork.get_scale_factor()
        self.__set_artwork()
        self.__set_add_icon()
        self.__on_lock_changed(Lp().player)

        artists = []
        for artist_id in artist_ids:
            artists.append(Lp().artists.get_name(artist_id))
        if Lp().settings.get_value("artist-artwork"):
            self.__label.set_markup(
                                '<span size="x-large" weight="bold">' +
                                GLib.markup_escape_text(", ".join(artists)) +
                                "</span>")
        else:
            self.__label.set_markup(
                                '<span size="large" weight="bold">' +
                                GLib.markup_escape_text(", ".join(artists)) +
                                "</span>")
Example #12
0
    def __init__(self, album_id, genre_ids,
                 artist_ids, width=None, height=None, art_size=ArtSize.NONE):
        """
            Init popover
            @param album id as int
            @param genre ids as [int]
            @param artist ids as [int]
            @param width as int (None)
            @param height as int (None)
            @param art size as int
        """
        Gtk.Popover.__init__(self)
        self.get_style_context().add_class('box-shadow')
        view = ArtistAlbumsView(artist_ids, genre_ids, art_size)
        view.populate([album_id])

        # Get width/height from main window if None
        if height is None:
            height = Lp().window.get_size()[1] * 0.8
        if width is None:
            self.__width = Lp().window.get_size()[0] * 0.8
        else:
            self.__width = width
        # Get height requested by child
        requested_height = view.children[0].requested_height
        wanted_height = min(400, min(height, requested_height))
        view.set_property('height-request', wanted_height)
        view.show()
        self.add(view)
Example #13
0
    def __init__(self, artist_ids, genre_ids):
        """
            Init ArtistView
            @param artist id as int (Current if None)
            @param genre id as int
        """
        ArtistAlbumsView.__init__(self, artist_ids, genre_ids)
        self.__art_signal_id = None
        self.connect('realize', self.__on_realize)
        self.connect('unrealize', self.__on_unrealize)

        builder = Gtk.Builder()
        builder.add_from_resource('/org/gnome/Lollypop/ArtistView.ui')
        builder.connect_signals(self)
        self.__artwork = builder.get_object('artwork')
        self.__artwork_box = builder.get_object('artwork-box')
        self.__label = builder.get_object('artist')
        self.__jump_button = builder.get_object('jump-button')
        self.__jump_button.set_tooltip_text(_("Go to current track"))
        self.__add_button = builder.get_object('add-button')
        self.__play_button = builder.get_object('play-button')
        self.__grid = builder.get_object('header-grid')
        if Lp().lastfm is None or\
                not get_network_available():
            builder.get_object('lastfm-button').hide()
        header = builder.get_object('header')
        header.set_property('valign', Gtk.Align.START)
        self._overlay.add_overlay(header)
        self.__empty = Gtk.Grid()
        self.__empty.show()
        self._albumbox.add(self.__empty)
        self._albumbox.set_row_spacing(20)

        self.__set_artwork()
        self.__set_add_icon()
        self.__on_lock_changed(Lp().player)

        artists = []
        for artist_id in artist_ids:
            artists.append(Lp().artists.get_name(artist_id))
        if Lp().settings.get_value('artist-artwork'):
            self.__label.set_markup(
                "<span size='x-large' weight='bold'>" +
                GLib.markup_escape_text(", ".join(artists)) + "</span>")
        else:
            self.__label.set_markup(
                "<span size='large' weight='bold'>" +
                GLib.markup_escape_text(", ".join(artists)) + "</span>")
Example #14
0
    def __init__(self, album_id, genre_ids,
                 artist_ids, width=None, height=None, show_cover=True):
        """
            Init popover
            @param album id as int
            @param genre ids as [int]
            @param artist ids as [int]
            @param width as int (None)
            @param height as int (None)
            @param show cover as bool
        """
        Gtk.Popover.__init__(self)
        # Get width/height from main window if None
        if height is None:
            height = Lp().window.get_size()[1] * 0.8
        if width is None:
            self._width = Lp().window.get_size()[0] * 0.8
        else:
            self._width = width

        self.get_style_context().add_class('box-shadow')
        self._view = ArtistAlbumsView(artist_ids, genre_ids, show_cover)
        self._view.populate([album_id])
        wanted_height = min(400, min(height, self._view.requested_height))
        self._view.set_property('height-request', wanted_height)
        self._view.show()
        self.add(self._view)
Example #15
0
    def __init__(self, artist_id, genre_id):
        """
            Init ArtistView
            @param artist id as int (Current if None)
            @param genre id as int
        """
        ArtistAlbumsView.__init__(self, artist_id, genre_id)
        self._artist_id = artist_id
        self._genre_id = genre_id
        self._signal_id = None

        builder = Gtk.Builder()
        builder.add_from_resource("/org/gnome/Lollypop/ArtistView.ui")
        builder.connect_signals(self)
        self.attach(builder.get_object("ArtistView"), 0, 0, 1, 1)
        builder.get_object("artist").set_label(Lp().artists.get_name(artist_id))
Example #16
0
    def __init__(self, artist_id, genre_id):
        """
            Init ArtistView
            @param artist id as int (Current if None)
            @param genre id as int
        """
        ArtistAlbumsView.__init__(self, artist_id, genre_id)
        self._artist_id = artist_id
        self._genre_id = genre_id
        self._signal_id = None

        builder = Gtk.Builder()
        builder.add_from_resource('/org/gnome/Lollypop/ArtistView.ui')
        builder.connect_signals(self)
        self.attach(builder.get_object('ArtistView'), 0, 0, 1, 1)
        builder.get_object('artist').set_label(
                                            Lp().artists.get_name(artist_id))
Example #17
0
    def __init__(self, artist_ids, genre_ids):
        """
            Init ArtistView
            @param artist id as int (Current if None)
            @param genre id as int
        """
        ArtistAlbumsView.__init__(self, artist_ids, genre_ids)
        self._art_signal_id = None
        self.connect('realize', self._on_realize)
        self.connect('unrealize', self._on_unrealize)

        builder = Gtk.Builder()
        builder.add_from_resource('/org/gnome/Lollypop/ArtistView.ui')
        builder.connect_signals(self)
        self._artwork = builder.get_object('artwork')
        self._artwork_box = builder.get_object('artwork-box')
        self._label = builder.get_object('artist')
        self._jump_button = builder.get_object('jump-button')
        self._jump_button.set_tooltip_text(_("Go to current track"))
        self._add_button = builder.get_object('add-button')
        self._play_button = builder.get_object('play-button')
        self._grid = builder.get_object('header-grid')
        header = builder.get_object('header')
        header.set_property('valign', Gtk.Align.START)
        self._overlay.add_overlay(header)
        self._empty = Gtk.Grid()
        self._empty.show()
        self._albumbox.add(self._empty)
        self._albumbox.set_row_spacing(20)

        self._set_artwork()
        self._set_add_icon()
        self._on_lock_changed(Lp().player)

        artists = []
        for artist_id in artist_ids:
            artists.append(Lp().artists.get_name(artist_id))
        if Lp().settings.get_value('artist-artwork'):
            self._label.set_markup("<span size='x-large' weight='bold'>" +
                                   escape(", ".join(artists)) +
                                   "</span>")
        else:
            self._label.set_markup("<span size='large' weight='bold'>" +
                                   escape(", ".join(artists)) +
                                   "</span>")
Example #18
0
    def __init__(self, album_id, genre_ids,
                 artist_ids, width=None, height=None, art_size=ArtSize.NONE):
        """
            Init popover
            @param album id as int
            @param genre ids as [int]
            @param artist ids as [int]
            @param width as int (None)
            @param height as int (None)
            @param art size as int
        """
        Gtk.Popover.__init__(self)
        self.get_style_context().add_class('box-shadow')
        view = ArtistAlbumsView(artist_ids, genre_ids, art_size)
        view.populate([album_id])

        # Get width/height from main window if None
        if height is None:
            height = Lp().window.get_size()[1] * 0.8
        if width is None:
            self.__width = Lp().window.get_size()[0] * 0.8
        else:
            self.__width = width
        # Get height requested by child
        requested_height = view.children[0].requested_height
        wanted_height = min(400, min(height, requested_height))
        view.set_property('height-request', wanted_height)
        view.show()
        self.add(view)
 def _on_unmap(self, widget):
     """
         Disconnect signals
         @param widget as Gtk.Widget
     """
     ArtistAlbumsView._on_unmap(self, widget)
     if self.__art_signal_id is not None:
         App().art.disconnect(self.__art_signal_id)
         self.__art_signal_id = None
     if self.__party_signal_id is not None:
         App().player.disconnect(self.__party_signal_id)
         self.__party_signal_id = None
     if self.__added_signal_id is not None:
         App().player.disconnect(self.__added_signal_id)
         self.__added_signal_id = None
     if self.__removed_signal_id is not None:
         App().player.disconnect(self.__removed_signal_id)
         self.__removed_signal_id = None
Example #20
0
    def __init__(self, artist_id, genre_id):
        """
            Init ArtistView
            @param artist id as int (Current if None)
            @param genre id as int
        """
        ArtistAlbumsView.__init__(self, artist_id, genre_id)
        self._artist_id = artist_id
        self._genre_id = genre_id
        self._signal_id = None

        self._popover = InfosPopover(artist_id, False)
        builder = Gtk.Builder()
        builder.add_from_resource('/org/gnome/Lollypop/ArtistView.ui')
        builder.connect_signals(self)
        self.attach(builder.get_object('ArtistView'), 0, 0, 1, 1)
        builder.get_object('artist').set_label(
                                            Lp.artists.get_name(artist_id))
Example #21
0
 def _on_value_changed(self, adj):
     """
         Update scroll value and check for lazy queue
         @param adj as Gtk.Adjustment
     """
     ArtistAlbumsView._on_value_changed(self, adj)
     if adj.get_value() == adj.get_lower():
         if Lp().settings.get_value("artist-artwork"):
             self._artwork.show()
             self._artwork_box.show()
         self._grid.get_style_context().remove_class("header-borders")
         self._grid.get_style_context().add_class("header")
         self._grid.set_property("valign", Gtk.Align.CENTER)
     else:
         self._artwork.hide()
         self._artwork_box.hide()
         self._grid.get_style_context().add_class("header-borders")
         self._grid.get_style_context().remove_class("header")
         self._grid.set_property("valign", Gtk.Align.START)
 def _on_map(self, widget):
     """
         Connect signals and set active ids
         @param widget as Gtk.Widget
     """
     ArtistAlbumsView._on_map(self, widget)
     self.__on_album_changed(App().player)
     self.__art_signal_id = App().art.connect(
         "artist-artwork-changed", self.__on_artist_artwork_changed)
     self.__party_signal_id = App().player.connect("party-changed",
                                                   self.__on_album_changed)
     self.__added_signal_id = App().player.connect("album-added",
                                                   self.__on_album_changed)
     self.__removed_signal_id = App().player.connect(
         "album-removed", self.__on_album_changed)
     App().settings.set_value("state-one-ids",
                              GLib.Variant("ai", self._genre_ids))
     App().settings.set_value("state-two-ids",
                              GLib.Variant("ai", self._artist_ids))
     App().settings.set_value("state-three-ids", GLib.Variant("ai", []))
Example #23
0
 def _on_value_changed(self, adj):
     """
         Update scroll value and check for lazy queue
         @param adj as Gtk.Adjustment
     """
     ArtistAlbumsView._on_value_changed(self, adj)
     if adj.get_value() == adj.get_lower():
         if self.__artwork.props.surface is not None or\
                 self.__artwork.get_pixbuf() is not None:
             self.__artwork.show()
             self.__artwork_box.show()
         self.__grid.get_style_context().remove_class('header-borders')
         self.__grid.get_style_context().add_class('header')
     else:
         if self.__artwork.props.surface is not None or\
                 self.__artwork.get_pixbuf() is not None:
             self.__artwork.hide()
             self.__artwork_box.hide()
         self.__grid.get_style_context().add_class('header-borders')
         self.__grid.get_style_context().remove_class('header')
Example #24
0
 def _on_value_changed(self, adj):
     """
         Update scroll value and check for lazy queue
         @param adj as Gtk.Adjustment
     """
     ArtistAlbumsView._on_value_changed(self, adj)
     if adj.get_value() == adj.get_lower():
         if self.__artwork.props.surface is not None or\
                 self.__artwork.get_pixbuf() is not None:
             self.__artwork.show()
             self.__artwork_box.show()
         self.__grid.get_style_context().remove_class('header-borders')
         self.__grid.get_style_context().add_class('header')
     else:
         if self.__artwork.props.surface is not None or\
                 self.__artwork.get_pixbuf() is not None:
             self.__artwork.hide()
             self.__artwork_box.hide()
         self.__grid.get_style_context().add_class('header-borders')
         self.__grid.get_style_context().remove_class('header')
Example #25
0
    def __init__(self, artist_ids, genre_ids):
        """
            Init ArtistView
            @param artist id as int (Current if None)
            @param genre id as int
        """
        ArtistAlbumsView.__init__(self, artist_ids, genre_ids)
        self._signal_id = None
        self._artist_ids = artist_ids

        empty = Gtk.Grid()
        empty.set_property('height-request', ArtSize.ARTIST_SMALL * 2)
        empty.show()
        self._albumbox.add(empty)

        builder = Gtk.Builder()
        builder.add_from_resource('/org/gnome/Lollypop/ArtistView.ui')
        builder.connect_signals(self)
        self._artwork = builder.get_object('artwork')
        self._jump_button = builder.get_object('jump-button')
        self._jump_button.set_tooltip_text(_("Go to current track"))
        self._spinner = builder.get_object('spinner')
        header = builder.get_object('header')
        header.set_property('valign', Gtk.Align.START)
        self._overlay.add_overlay(header)
        self._overlay.set_overlay_pass_through(header, True)
        if len(artist_ids) == 1 and Lp().settings.get_value('artist-artwork'):
            artist = Lp().artists.get_name(artist_ids[0])
            for suffix in ["lastfm", "spotify", "wikipedia"]:
                uri = InfoCache.get_artwork(artist, suffix,
                                            ArtSize.ARTIST_SMALL * 2 *
                                            self._artwork.get_scale_factor())
                if uri is not None:
                    self._artwork.set_from_file(uri)
                    self._artwork.show()
                    break

        artists = []
        for artist_id in artist_ids:
            artists.append(Lp().artists.get_name(artist_id))
        builder.get_object('artist').set_label(", ".join(artists))
Example #26
0
    def __init__(self, artist_ids, genre_ids):
        """
            Init ArtistView
            @param artist id as int (Current if None)
            @param genre id as int
        """
        ArtistAlbumsView.__init__(self, artist_ids, genre_ids)
        if len(artist_ids) > 1:
            self._artist_id = None
        else:
            self._artist_id = artist_ids[0]
        self._signal_id = None

        builder = Gtk.Builder()
        builder.add_from_resource('/org/gnome/Lollypop/ArtistView.ui')
        builder.connect_signals(self)
        self.attach(builder.get_object('ArtistView'), 0, 0, 1, 1)
        artists = ""
        for artist_id in artist_ids:
            artists += Lp().artists.get_name(artist_id) + ", "
        builder.get_object('artist').set_label(artists[:-2])
Example #27
0
    def __init__(self, artist_ids, genre_ids):
        """
            Init ArtistView
            @param artist id as int (Current if None)
            @param genre id as int
        """
        ArtistAlbumsView.__init__(self, artist_ids, genre_ids)
        if len(artist_ids) > 1:
            self._artist_id = None
        else:
            self._artist_id = artist_ids[0]
        self._signal_id = None

        builder = Gtk.Builder()
        builder.add_from_resource('/org/gnome/Lollypop/ArtistView.ui')
        builder.connect_signals(self)
        self.attach(builder.get_object('ArtistView'), 0, 0, 1, 1)
        artists = ""
        for artist_id in artist_ids:
            artists += Lp().artists.get_name(artist_id) + ", "
        builder.get_object('artist').set_label(artists[:-2])
Example #28
0
 def __init__(self, album, width):
     """
         Init popover
         @param album as Album
         @param width as int
         @param art size as int
     """
     Popover.__init__(self)
     self.__width = width
     self.get_style_context().add_class("box-shadow")
     view = ArtistAlbumsView(album.artist_ids, album.genre_ids, False)
     view.populate([album])
     window_width = App().window.get_allocated_width()
     window_height = App().window.get_allocated_height()
     wanted_width = min(900, window_width * 0.5)
     wanted_height = max(200,
                         min(window_height * 0.5,
                             view.children[0].requested_height[0]))
     view.set_property("width-request", wanted_width)
     view.set_property("height-request", wanted_height)
     view.show()
     self.add(view)
 def _on_value_changed(self, adj):
     """
         Update scroll value and check for lazy queue
         @param adj as Gtk.Adjustment
     """
     ArtistAlbumsView._on_value_changed(self, adj)
     title_style_context = self._title_label.get_style_context()
     if adj.get_value() == adj.get_lower() and self.__show_artwork:
         height = self._banner.default_height
         self._artwork.show()
         title_style_context.remove_class("text-x-large")
         title_style_context.add_class("text-xx-large")
     else:
         height = self._banner.default_height // 3
         self._artwork.hide()
         title_style_context.remove_class("text-xx-large")
         title_style_context.add_class("text-x-large")
     # Make grid cover artwork
     # No idea why...
     self._banner.set_height(height)
     self._scrolled.get_vscrollbar().set_margin_top(height)
     self._buttons.set_size_request(-1, height + 1)
 def __init__(self, artist_ids, genre_ids):
     """
         Init ArtistView
         @param artist_id as int (Current if None)
         @param genre_id as int
     """
     view_type = ViewType.TWO_COLUMNS
     ArtistAlbumsView.__init__(self, artist_ids, genre_ids, view_type)
     self.__art_signal_id = None
     self.__allocation_timeout_id = None
     self.__width = 0
     self.__show_artwork = len(artist_ids) == 1 and\
         App().settings.get_value("artist-artwork")
     ArtistViewCommon.__init__(self)
     self._overlay.add_overlay(self._banner)
     if self.__show_artwork:
         self._title_label.get_style_context().add_class("text-xx-large")
     else:
         self._title_label.get_style_context().add_class("text-x-large")
     self._album_box.set_margin_start(MARGIN)
     self._album_box.set_margin_end(MARGIN)
     self.__set_artwork()
     self._scrolled.get_vscrollbar().set_margin_top(self._banner.height)
Example #31
0
    def __init__(self, artist_ids, genre_ids):
        """
            Init ArtistView
            @param artist id as int (Current if None)
            @param genre id as int
        """
        ArtistAlbumsView.__init__(self, artist_ids, genre_ids)
        self._art_signal_id = None
        self.connect("realize", self._on_realize)
        self.connect("unrealize", self._on_unrealize)

        builder = Gtk.Builder()
        builder.add_from_resource("/org/gnome/Lollypop/ArtistView.ui")
        builder.connect_signals(self)
        self._artwork = builder.get_object("artwork")
        self._artwork_box = builder.get_object("artwork-box")
        self._label = builder.get_object("artist")
        self._jump_button = builder.get_object("jump-button")
        self._jump_button.set_tooltip_text(_("Go to current track"))
        self._add_button = builder.get_object("add-button")
        self._grid = builder.get_object("header-grid")
        self._spinner = builder.get_object("spinner")
        header = builder.get_object("header")
        header.set_property("valign", Gtk.Align.START)
        self._overlay.add_overlay(header)
        self._empty = Gtk.Grid()
        self._empty.show()
        self._albumbox.add(self._empty)

        self._set_artwork()
        self._set_add_icon()

        artists = []
        for artist_id in artist_ids:
            artists.append(Lp().artists.get_name(artist_id))
        self._label.set_label(", ".join(artists))
Example #32
0
 def __init__(self, album_id, genre_ids, artist_ids):
     """
         Init view
         @param album id as int
         @param genre ids as [int]
         @param artist ids as [int]
     """
     Gtk.Grid.__init__(self)
     self.set_orientation(Gtk.Orientation.VERTICAL)
     back_button = Gtk.Button.new_from_icon_name("go-previous-symbolic",
                                                 Gtk.IconSize.MENU)
     back_button.set_tooltip_text(_("Go back"))
     back_button.connect('clicked', self.__on_back_button_clicked)
     back_button.set_property('halign', Gtk.Align.START)
     back_button.set_relief(Gtk.ReliefStyle.NONE)
     back_button.show()
     self.add(back_button)
     view = ArtistAlbumsView(artist_ids, genre_ids, ArtSize.HEADER)
     view.populate([album_id])
     view.show()
     self.add(view)
     self.show()