Added the "Empty Trash" button on the Trashes nav-menu.
This commit is contained in:
parent
c639d6d1e6
commit
cc3c0737e4
1 changed files with 27 additions and 4 deletions
31
src/app.rs
31
src/app.rs
|
|
@ -181,6 +181,7 @@ pub enum NavMenuAction {
|
||||||
OpenInNewWindow(segmented_button::Entity),
|
OpenInNewWindow(segmented_button::Entity),
|
||||||
Properties(segmented_button::Entity),
|
Properties(segmented_button::Entity),
|
||||||
RemoveFromSidebar(segmented_button::Entity),
|
RemoveFromSidebar(segmented_button::Entity),
|
||||||
|
EmptyTrash(segmented_button::Entity),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl MenuAction for NavMenuAction {
|
impl MenuAction for NavMenuAction {
|
||||||
|
|
@ -949,6 +950,16 @@ impl Application for App {
|
||||||
&self,
|
&self,
|
||||||
id: widget::nav_bar::Id,
|
id: widget::nav_bar::Id,
|
||||||
) -> Option<Vec<widget::menu::Tree<cosmic::app::Message<Self::Message>>>> {
|
) -> Option<Vec<widget::menu::Tree<cosmic::app::Message<Self::Message>>>> {
|
||||||
|
let maybe_trash_entity = self.nav_model.iter().find(|&entity| {
|
||||||
|
self.nav_model
|
||||||
|
.data::<Location>(entity)
|
||||||
|
.map(|loc| *loc == Location::Trash)
|
||||||
|
.unwrap_or_default()
|
||||||
|
});
|
||||||
|
let mut is_context_trash = false;
|
||||||
|
if let Some(trash_id) = maybe_trash_entity {
|
||||||
|
is_context_trash = trash_id == id;
|
||||||
|
}
|
||||||
Some(cosmic::widget::menu::items(
|
Some(cosmic::widget::menu::items(
|
||||||
&HashMap::new(),
|
&HashMap::new(),
|
||||||
vec![
|
vec![
|
||||||
|
|
@ -966,10 +977,17 @@ impl Application for App {
|
||||||
NavMenuAction::Properties(id),
|
NavMenuAction::Properties(id),
|
||||||
),
|
),
|
||||||
cosmic::widget::menu::Item::Divider,
|
cosmic::widget::menu::Item::Divider,
|
||||||
cosmic::widget::menu::Item::Button(
|
if is_context_trash {
|
||||||
fl!("remove-from-sidebar"),
|
cosmic ::widget::menu::Item::Button(
|
||||||
NavMenuAction::RemoveFromSidebar(id),
|
fl!("empty-trash"),
|
||||||
),
|
NavMenuAction::EmptyTrash(id),
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
cosmic::widget::menu::Item::Button(
|
||||||
|
fl!("remove-from-sidebar"),
|
||||||
|
NavMenuAction::RemoveFromSidebar(id),
|
||||||
|
)
|
||||||
|
},
|
||||||
],
|
],
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
@ -1899,6 +1917,11 @@ impl Application for App {
|
||||||
return self.update_config();
|
return self.update_config();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NavMenuAction::EmptyTrash(_) => {
|
||||||
|
self.dialog_pages.push_front(DialogPage::EmptyTrash);
|
||||||
|
self.dialog();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue