def _setup_view(self): self._box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.player = Player(self) self.selection_toolbar = SelectionToolbar() self.toolbar = Toolbar() self.views = [] self._stack = Gtk.Stack( transition_type=Gtk.StackTransitionType.CROSSFADE, transition_duration=100, visible=True, can_focus=False) # Add the 'background' styleclass so it properly hides the # bottom line of the searchbar self._stack.get_style_context().add_class('background') self._overlay = Gtk.Overlay(child=self._stack) self._overlay.add_overlay(self.toolbar.dropdown) self.set_titlebar(self.toolbar.header_bar) self._box.pack_start(self.toolbar.searchbar, False, False, 0) self._box.pack_start(self._overlay, True, True, 0) self._box.pack_start(self.player.actionbar, False, False, 0) self._box.pack_start(self.selection_toolbar.actionbar, False, False, 0) self.add(self._box) count = 0 cursor = None Query() if Query.music_folder: try: cursor = tracker.query(Query.all_songs_count(), None) if cursor is not None and cursor.next(None): count = cursor.get_integer(0) except Exception as e: logger.error("Tracker query crashed: %s", e) count = 0 if count > 0: self._switch_to_player_view() # To revert to the No Music View when no songs are found else: if self.toolbar._selectionMode is False: self._switch_to_empty_view() else: # Revert to No Music view if XDG dirs are not set self._switch_to_empty_view() self.toolbar._search_button.connect('toggled', self._on_search_toggled) self.toolbar.connect('selection-mode-changed', self._on_selection_mode_changed) self.selection_toolbar._add_to_playlist_button.connect( 'clicked', self._on_add_to_playlist_button_clicked) self.selection_toolbar._remove_from_playlist_button.connect( 'clicked', self._on_remove_from_playlist_button_clicked) self.toolbar.set_state(ToolbarState.MAIN) self.toolbar.header_bar.show() self._overlay.show() self.player.actionbar.show_all() self._box.show() self.show()
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 _setup_view(self): self._box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.player = Player(self) self.selection_toolbar = SelectionToolbar() self.toolbar = Toolbar() self.views = [] self._stack = Gtk.Stack( transition_type=Gtk.StackTransitionType.CROSSFADE, transition_duration=100, visible=True, can_focus=False) # Add the 'background' styleclass so it properly hides the # bottom line of the searchbar self._stack.get_style_context().add_class('background') self._overlay = Gtk.Overlay(child=self._stack) self._overlay.add_overlay(self.toolbar.dropdown) self.set_titlebar(self.toolbar.header_bar) self._box.pack_start(self.toolbar.searchbar, False, False, 0) self._box.pack_start(self._overlay, True, True, 0) self._box.pack_start(self.player.actionbar, False, False, 0) self._box.pack_start(self.selection_toolbar.actionbar, False, False, 0) self.add(self._box) def songs_available_cb(available): if available: self._switch_to_player_view() else: self._switch_to_empty_view() Query() if Query.music_folder: grilo.songs_available(songs_available_cb) else: self._switch_to_empty_view() self.toolbar._search_button.connect('toggled', self._on_search_toggled) self.toolbar.connect('selection-mode-changed', self._on_selection_mode_changed) self.selection_toolbar._add_to_playlist_button.connect( 'clicked', self._on_add_to_playlist_button_clicked) self.selection_toolbar._remove_from_playlist_button.connect( 'clicked', self._on_remove_from_playlist_button_clicked) self.toolbar.set_state(ToolbarState.MAIN) self.toolbar.header_bar.show() self._overlay.show() self.player.actionbar.show_all() self._box.show() self.show()