示例#1
0
    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()
示例#2
0
 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()
示例#3
0
    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()
示例#4
0
    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)
示例#5
0
    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 = {}