def __init__(self, header_bar, title, plugins): 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) ViewContainer.__init__(self, title, header_bar) self.elementStack = Stack( transition_type=StackTransitionType.CROSSFADE, ) self.plugins = plugins self.subcats = {} self.populate() self.create_and_show(Gtk.TreePath.new_from_string("0")) self.view.set_view_type(Gd.MainViewType.LIST) self.view.set_hexpand(True) #self.view.get_style_context().add_class('artist-panel') self.view.get_generic_view().get_selection().set_mode( Gtk.SelectionMode.SINGLE) #self.grid.attach(Gtk.Separator(orientation=Gtk.Orientation.VERTICAL), # 1, 0, 1, 1) self.grid.attach(self.elementStack, 2, 0, 2, 2) self.view.get_generic_view().get_style_context().\ add_class('artist-panel-dark') self.show_all()
def __init__(self, header_bar, selection_toolbar, player): ViewContainer.__init__(self, _("Artists"), header_bar, selection_toolbar, True) self.artists_counter = 0 self.player = player self._artists = {} self.countQuery = Query.ARTISTS_COUNT self.artistAlbumsStack = Stack( transition_type=StackTransitionType.CROSSFADE, ) self._artistAlbumsWidget = Gtk.Frame(shadow_type=Gtk.ShadowType.NONE, hexpand=True) self.artistAlbumsStack.add_named(self._artistAlbumsWidget, "artists") self.artistAlbumsStack.set_visible_child_name("artists") self.view.set_view_type(Gd.MainViewType.LIST) self.view.set_hexpand(False) self.view.get_style_context().add_class('artist-panel') self.view.get_generic_view().get_selection().set_mode( Gtk.SelectionMode.SINGLE) self._grid.attach(Gtk.Separator(orientation=Gtk.Orientation.VERTICAL), 1, 0, 1, 1) self._grid.attach(self.artistAlbumsStack, 2, 0, 2, 2) self._add_list_renderers() if (Gtk.Settings.get_default().get_property( 'gtk_application_prefer_dark_theme')): self.view.get_generic_view().get_style_context().\ add_class('artist-panel-dark') else: self.view.get_generic_view().get_style_context().\ add_class('artist-panel-white') self.show_all()
def _setup_view(self): self._box = Gtk.VBox() self.player = Player() self.selection_toolbar = SelectionToolbar() self.toolbar = Toolbar() self.views = [] self._stack = Stack( transition_type=StackTransitionType.CROSSFADE, transition_duration=100, visible=True) if Gtk.get_minor_version() > 8: self.set_titlebar(self.toolbar.header_bar) else: self._box.pack_start(self.toolbar.header_bar, False, False, 0) self.set_hide_titlebar_when_maximized(True) self._box.pack_start(self.toolbar.searchbar, False, False, 0) self._box.pack_start(self._stack, True, True, 0) self._box.pack_start(self.player.eventBox, False, False, 0) self._box.pack_start(self.selection_toolbar.eventbox, False, False, 0) self.add(self._box) count = 1 cursor = tracker.query(Query.SONGS_COUNT, None) if cursor is not None and cursor.next(None): count = cursor.get_integer(0) if count > 0: self.views.append(Views.Albums(self.toolbar, self.selection_toolbar, self.player)) self.views.append(Views.Artists(self.toolbar, self.selection_toolbar, self.player)) self.views.append(Views.Songs(self.toolbar, self.selection_toolbar, self.player)) #self.views.append(Views.Playlist(self.toolbar, self.selection_toolbar, self.player)) for i in self.views: self._stack.add_titled(i, i.title, i.title) self.toolbar.set_stack(self._stack) self.toolbar.searchbar.show() self._on_notify_model_id = self._stack.connect('notify::visible-child', self._on_notify_mode) self.connect('destroy', self._notify_mode_disconnect) self.connect('key_press_event', self._on_key_press) self.views[0].populate() #To revert to the No Music View when no songs are found else: self.views.append(Views.Empty(self.toolbar, self.player)) self._stack.add_titled(self.views[0], _("Empty"), _("Empty")) self.toolbar._search_button.connect('toggled', self._on_search_toggled) self.toolbar.set_state(ToolbarState.ALBUMS) self.toolbar.header_bar.show() self.player.eventBox.show_all() self._box.show() self.show()
def init_configs_stack(self): self._stack = Stack(transition_type=StackTransitionType.CROSSFADE, transition_duration=300, visible=True) self._stack.set_transition_type( Gtk.StackTransitionType.SLIDE_LEFT_RIGHT) for config in snapper.ListConfigs(): name = str(config[0]) self.configView[name] = snapshotsView(name) self._stack.add_titled(self.configView[name].scrolledwindow, name, name) self.configView[name].selection.connect( "changed", self.on_snapshots_selection_changed)
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 = {}