def __init__(self, app): """Initialize the main window. :param Gtk.Application app: Application object """ super().__init__(application=app, title=_("Music")) self._settings = app.props.settings self.add_action(self._settings.create_action('repeat')) select_all = Gio.SimpleAction.new('select_all', None) select_all.connect('activate', self._select_all) self.add_action(select_all) select_none = Gio.SimpleAction.new('select_none', None) select_none.connect('activate', self._select_none) self.add_action(select_none) self.set_size_request(200, 100) WindowPlacement(self) self.prev_view = None self.curr_view = None self._player = app.props.player self._setup_view() MediaKeys(self._player, self) grilo.connect('changes-pending', self._on_changes_pending)
def __init__(self, app): DBusGMainLoop(set_as_default=True) name = dbus.service.BusName('org.mpris.MediaPlayer2.GnomeMusic', dbus.SessionBus()) dbus.service.Object.__init__(self, name, '/org/mpris/MediaPlayer2') self.app = app self.player = app.get_active_window().player self.player.connect('current-changed', self._on_current_changed) self.player.connect('thumbnail-updated', self._on_thumbnail_updated) self.player.connect('playback-status-changed', self._on_playback_status_changed) self.player.connect('repeat-mode-changed', self._on_repeat_mode_changed) self.player.connect('volume-changed', self._on_volume_changed) self.player.connect('prev-next-invalidated', self._on_prev_next_invalidated) self.player.connect('seeked', self._on_seeked) self.player.connect('playlist-changed', self._on_playlist_changed) playlists = Playlists.get_default() playlists.connect('playlist-created', self._on_playlists_count_changed) playlists.connect('playlist-deleted', self._on_playlists_count_changed) grilo.connect('ready', self._on_grilo_ready) self.playlists = [] self.playlist = None self.playlist_insert_handler = 0 self.playlist_delete_handler = 0 self.first_song_handler = 0
def __init__(self, app): self.con = Gio.bus_get_sync(Gio.BusType.SESSION, None) Gio.bus_own_name_on_connection(self.con, 'org.mpris.MediaPlayer2.GnomeMusic', Gio.BusNameOwnerFlags.NONE, None, None) super().__init__(self.con, '/org/mpris/MediaPlayer2') self.app = app self.player = app.get_active_window().player self.player.connect('current-changed', self._on_current_changed) self.player.connect('thumbnail-updated', self._on_thumbnail_updated) self.player.connect('playback-status-changed', self._on_playback_status_changed) self.player.connect('repeat-mode-changed', self._on_repeat_mode_changed) self.player.connect('volume-changed', self._on_volume_changed) self.player.connect('prev-next-invalidated', self._on_prev_next_invalidated) self.player.connect('seeked', self._on_seeked) self.player.connect('playlist-changed', self._on_playlist_changed) playlists = Playlists.get_default() playlists.connect('playlist-created', self._on_playlists_count_changed) playlists.connect('playlist-deleted', self._on_playlists_count_changed) grilo.connect('ready', self._on_grilo_ready) self.playlists = [] self.playlist = None self.playlist_insert_handler = 0 self.playlist_delete_handler = 0 self.first_song_handler = 0
def __init__(self): super().__init__() self.tracker = TrackerWrapper().tracker self._static_playlists = StaticPlaylists() grilo.connect('ready', self._on_grilo_ready)
def __init__(self, app): self.con = Gio.bus_get_sync(Gio.BusType.SESSION, None) Gio.bus_own_name_on_connection(self.con, 'org.mpris.MediaPlayer2.GnomeMusic', Gio.BusNameOwnerFlags.NONE, None, None) super().__init__(self.con, '/org/mpris/MediaPlayer2') self.app = app self.player = app.get_active_window()._player self.player.connect('song-changed', self._on_current_song_changed) self.player.connect('notify::state', self._on_player_state_changed) self.player.connect('notify::repeat-mode', self._on_repeat_mode_changed) self.player.connect('volume-changed', self._on_volume_changed) self.player.connect('prev-next-invalidated', self._on_prev_next_invalidated) self.player.connect('seek-finished', self._on_seek_finished) self.player.connect('playlist-changed', self._on_player_playlist_changed) self.player_toolbar = app.get_active_window()._player_toolbar self.player_toolbar.connect('thumbnail-updated', self._on_thumbnail_updated) playlists = Playlists.get_default() playlists.connect('playlist-created', self._on_playlists_count_changed) playlists.connect('playlist-deleted', self._on_playlists_count_changed) grilo.connect('ready', self._on_grilo_ready) self.playlists = [] self._player_previous_type = None self._path_list = [] self._metadata_list = []
def __init__(self, app): super().__init__(application=app, title=_("Music")) self.connect('focus-in-event', self._windows_focus_cb) self.settings = Gio.Settings.new('org.gnome.Music') self.add_action(self.settings.create_action('repeat')) self.set_size_request(200, 100) self.set_default_icon_name('gnome-music') self.prev_view = None self.curr_view = None size_setting = self.settings.get_value('window-size') if isinstance(size_setting[0], int) and isinstance( size_setting[1], int): self.resize(size_setting[0], size_setting[1]) position_setting = self.settings.get_value('window-position') if len(position_setting) == 2 \ and isinstance(position_setting[0], int) \ and isinstance(position_setting[1], int): self.move(position_setting[0], position_setting[1]) if self.settings.get_value('window-maximized'): self.maximize() self._setup_view() self.notifications_popup = NotificationsPopup() self._overlay.add_overlay(self.notifications_popup) self.window_size_update_timeout = None self.connect("window-state-event", self._on_window_state_event) self.connect("configure-event", self._on_configure_event) grilo.connect('changes-pending', self._on_changes_pending)
def __init__(self, app): self.con = Gio.bus_get_sync(Gio.BusType.SESSION, None) Gio.bus_own_name_on_connection(self.con, 'org.mpris.MediaPlayer2.GnomeMusic', Gio.BusNameOwnerFlags.NONE, None, None) super().__init__(self.con, '/org/mpris/MediaPlayer2') self.app = app self.player = app.props.player self.player.connect( 'song-changed', self._on_current_song_changed) self.player.connect('notify::state', self._on_player_state_changed) self.player.connect('notify::repeat-mode', self._on_repeat_mode_changed) self.player.connect('seek-finished', self._on_seek_finished) self.player.connect( 'playlist-changed', self._on_player_playlist_changed) self.player_toolbar = app.get_active_window()._player_toolbar self.player_toolbar.connect( 'thumbnail-updated', self._on_thumbnail_updated) playlists = Playlists.get_default() playlists.connect('playlist-created', self._on_playlists_count_changed) playlists.connect('playlist-deleted', self._on_playlists_count_changed) grilo.connect('ready', self._on_grilo_ready) self.playlists = [] self._player_previous_type = None self._path_list = [] self._metadata_list = [] self._previous_playback_status = "Stopped"
def __init__(self, app): self.con = Gio.bus_get_sync(Gio.BusType.SESSION, None) Gio.bus_own_name_on_connection(self.con, 'org.mpris.MediaPlayer2.GnomeMusic', Gio.BusNameOwnerFlags.NONE, None, None) super().__init__(self.con, '/org/mpris/MediaPlayer2') self.app = app self.player = app.props.player self.player.connect('song-changed', self._on_current_song_changed) self.player.connect('notify::state', self._on_player_state_changed) self.player.connect('notify::repeat-mode', self._on_repeat_mode_changed) self.player.connect('seek-finished', self._on_seek_finished) self.player.connect('playlist-changed', self._on_player_playlist_changed) self._playlists = Playlists.get_default() self._playlists.connect('playlist-created', self._on_playlists_count_changed) self._playlists.connect('playlist-deleted', self._on_playlists_count_changed) self._playlists.connect('playlist-renamed', self._on_playlist_renamed) grilo.connect('ready', self._on_grilo_ready) self._stored_playlists = [] self._player_previous_type = None self._path_list = [] self._metadata_list = [] self._previous_can_go_next = False self._previous_can_go_previous = False self._previous_can_play = False self._previous_is_shuffled = None self._previous_loop_status = "" self._previous_mpris_playlist = self._get_active_playlist() self._previous_playback_status = "Stopped"
def __init__(self, name, title, window, use_sidebar=False, sidebar=None): """Initialize :param name: The view name :param title: The view title :param GtkWidget window: The main window :param use_sidebar: Whether to use sidebar :param sidebar: The sidebar object (Default: Gtk.Box) """ super().__init__(transition_type=Gtk.StackTransitionType.CROSSFADE) self._grid = Gtk.Grid(orientation=Gtk.Orientation.HORIZONTAL) self._offset = 0 self.model = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GdkPixbuf.Pixbuf, GObject.TYPE_OBJECT, GObject.TYPE_BOOLEAN, GObject.TYPE_INT, GObject.TYPE_STRING, GObject.TYPE_INT, GObject.TYPE_BOOLEAN, GObject.TYPE_INT) self._box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) # Setup the main view self._setup_view() if use_sidebar: self.stack = Gtk.Stack() dummy = Gtk.Frame(visible=False) self.stack.add_named(dummy, 'dummy') if sidebar: self.stack.add_named(sidebar, 'sidebar') else: self.stack.add_named(self._box, 'sidebar') self.stack.set_visible_child_name('dummy') self._grid.add(self.stack) if not use_sidebar or sidebar: self._grid.add(self._box) self._star_handler = StarHandlerWidget(self, 9) self._window = window self._header_bar = window.headerbar self._selection_toolbar = window.selection_toolbar self.name = name self.title = title self.add(self._grid) self.show_all() self._view.hide() self._init = False grilo.connect('ready', self._on_grilo_ready) self.connect('notify::selection-mode', self._on_selection_mode_changed) grilo.connect('changes-pending', self._on_changes_pending) self.bind_property('selection-mode', self._selection_toolbar, 'visible', GObject.BindingFlags.SYNC_CREATE) self.bind_property('selection-mode', self._header_bar, 'selection-mode', GObject.BindingFlags.BIDIRECTIONAL)
def __init__(self, name, title, window, sidebar=None): """Initialize :param name: The view name :param title: The view title :param GtkWidget window: The main window :param sidebar: The sidebar object (Default: Gtk.Box) """ super().__init__(transition_type=Gtk.StackTransitionType.CROSSFADE) self._grid = Gtk.Grid(orientation=Gtk.Orientation.HORIZONTAL) self._offset = 0 self.model = Gtk.ListStore( GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GdkPixbuf.Pixbuf, GObject.TYPE_OBJECT, GObject.TYPE_BOOLEAN, GObject.TYPE_INT, GObject.TYPE_STRING, GObject.TYPE_INT, GObject.TYPE_BOOLEAN, GObject.TYPE_INT ) self._box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) # Setup the main view self._setup_view() if sidebar: self._grid.add(sidebar) self._grid.add(self._box) self._star_handler = StarHandlerWidget(self, 9) self._window = window self._headerbar = window._headerbar self.name = name self.title = title self.add(self._grid) self.show_all() self._view.hide() self._init = False grilo.connect('ready', self._on_grilo_ready) self.connect('notify::selection-mode', self._on_selection_mode_changed) grilo.connect('changes-pending', self._on_changes_pending) self.bind_property( 'selection-mode', self._window, 'selection-mode', GObject.BindingFlags.BIDIRECTIONAL) if (grilo.tracker is not None and not self._init): self._on_grilo_ready()
def __init__(self, id_, label, entry): super().__init__(id_, label, entry) self.values.append(['', '', self._label]) self.values.append(['all', _("All"), ""]) self.values.append(['grl-tracker-source', _("Local"), '']) grilo.connect('new-source-added', self._add_new_source)
def __init__(self, id_, label, entry): super().__init__(id_, label, entry) self.values.append(['', '', self._label]) self.values.append(['all', _("All"), ""]) self.values.append(['grl-tracker-source', _("Local"), '']) self.props.default_value = 2 grilo.connect('new-source-added', self._add_new_source)
def __init__(self, app): Gtk.ApplicationWindow.__init__(self, application=app, title=_("Music")) self.connect('focus-in-event', self._windows_focus_cb) self.settings = Gio.Settings.new('org.gnome.Music') self.add_action(self.settings.create_action('repeat')) selectAll = Gio.SimpleAction.new('selectAll', None) app.add_accelerator('<Primary>a', 'win.selectAll', None) selectAll.connect('activate', self._on_select_all) self.add_action(selectAll) selectNone = Gio.SimpleAction.new('selectNone', None) selectNone.connect('activate', self._on_select_none) self.add_action(selectNone) self.set_size_request(200, 100) self.set_icon_name('gnome-music') self.prev_view = None self.curr_view = None size_setting = self.settings.get_value('window-size') if isinstance(size_setting[0], int) and isinstance(size_setting[1], int): self.resize(size_setting[0], size_setting[1]) position_setting = self.settings.get_value('window-position') if len(position_setting) == 2 \ and isinstance(position_setting[0], int) \ and isinstance(position_setting[1], int): self.move(position_setting[0], position_setting[1]) if self.settings.get_value('window-maximized'): self.maximize() self._setup_view() self.window_size_update_timeout = None self.connect("window-state-event", self._on_window_state_event) self.connect("configure-event", self._on_configure_event) self.proxy = Gio.DBusProxy.new_sync(Gio.bus_get_sync(Gio.BusType.SESSION, None), Gio.DBusProxyFlags.NONE, None, 'org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon/MediaKeys', 'org.gnome.SettingsDaemon.MediaKeys', None) self._grab_media_player_keys() try: self.proxy.connect('g-signal', self._handle_media_keys) except GLib.GError: # We cannot grab media keys if no settings daemon is running pass grilo.connect('changes-pending', self._on_changes_pending)
def __init__(self, name, title, window, sidebar=None): """Initialize :param name: The view name :param title: The view title :param GtkWidget window: The main window :param sidebar: The sidebar object (Default: Gtk.Box) """ super().__init__(transition_type=Gtk.StackTransitionType.CROSSFADE) self._grid = Gtk.Grid(orientation=Gtk.Orientation.HORIZONTAL) self._offset = 0 self.model = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GdkPixbuf.Pixbuf, GObject.TYPE_OBJECT, GObject.TYPE_BOOLEAN, GObject.TYPE_INT, GObject.TYPE_STRING, GObject.TYPE_INT, GObject.TYPE_BOOLEAN, GObject.TYPE_INT) self._box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) # Setup the main view self._setup_view() if sidebar: self._grid.add(sidebar) self._grid.add(self._box) self._star_handler = StarHandlerWidget(self, 9) self._window = window self._headerbar = window._headerbar self.name = name self.title = title self.add(self._grid) self.show_all() self._view.hide() self._init = False grilo.connect('ready', self._on_grilo_ready) self.connect('notify::selection-mode', self._on_selection_mode_changed) grilo.connect('changes-pending', self._on_changes_pending) self.bind_property('selection-mode', self._window, 'selection-mode', GObject.BindingFlags.BIDIRECTIONAL) if (grilo.tracker is not None and not self._init): self._on_grilo_ready()
def query(self, media): """Start the remote query :param Grl.Media media: The media object to search art for """ self._album = utils.get_album_title(media) self._artist = utils.get_artist_name(media) self._media = media if not grilo.props.cover_sources: self.emit('no-remote-sources') grilo.connect( 'notify::cover-sources', self._on_grilo_cover_sources_changed) else: # FIXME: It seems this Grilo query does not always return, # especially on queries with little info. grilo.get_album_art_for_item(media, self._remote_album_art)
def initialize_filters(self, searchbar): self.sourcesManager = SourceManager('source', _("Sources"), searchbar._search_entry) self.sourcesFilter = FilterView(self.sourcesManager, self) self._grid.add(self.sourcesFilter.view) grilo.connect('new-source-added', self.sourcesManager.add_new_source) grilo._find_sources() self.searchFieldsManager = BaseManager('search', _("Match"), searchbar._search_entry) self.searchFieldsFilter = FilterView(self.searchFieldsManager, self) self._grid.add(self.searchFieldsFilter.view) self._grid.show_all() self.searchFieldsFilter.view.set_sensitive( self.sourcesManager.get_active() == 'grl-tracker-source' )
def query(self, media): """Start the remote query :param Grl.Media media: The media object to search art for """ self._album = utils.get_album_title(media) self._artist = utils.get_artist_name(media) self._media = media if not grilo.props.cover_sources: self.emit('no-remote-sources') grilo.connect('notify::cover-sources', self._on_grilo_cover_sources_changed) else: # FIXME: It seems this Grilo query does not always return, # especially on queries with little info. grilo.get_album_art_for_item(media, self._remote_album_art)
def __init__(self, app): Gtk.ApplicationWindow.__init__(self, application=app, title=_("Music")) self.connect('focus-in-event', self._windows_focus_cb) self.settings = Gio.Settings.new('org.gnome.Music') self.add_action(self.settings.create_action('repeat')) selectAll = Gio.SimpleAction.new('selectAll', None) app.add_accelerator('<Primary>a', 'win.selectAll', None) selectAll.connect('activate', self._on_select_all) self.add_action(selectAll) selectNone = Gio.SimpleAction.new('selectNone', None) selectNone.connect('activate', self._on_select_none) self.add_action(selectNone) self.set_size_request(200, 100) self.set_icon_name('gnome-music') self.notification_handler = None self._loading_counter = 0 self.prev_view = None self.curr_view = None size_setting = self.settings.get_value('window-size') if isinstance(size_setting[0], int) and isinstance(size_setting[1], int): self.resize(size_setting[0], size_setting[1]) position_setting = self.settings.get_value('window-position') if len(position_setting) == 2 \ and isinstance(position_setting[0], int) \ and isinstance(position_setting[1], int): self.move(position_setting[0], position_setting[1]) if self.settings.get_value('window-maximized'): self.maximize() self._setup_view() self._setup_loading_notification() self._setup_playlist_notification() self.window_size_update_timeout = None self.connect("window-state-event", self._on_window_state_event) self.connect("configure-event", self._on_configure_event) grilo.connect('changes-pending', self._on_changes_pending)
def __init__(self, app): super().__init__(application=app, title=_("Music")) self.connect('focus-in-event', self._windows_focus_cb) self.settings = Gio.Settings.new('org.gnome.Music') self.add_action(self.settings.create_action('repeat')) selectAll = Gio.SimpleAction.new('selectAll', None) app.add_accelerator('<Primary>a', 'win.selectAll', None) selectAll.connect('activate', self._on_select_all) self.add_action(selectAll) selectNone = Gio.SimpleAction.new('selectNone', None) selectNone.connect('activate', self._on_select_none) self.add_action(selectNone) self.set_size_request(200, 100) self.set_default_icon_name('gnome-music') self.notification_handler = None self._loading_counter = 0 self.prev_view = None self.curr_view = None size_setting = self.settings.get_value('window-size') if isinstance(size_setting[0], int) and isinstance( size_setting[1], int): self.resize(size_setting[0], size_setting[1]) position_setting = self.settings.get_value('window-position') if len(position_setting) == 2 \ and isinstance(position_setting[0], int) \ and isinstance(position_setting[1], int): self.move(position_setting[0], position_setting[1]) if self.settings.get_value('window-maximized'): self.maximize() self._setup_view() self._setup_loading_notification() self._setup_playlist_notification() self.window_size_update_timeout = None self.connect("window-state-event", self._on_window_state_event) self.connect("configure-event", self._on_configure_event) grilo.connect('changes-pending', self._on_changes_pending)
def __init__(self, app): super().__init__(application=app, title=_("Music")) self._settings = Gio.Settings.new('org.gnome.Music') self.add_action(self._settings.create_action('repeat')) select_all = Gio.SimpleAction.new('select_all', None) select_all.connect('activate', self._select_all) self.add_action(select_all) select_none = Gio.SimpleAction.new('select_none', None) select_none.connect('activate', self._select_none) self.add_action(select_none) self.set_size_request(200, 100) WindowPlacement(self, self._settings) self.prev_view = None self.curr_view = None self.notifications_popup = NotificationsPopup() self._setup_view() MediaKeys(self._player, self) grilo.connect('changes-pending', self._on_changes_pending)
def __init__(self): GObject.GObject.__init__(self) self.tracker = TrackerWrapper().tracker self._static_playlists = StaticPlaylists() grilo.connect('ready', self._on_grilo_ready)
def __init__(self, name, title, window, view_type, use_sidebar=False, sidebar=None): Gtk.Stack.__init__(self, transition_type=Gtk.StackTransitionType.CROSSFADE) self._grid = Gtk.Grid(orientation=Gtk.Orientation.HORIZONTAL) self._offset = 0 self._adjustmentValueId = 0 self._adjustmentChangedId = 0 self._scrollbarVisibleId = 0 self.old_vsbl_range = None self.model = Gtk.ListStore( GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GdkPixbuf.Pixbuf, GObject.TYPE_OBJECT, GObject.TYPE_BOOLEAN, GObject.TYPE_INT, GObject.TYPE_STRING, GObject.TYPE_INT, GObject.TYPE_BOOLEAN, GObject.TYPE_INT ) self._box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) # Setup the main view self._setup_view(view_type) if use_sidebar: self.stack = Gtk.Stack( transition_type=Gtk.StackTransitionType.SLIDE_RIGHT, ) dummy = Gtk.Frame(visible=False) self.stack.add_named(dummy, 'dummy') if sidebar: self.stack.add_named(sidebar, 'sidebar') else: self.stack.add_named(self._box, 'sidebar') self.stack.set_visible_child_name('dummy') self._grid.add(self.stack) if not use_sidebar or sidebar: self._grid.add(self._box) self.star_handler = StarHandlerWidget(self, 9) self._cursor = None self.window = window self.header_bar = window.toolbar self.selection_toolbar = window.selection_toolbar self.header_bar._select_button.connect( 'toggled', self._on_header_bar_toggled) self.header_bar._cancel_button.connect( 'clicked', self._on_cancel_button_clicked) self.name = name self.title = title self.add(self._grid) self.show_all() self.view.hide() self._items = [] scale = self.get_scale_factor() self.cache = AlbumArtCache(scale) self._loading_icon_surface = DefaultIcon(scale).get( DefaultIcon.Type.loading, ArtSize.medium) self._init = False grilo.connect('ready', self._on_grilo_ready) self.selection_socket = None self.header_bar.connect('selection-mode-changed', self._on_selection_mode_changed) self._discovering_urls = {} grilo.connect('changes-pending', self._on_changes_pending)
def __init__(self, title, header_bar, selection_toolbar, useStack=False): Stack.__init__(self, transition_type=StackTransitionType.CROSSFADE) self._grid = Gtk.Grid(orientation=Gtk.Orientation.VERTICAL) self._iconWidth = -1 self._iconHeight = 128 self._offset = 0 self._adjustmentValueId = 0 self._adjustmentChangedId = 0 self._scrollbarVisibleId = 0 self._model = Gtk.ListStore( GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GdkPixbuf.Pixbuf, GObject.TYPE_OBJECT, GObject.TYPE_BOOLEAN, GObject.TYPE_INT, GObject.TYPE_STRING, GObject.TYPE_BOOLEAN, GObject.TYPE_BOOLEAN ) self.view = Gd.MainView( shadow_type=Gtk.ShadowType.NONE ) self.view.set_view_type(Gd.MainViewType.ICON) self.view.set_model(self._model) self.selection_toolbar = selection_toolbar box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) box.pack_start(self.view, True, True, 0) if useStack: self.stack = Stack( transition_type=StackTransitionType.SLIDE_RIGHT, ) dummy = Gtk.Frame(visible=False) self.stack.add_named(dummy, 'dummy') self.stack.add_named(box, 'artists') self.stack.set_visible_child_name('dummy') self._grid.add(self.stack) else: self._grid.add(box) self._loadMore = Widgets.LoadMoreButton(self._get_remaining_item_count) box.pack_end(self._loadMore.widget, False, False, 0) self._loadMore.widget.connect('clicked', self._populate) self.view.connect('item-activated', self._on_item_activated) self._cursor = None self.header_bar = header_bar self.header_bar._select_button.connect( 'toggled', self._on_header_bar_toggled) self.header_bar._cancel_button.connect( 'clicked', self._on_cancel_button_clicked) self.title = title self.add(self._grid) self.show_all() self._items = [] self._loadMore.widget.hide() self._connect_view() self.cache = albumArtCache.get_default() self._symbolicIcon = self.cache.make_default_icon(self._iconHeight, self._iconWidth) self._init = False grilo.connect('ready', self._on_grilo_ready) self.header_bar.header_bar.connect('state-changed', self._on_state_changed) self.view.connect('view-selection-changed', self._on_view_selection_changed)
def __init__(self, name, title, window, view_type, use_sidebar=False, sidebar=None): Gtk.Stack.__init__(self, transition_type=Gtk.StackTransitionType.CROSSFADE) self._grid = Gtk.Grid(orientation=Gtk.Orientation.HORIZONTAL) self._offset = 0 self._adjustmentValueId = 0 self._adjustmentChangedId = 0 self._scrollbarVisibleId = 0 self.old_vsbl_range = None self.model = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GdkPixbuf.Pixbuf, GObject.TYPE_OBJECT, GObject.TYPE_BOOLEAN, GObject.TYPE_INT, GObject.TYPE_STRING, GObject.TYPE_INT, GObject.TYPE_BOOLEAN, GObject.TYPE_INT) self._box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) # Setup the main view self._setup_view(view_type) if use_sidebar: self.stack = Gtk.Stack( transition_type=Gtk.StackTransitionType.SLIDE_RIGHT, ) dummy = Gtk.Frame(visible=False) self.stack.add_named(dummy, 'dummy') if sidebar: self.stack.add_named(sidebar, 'sidebar') else: self.stack.add_named(self._box, 'sidebar') self.stack.set_visible_child_name('dummy') self._grid.add(self.stack) if not use_sidebar or sidebar: self._grid.add(self._box) self.star_handler = StarHandlerWidget(self, 9) self._cursor = None self.window = window self.header_bar = window.toolbar self.selection_toolbar = window.selection_toolbar self.header_bar._select_button.connect('toggled', self._on_header_bar_toggled) self.header_bar._cancel_button.connect('clicked', self._on_cancel_button_clicked) self.name = name self.title = title self.add(self._grid) self.show_all() self.view.hide() self._items = [] scale = self.get_scale_factor() self.cache = AlbumArtCache(scale) self._loading_icon_surface = DefaultIcon(scale).get( DefaultIcon.Type.loading, ArtSize.medium) self._init = False grilo.connect('ready', self._on_grilo_ready) self.selection_socket = None self.header_bar.connect('selection-mode-changed', self._on_selection_mode_changed) self._discovering_urls = {} grilo.connect('changes-pending', self._on_changes_pending)
def __init__(self, title, header_bar, selection_toolbar, useStack=False): Stack.__init__(self, transition_type=StackTransitionType.CROSSFADE) self._grid = Gtk.Grid(orientation=Gtk.Orientation.VERTICAL) self._iconWidth = -1 self._iconHeight = 128 self._offset = 0 self._adjustmentValueId = 0 self._adjustmentChangedId = 0 self._scrollbarVisibleId = 0 self._model = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GdkPixbuf.Pixbuf, GObject.TYPE_OBJECT, GObject.TYPE_BOOLEAN, GObject.TYPE_INT, GObject.TYPE_STRING, GObject.TYPE_BOOLEAN, GObject.TYPE_BOOLEAN) self.view = Gd.MainView(shadow_type=Gtk.ShadowType.NONE) self.view.set_view_type(Gd.MainViewType.ICON) self.view.set_model(self._model) self.filter = self._model.filter_new(None) self.view.set_model(self.filter) self.vadjustment = self.view.get_vadjustment() self.selection_toolbar = selection_toolbar box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) box.pack_start(self.view, True, True, 0) if useStack: self.stack = Stack( transition_type=StackTransitionType.SLIDE_RIGHT, ) dummy = Gtk.Frame(visible=False) self.stack.add_named(dummy, 'dummy') self.stack.add_named(box, 'artists') self.stack.set_visible_child_name('dummy') self._grid.add(self.stack) else: self._grid.add(box) self._cached_count = -1 self._loadMore = Widgets.LoadMoreButton(self._get_remaining_item_count) box.pack_end(self._loadMore.widget, False, False, 0) self._loadMore.widget.connect('clicked', self._populate) self.view.connect('item-activated', self._on_item_activated) self.view.connect('selection-mode-request', self._on_selection_mode_request) self._cursor = None self.header_bar = header_bar self.header_bar._select_button.connect('toggled', self._on_header_bar_toggled) self.header_bar._cancel_button.connect('clicked', self._on_cancel_button_clicked) self.title = title self.add(self._grid) self.show_all() self._items = [] self._loadMore.widget.hide() self._connect_view() self.cache = albumArtCache.get_default() self._symbolicIcon = self.cache.make_default_icon( self._iconHeight, self._iconWidth) self._init = False grilo.connect('ready', self._on_grilo_ready) self.header_bar.header_bar.connect('state-changed', self._on_state_changed) self.view.connect('view-selection-changed', self._on_view_selection_changed) self._discovering_urls = {}
def __init__(self, name, title, window, view_type, use_sidebar=False, sidebar=None): """Initialize :param name: The view name :param title: The view title :param GtkWidget window: The main window :param view_type: The Gtk view type :param use_sidebar: Whether to use sidebar :param sidebar: The sidebar object (Default: Gtk.Box) """ Gtk.Stack.__init__(self, transition_type=Gtk.StackTransitionType.CROSSFADE) self._grid = Gtk.Grid(orientation=Gtk.Orientation.HORIZONTAL) self._offset = 0 self.model = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GdkPixbuf.Pixbuf, GObject.TYPE_OBJECT, GObject.TYPE_BOOLEAN, GObject.TYPE_INT, GObject.TYPE_STRING, GObject.TYPE_INT, GObject.TYPE_BOOLEAN, GObject.TYPE_INT) self._box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) # Setup the main view self._setup_view(view_type) if use_sidebar: self.stack = Gtk.Stack( transition_type=Gtk.StackTransitionType.SLIDE_RIGHT, ) dummy = Gtk.Frame(visible=False) self.stack.add_named(dummy, 'dummy') if sidebar: self.stack.add_named(sidebar, 'sidebar') else: self.stack.add_named(self._box, 'sidebar') self.stack.set_visible_child_name('dummy') self._grid.add(self.stack) if not use_sidebar or sidebar: self._grid.add(self._box) self._star_handler = StarHandlerWidget(self, 9) self._window = window self._header_bar = window.toolbar self._selection_toolbar = window.selection_toolbar self._header_bar._select_button.connect('toggled', self._on_header_bar_toggled) self._header_bar._cancel_button.connect('clicked', self._on_cancel_button_clicked) self.name = name self.title = title self.add(self._grid) self.show_all() self._view.hide() scale = self.get_scale_factor() self._cache = AlbumArtCache(scale) self._loading_icon_surface = DefaultIcon(scale).get( DefaultIcon.Type.loading, ArtSize.medium) self._init = False grilo.connect('ready', self._on_grilo_ready) self._header_bar.connect('selection-mode-changed', self._on_selection_mode_changed) grilo.connect('changes-pending', self._on_changes_pending)
def __init__(self): super().__init__() self._smart_playlists = SmartPlaylists() grilo.connect('ready', self._on_grilo_ready)