Remove AlbumPage from stack on library changes

This commit is contained in:
Elias Projahn 2025-08-10 11:56:28 +02:00
parent 48cfdd354a
commit c50ef90e9b

View file

@ -9,6 +9,7 @@ use gettextrs::gettext;
use gtk::{gio, glib, glib::clone}; use gtk::{gio, glib, glib::clone};
use crate::{ use crate::{
album_page::AlbumPage,
config, config,
editor::tracks::TracksEditor, editor::tracks::TracksEditor,
empty_page::EmptyPage, empty_page::EmptyPage,
@ -362,17 +363,12 @@ impl Window {
fn reset_view(&self) { fn reset_view(&self) {
let navigation = self.imp().navigation_view.get(); let navigation = self.imp().navigation_view.get();
// Get all pages that are not instances of SearchPage. // Get all pages that are not instances of SearchPage or AlbumPage.
let mut navigation_stack = navigation let mut navigation_stack = navigation
.navigation_stack() .navigation_stack()
.iter::<adw::NavigationPage>() .iter::<adw::NavigationPage>()
.filter_map(|page| match page { .filter_map(|page| page.ok())
Ok(page) => match page.downcast_ref::<SearchPage>() { .filter(|page| !page.is::<SearchPage>() && !page.is::<AlbumPage>())
Some(_) => None,
None => Some(page),
},
Err(_) => None,
})
.collect::<Vec<adw::NavigationPage>>(); .collect::<Vec<adw::NavigationPage>>();
navigation_stack.insert( navigation_stack.insert(