Ejemplo n.º 1
0
 def _on_album_activated(self, flowbox, child):
     """
         Show Context view for activated album
         @param flowbox as Gtk.Flowbox
         @param child as Gtk.FlowboxChild
     """
     album_widget = child.get_child()
     cover = album_widget.get_cover()
     if cover is None:
         return
     # If widget top not on screen, popover will fail to show
     # FIXME: Report a bug and check always true
     (x, y) = child.translate_coordinates(self._scrolled, 0, 0)
     if y < 0:
         y = child.translate_coordinates(self._albumbox, 0, 0)[1]
         self._scrolled.get_allocation().height + y
         self._scrolled.get_vadjustment().set_value(y)
     if self._press_rect is not None:
         pop_menu = AlbumMenu(Album(album_widget.get_id()))
         popover = Gtk.Popover.new_from_model(cover, pop_menu)
         popover.set_position(Gtk.PositionType.BOTTOM)
         popover.set_pointing_to(self._press_rect)
     else:
         popover = AlbumPopoverWidget(album_widget.get_id(),
                                      self._genre_ids,
                                      self._artist_ids,
                                      self.get_allocation().width,
                                      False)
         popover.set_relative_to(cover)
         popover.set_position(Gtk.PositionType.BOTTOM)
     popover.connect('closed', self._on_popover_closed, cover)
     popover.show()
     cover.set_opacity(0.9)
     album_widget.update_overlay()