chore: update dependencies

This adapts to the changed context drawer actions API.
Also simplifies the actions code.
This commit is contained in:
Vukašin Vojinović 2025-11-04 18:55:24 +01:00 committed by Jacob Kauffmann
parent a0ac86d2ff
commit 2ba08c4928
5 changed files with 390 additions and 370 deletions

665
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -9,7 +9,7 @@ rust-version = "1.85"
[dependencies] [dependencies]
anyhow = "1" anyhow = "1"
chrono = { version = "0.4", features = ["unstable-locales"] } chrono = { version = "0.4", features = ["unstable-locales"] }
icu = { version = "2.0.0", features = ["compiled_data"] } icu = { version = "2.1.1", features = ["compiled_data"] }
cctk = { git = "https://github.com/pop-os/cosmic-protocols", package = "cosmic-client-toolkit", rev = "d0e95be", optional = true } cctk = { git = "https://github.com/pop-os/cosmic-protocols", package = "cosmic-client-toolkit", rev = "d0e95be", optional = true }
cosmic-mime-apps = { git = "https://github.com/pop-os/cosmic-mime-apps.git", optional = true } cosmic-mime-apps = { git = "https://github.com/pop-os/cosmic-mime-apps.git", optional = true }
dirs = "6.0.0" dirs = "6.0.0"
@ -45,8 +45,8 @@ xdg-mime = { git = "https://github.com/ebassi/xdg-mime-rs" }
bzip2 = { version = "0.6", optional = true } #TODO: replace with pure Rust crate bzip2 = { version = "0.6", optional = true } #TODO: replace with pure Rust crate
flate2 = "1.1" flate2 = "1.1"
tar = "0.4.44" tar = "0.4.44"
lzma-rust2 = { version = "0.14", optional = true } lzma-rust2 = { version = "0.15", optional = true }
ordermap = { version = "0.5.12", features = ["serde"] } ordermap = { version = "1.0.0", features = ["serde"] }
# Internationalization # Internationalization
i18n-embed = { version = "0.16", features = [ i18n-embed = { version = "0.16", features = [
"fluent-system", "fluent-system",
@ -56,7 +56,7 @@ i18n-embed-fl = "0.10"
rust-embed = "8" rust-embed = "8"
slotmap = "1.0.7" slotmap = "1.0.7"
recently-used-xbel = { git = "https://github.com/pop-os/recently-used-xbel.git" } recently-used-xbel = { git = "https://github.com/pop-os/recently-used-xbel.git" }
zip = "5.1.1" zip = "6.0"
uzers = "0.12.1" uzers = "0.12.1"
md-5 = "0.10.6" md-5 = "0.10.6"
png = "0.18" png = "0.18"
@ -70,7 +70,7 @@ default-features = false
features = ["io", "macros", "polling", "runtime"] features = ["io", "macros", "polling", "runtime"]
[dependencies.io-uring] [dependencies.io-uring]
version = "0.7.10" version = "0.7.11"
default-features = false default-features = false
optional = true optional = true
@ -111,7 +111,7 @@ inherits = "release"
debug = true debug = true
[target.'cfg(unix)'.dependencies] [target.'cfg(unix)'.dependencies]
fork = "0.2" fork = "0.4"
[target.'cfg(target_os = "linux")'.dependencies] [target.'cfg(target_os = "linux")'.dependencies]
procfs = "0.18" procfs = "0.18"

View file

@ -4732,26 +4732,26 @@ impl Application for App {
])) ]))
} }
ContextPage::Preview(entity_opt, kind) => { ContextPage::Preview(entity_opt, kind) => {
let mut actions = Vec::with_capacity(3);
let entity = entity_opt.unwrap_or_else(|| self.tab_model.active()); let entity = entity_opt.unwrap_or_else(|| self.tab_model.active());
if let Some(tab) = self.tab_model.data::<Tab>(entity) { let actions = self
if let Some(items) = tab.items_opt() { .tab_model
for item in items { .data::<Tab>(entity)
if item.selected { .and_then(|tab| {
actions.extend(item.preview_header().into_iter().map(|element| { tab.items_opt()?
element.map(move |x| Message::TabMessage(Some(entity), x)) .iter()
})); .find(|item| item.selected)
break; .map(|item| {
} item.preview_actions()
} .map(move |x| Message::TabMessage(Some(entity), x))
} })
} })
.unwrap_or_else(|| widget::horizontal_space().into());
context_drawer::context_drawer( context_drawer::context_drawer(
self.preview(entity_opt, kind, true) self.preview(entity_opt, kind, true)
.map(move |x| Message::TabMessage(Some(entity), x)), .map(move |x| Message::TabMessage(Some(entity), x)),
Message::ToggleContextPage(ContextPage::Preview(Some(entity), kind.clone())), Message::ToggleContextPage(ContextPage::Preview(Some(entity), kind.clone())),
) )
.header_actions(actions) .actions(actions)
} }
ContextPage::Settings => context_drawer::context_drawer( ContextPage::Settings => context_drawer::context_drawer(
self.settings(), self.settings(),

View file

@ -1004,24 +1004,22 @@ impl Application for App {
match &self.context_page { match &self.context_page {
ContextPage::Preview(_, kind) => { ContextPage::Preview(_, kind) => {
let mut actions = Vec::with_capacity(3); let actions = self
if let Some(items) = self.tab.items_opt() { .tab
for item in items { .items_opt()
if item.selected { .and_then(|items| {
actions.extend( items
item.preview_header() .iter()
.into_iter() .find(|item| item.selected)
.map(|element| element.map(Message::TabMessage)), .map(|item| item.preview_actions().map(Message::TabMessage))
); })
} .unwrap_or_else(|| widget::horizontal_space().into());
}
}
Some( Some(
context_drawer::context_drawer( context_drawer::context_drawer(
self.preview(kind).map(Message::TabMessage), self.preview(kind).map(Message::TabMessage),
Message::Preview, Message::Preview,
) )
.header_actions(actions), .actions(actions),
) )
} }
_ => None, _ => None,

View file

@ -2066,28 +2066,27 @@ impl Item {
} }
} }
pub fn preview_header(&self) -> Vec<Element<'_, Message>> { pub fn preview_actions(&self) -> Element<'_, Message> {
let mut row = Vec::with_capacity(3); let mut row = widget::row::with_capacity(3)
row.push( .align_y(Alignment::Center)
widget::button::icon(widget::icon::from_name("go-previous-symbolic")) .spacing(theme::spacing().space_xxs)
.on_press(Message::ItemLeft) .push(
.into(), widget::button::icon(widget::icon::from_name("go-previous-symbolic"))
); .on_press(Message::ItemLeft),
row.push( )
widget::button::icon(widget::icon::from_name("go-next-symbolic")) .push(
.on_press(Message::ItemRight) widget::button::icon(widget::icon::from_name("go-next-symbolic"))
.into(), .on_press(Message::ItemRight),
); );
if self.can_gallery() { if self.can_gallery() {
if let Some(_path) = self.path_opt() { if let Some(_path) = self.path_opt() {
row.push( row = row.push(
widget::button::icon(widget::icon::from_name("view-fullscreen-symbolic")) widget::button::icon(widget::icon::from_name("view-fullscreen-symbolic"))
.on_press(Message::Gallery(true)) .on_press(Message::Gallery(true)),
.into(),
); );
} }
} }
row row.into()
} }
pub fn preview_view<'a>( pub fn preview_view<'a>(