def _on_menu_button_clicked(self, button): """ Show album menu @param button as Gtk.Button """ from lollypop.widgets_menu import MenuBuilder from lollypop.menu_artist import ArtistMenu from lollypop.menu_similars import SimilarsMenu from lollypop.menu_artwork import ArtistArtworkMenu menu = ArtistMenu(self.__artist_ids[0], self.__storage_type, self.view_type, App().window.folded) menu_widget = MenuBuilder(menu, False) menu_widget.show() menu_ext = SimilarsMenu(self.__artist_ids[0]) menu_ext.show() menu_widget.add_widget(menu_ext) if App().window.folded: menu_ext2 = ArtistArtworkMenu(self.__artist_ids[0], self.view_type, True) menu_ext2.connect("hidden", self.__close_artwork_menu) menu_ext2.show() menu_widget.add_widget(menu_ext2) popup_widget(menu_widget, button, None, None, button)
def __popup_menu(self, y=None, relative=None): """ Show menu at y or row @param y as int @param relative as Gtk.Widget """ if self.__base_mask & SelectionListMask.SIDEBAR: menu = None row_id = None if relative is None: relative = self._box.get_row_at_y(y) if relative is not None: row_id = relative.id if row_id is None: from lollypop.menu_selectionlist import SelectionListMenu menu = SelectionListMenu(self, self.mask, App().window.folded) elif not App().settings.get_value("save-state"): from lollypop.menu_selectionlist import SelectionListRowMenu menu = SelectionListRowMenu(row_id, App().window.folded) if menu is not None: from lollypop.widgets_menu import MenuBuilder menu_widget = MenuBuilder(menu) menu_widget.show() popup_widget(menu_widget, relative, None, None, None)
def __on_menu_button_clicked(self, button): """ Save to playlist @param button as Gtk.Button """ from lollypop.widgets_menu import MenuBuilder from lollypop.menu_current_albums import CurrentAlbumsMenu menu = CurrentAlbumsMenu(App().window.folded) menu_widget = MenuBuilder(menu) menu_widget.show() popup_widget(menu_widget, button, None, None, button)
def _on_menu_button_clicked(self, button): """ Show playlist menu @param button as Gtk.Button """ from lollypop.widgets_menu import MenuBuilder from lollypop.menu_search import SearchMenu menu = SearchMenu(App().window.folded) menu_widget = MenuBuilder(menu) menu_widget.show() popup_widget(menu_widget, button, None, None, button)
def __on_menu_button_clicked(self, button): """ Show suggestions menu @param button as Gtk.Button """ from lollypop.menu_suggestions import SuggestionsMenu from lollypop.widgets_menu import MenuBuilder menu = SuggestionsMenu(App().window.folded) menu_widget = MenuBuilder(menu) menu_widget.show() popup_widget(menu_widget, button, None, None, button)
def __on_menu_button_clicked(self, button): """ Show playlist menu @param button as Gtk.Button """ from lollypop.menu_selectionlist import SelectionListMenu from lollypop.widgets_menu import MenuBuilder menu = SelectionListMenu(self.__view, SelectionListMask.PLAYLISTS, App().window.folded) menu_widget = MenuBuilder(menu) menu_widget.show() popup_widget(menu_widget, button, None, None, button)
def __popup_menu(self, x, y): """ Popup menu for album @param x as int @param y as int """ row = self._box.get_row_at_y(y) if row is None: return from lollypop.menu_objects import AlbumMenu from lollypop.widgets_menu import MenuBuilder menu = AlbumMenu(row.album, ViewType.ALBUM, self.view_type) menu_widget = MenuBuilder(menu) menu_widget.show() popup_widget(menu_widget, self._box, x, y, row)
def _on_menu_button_clicked(self, button): """ Show album menu @param button as Gtk.Button """ from lollypop.widgets_menu import MenuBuilder from lollypop.menu_objects import AlbumMenu from lollypop.menu_artwork import AlbumArtworkMenu menu = AlbumMenu(self.__album, self.__storage_type, self.view_type) menu_widget = MenuBuilder(menu) menu_widget.show() if App().window.folded: menu_ext = AlbumArtworkMenu(self.__album, self.view_type, True) menu_ext.connect("hidden", self.__close_artwork_menu) menu_ext.show() menu_widget.add_widget(menu_ext, -2) popup_widget(menu_widget, button, None, None, button)
def __on_banner_show_menu(self, banner, button): """ Show contextual menu @param banner as AlbumsBannerWidget @param button as Gtk.Button """ from lollypop.menu_objects import AlbumsMenu from lollypop.widgets_menu import MenuBuilder albums = [] for child in self._box.get_children(): if child.data.storage_type & StorageType.COLLECTION: albums.append(child.data) title = get_title_for_genres_artists(self._genre_ids, self._artist_ids) menu = AlbumsMenu(title, albums, self.view_type) menu_widget = MenuBuilder(menu) menu_widget.show() popup_widget(menu_widget, button, None, None, button)
def __popup_menu(self, child): """ Popup menu for playlist @param child as PlaylistRoundedWidget """ from lollypop.widgets_menu import MenuBuilder from lollypop.menu_playlist import PlaylistMenu, PlaylistMenuExt menu = PlaylistMenu(child.data, self.view_type, App().window.folded) menu_widget = MenuBuilder(menu) if child.data >= 0: menu_widget = MenuBuilder(menu) menu_ext = PlaylistMenuExt(child.data) menu_ext.show() menu_widget.add_widget(menu_ext) else: menu_widget = MenuBuilder(menu) menu_widget.show() popup_widget(menu_widget, child, None, None, None)
def __popup_menu(self): """ Show contextual menu """ if App().window.folded or not self.__artwork.get_visible(): return track = App().player.current_track if track.id >= 0: from lollypop.menu_objects import TrackMenu, TrackMenuExt from lollypop.widgets_menu import MenuBuilder menu = TrackMenu(track, ViewType.TOOLBAR) menu_widget = MenuBuilder(menu) menu_widget.show() if not track.storage_type & StorageType.EPHEMERAL: menu_ext = TrackMenuExt(track) menu_ext.show() menu_widget.add_widget(menu_ext) self.set_state_flags(Gtk.StateFlags.FOCUSED, False) popup_widget(menu_widget, self.__eventbox, None, None, None)
def _on_menu_button_clicked(self, button): """ Show playlist menu @param button as Gtk.Button """ from lollypop.widgets_menu import MenuBuilder from lollypop.menu_playlist import PlaylistMenu, PlaylistMenuExt menu = PlaylistMenu(self.__playlist_id, self.view_type, App().window.folded) menu_widget = MenuBuilder(menu) if self.__playlist_id >= 0: menu_widget = MenuBuilder(menu) menu_ext = PlaylistMenuExt(self.__playlist_id) menu_ext.show() menu_widget.add_widget(menu_ext) else: menu_widget = MenuBuilder(menu) menu_widget.show() popup_widget(menu_widget, button, None, None, button)
def _on_settings_button_toggled(self, button): """ Popup application menu @param button as Gtk.ToggleButton """ from lollypop.menu_application import ApplicationMenu if button.get_active(): if self.__playback_menu is not None: emit_signal(self.__playback_menu, "hidden", True) self.__app_menu = ApplicationMenu() self.__app_menu.show() popover = popup_widget(self.__app_menu, button, None, None, None) if popover is None: self.__app_menu.connect("hidden", self.__on_menu_hidden, button) else: popover.connect("hidden", self.__on_menu_hidden, button) elif self.__app_menu is not None and App().window.folded: emit_signal(self.__app_menu, "hidden", True)
def _on_badge_button_release(self, eventbox, event): """ Show artist artwork manager @param eventbox as Gtk.EventBox @param event as Gdk.Event """ from lollypop.widgets_menu import MenuBuilder from lollypop.menu_artwork import ArtistArtworkMenu menu = Gio.Menu() if App().window.folded: from lollypop.menu_header import ArtistMenuHeader menu.append_item(ArtistMenuHeader(self.__artist_ids[0])) menu_widget = MenuBuilder(menu, False) menu_widget.show() menu_ext = ArtistArtworkMenu(self.__artist_ids[0], self.view_type, False) menu_ext.connect("hidden", self.__close_artwork_menu) menu_ext.show() menu_widget.add_widget(menu_ext) self.__artwork_popup = popup_widget(menu_widget, eventbox, None, None, None)
def _on_primary_press_gesture(self, x, y, event): """ Show artwork popover @param x as int @param y as int @param event as Gdk.Event """ if self._view_type & ViewType.ALBUM: from lollypop.widgets_menu import MenuBuilder from lollypop.menu_artwork import AlbumArtworkMenu menu = Gio.Menu() if App().window.folded: from lollypop.menu_header import AlbumMenuHeader menu.append_item(AlbumMenuHeader(self._album)) menu_widget = MenuBuilder(menu, False) menu_widget.show() menu_ext = AlbumArtworkMenu(self._album, self._view_type, False) menu_ext.connect("hidden", self.__close_artwork_menu) menu_ext.show() menu_widget.add_widget(menu_ext, False) self._artwork_popup = popup_widget(menu_widget, self, None, None, None)
def _on_shuffle_button_toggled(self, button): """ Popup shuffle menu @param button as Gtk.ToggleButton """ if button.get_active(): if self.__app_menu is not None: emit_signal(self.__app_menu, "hidden", True) self.__party_submenu.remove_all() self.__init_party_submenu() from lollypop.widgets_menu import MenuBuilder self.__playback_menu = MenuBuilder(self.__shuffle_menu) self.__playback_menu.show() popover = popup_widget(self.__playback_menu, button, None, None, None) if popover is None: self.__playback_menu.connect("hidden", self.__on_menu_hidden, button) else: popover.connect("hidden", self.__on_menu_hidden, button) elif self.__playback_menu is not None and App().window.folded: emit_signal(self.__playback_menu, "hidden", True)
def popup_menu(self, parent, x=None, y=None): """ Popup menu for track @param parent as Gtk.Widget @param x as int @param y as int """ def on_hidden(widget, hide): self.set_indicator() from lollypop.menu_objects import TrackMenu, TrackMenuExt from lollypop.widgets_menu import MenuBuilder menu = TrackMenu(self._track, self.__view_type) menu_widget = MenuBuilder(menu) menu_widget.show() if not self._track.storage_type & StorageType.EPHEMERAL: menu_ext = TrackMenuExt(self._track) menu_ext.show() menu_widget.add_widget(menu_ext) popover = popup_widget(menu_widget, parent, x, y, self) if popover is None: menu_widget.connect("hidden", on_hidden) else: popover.connect("hidden", on_hidden)