Merge branch 'pop-os:master' into item-display-name
This commit is contained in:
commit
5aa8a8ff76
15 changed files with 604 additions and 534 deletions
28
src/app.rs
28
src/app.rs
|
|
@ -4732,26 +4732,26 @@ impl Application for App {
|
|||
]))
|
||||
}
|
||||
ContextPage::Preview(entity_opt, kind) => {
|
||||
let mut actions = Vec::with_capacity(3);
|
||||
let entity = entity_opt.unwrap_or_else(|| self.tab_model.active());
|
||||
if let Some(tab) = self.tab_model.data::<Tab>(entity) {
|
||||
if let Some(items) = tab.items_opt() {
|
||||
for item in items {
|
||||
if item.selected {
|
||||
actions.extend(item.preview_header().into_iter().map(|element| {
|
||||
element.map(move |x| Message::TabMessage(Some(entity), x))
|
||||
}));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
let actions = self
|
||||
.tab_model
|
||||
.data::<Tab>(entity)
|
||||
.and_then(|tab| {
|
||||
tab.items_opt()?
|
||||
.iter()
|
||||
.find(|item| item.selected)
|
||||
.map(|item| {
|
||||
item.preview_actions()
|
||||
.map(move |x| Message::TabMessage(Some(entity), x))
|
||||
})
|
||||
})
|
||||
.unwrap_or_else(|| widget::horizontal_space().into());
|
||||
context_drawer::context_drawer(
|
||||
self.preview(entity_opt, kind, true)
|
||||
.map(move |x| Message::TabMessage(Some(entity), x)),
|
||||
Message::ToggleContextPage(ContextPage::Preview(Some(entity), kind.clone())),
|
||||
)
|
||||
.header_actions(actions)
|
||||
.actions(actions)
|
||||
}
|
||||
ContextPage::Settings => context_drawer::context_drawer(
|
||||
self.settings(),
|
||||
|
|
|
|||
|
|
@ -1004,24 +1004,22 @@ impl Application for App {
|
|||
|
||||
match &self.context_page {
|
||||
ContextPage::Preview(_, kind) => {
|
||||
let mut actions = Vec::with_capacity(3);
|
||||
if let Some(items) = self.tab.items_opt() {
|
||||
for item in items {
|
||||
if item.selected {
|
||||
actions.extend(
|
||||
item.preview_header()
|
||||
.into_iter()
|
||||
.map(|element| element.map(Message::TabMessage)),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
let actions = self
|
||||
.tab
|
||||
.items_opt()
|
||||
.and_then(|items| {
|
||||
items
|
||||
.iter()
|
||||
.find(|item| item.selected)
|
||||
.map(|item| item.preview_actions().map(Message::TabMessage))
|
||||
})
|
||||
.unwrap_or_else(|| widget::horizontal_space().into());
|
||||
Some(
|
||||
context_drawer::context_drawer(
|
||||
self.preview(kind).map(Message::TabMessage),
|
||||
Message::Preview,
|
||||
)
|
||||
.header_actions(actions),
|
||||
.actions(actions),
|
||||
)
|
||||
}
|
||||
_ => None,
|
||||
|
|
|
|||
31
src/tab.rs
31
src/tab.rs
|
|
@ -2094,28 +2094,27 @@ impl Item {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn preview_header(&self) -> Vec<Element<'_, Message>> {
|
||||
let mut row = Vec::with_capacity(3);
|
||||
row.push(
|
||||
widget::button::icon(widget::icon::from_name("go-previous-symbolic"))
|
||||
.on_press(Message::ItemLeft)
|
||||
.into(),
|
||||
);
|
||||
row.push(
|
||||
widget::button::icon(widget::icon::from_name("go-next-symbolic"))
|
||||
.on_press(Message::ItemRight)
|
||||
.into(),
|
||||
);
|
||||
pub fn preview_actions(&self) -> Element<'_, Message> {
|
||||
let mut row = widget::row::with_capacity(3)
|
||||
.align_y(Alignment::Center)
|
||||
.spacing(theme::spacing().space_xxs)
|
||||
.push(
|
||||
widget::button::icon(widget::icon::from_name("go-previous-symbolic"))
|
||||
.on_press(Message::ItemLeft),
|
||||
)
|
||||
.push(
|
||||
widget::button::icon(widget::icon::from_name("go-next-symbolic"))
|
||||
.on_press(Message::ItemRight),
|
||||
);
|
||||
if self.can_gallery() {
|
||||
if let Some(_path) = self.path_opt() {
|
||||
row.push(
|
||||
row = row.push(
|
||||
widget::button::icon(widget::icon::from_name("view-fullscreen-symbolic"))
|
||||
.on_press(Message::Gallery(true))
|
||||
.into(),
|
||||
.on_press(Message::Gallery(true)),
|
||||
);
|
||||
}
|
||||
}
|
||||
row
|
||||
row.into()
|
||||
}
|
||||
|
||||
pub fn preview_view<'a>(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue