Add mime types to desktop entry data
This commit is contained in:
parent
8a86f1857f
commit
0a7327c91a
2 changed files with 13 additions and 1 deletions
|
|
@ -26,7 +26,7 @@ process = ["dep:nix"]
|
|||
# Use rfd for file dialogs
|
||||
rfd = ["dep:rfd"]
|
||||
# Enables desktop files helpers
|
||||
desktop = ["process", "dep:freedesktop-desktop-entry", "dep:shlex"]
|
||||
desktop = ["process", "dep:freedesktop-desktop-entry", "dep:mime", "dep:shlex"]
|
||||
# Enables keycode serialization
|
||||
serde-keycode = ["iced_core/serde"]
|
||||
# Prevents multiple separate process instances.
|
||||
|
|
@ -67,6 +67,7 @@ derive_setters = "0.1.5"
|
|||
fraction = "0.14.0"
|
||||
image = { version = "0.24.6", optional = true }
|
||||
lazy_static = "1.4.0"
|
||||
mime = { version = "0.3.17", optional = true }
|
||||
nix = { version = "0.27", features = ["process"], optional = true }
|
||||
palette = "0.7.3"
|
||||
rfd = { version = "0.13.0", optional = true }
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
pub use freedesktop_desktop_entry::DesktopEntry;
|
||||
pub use mime::Mime;
|
||||
use std::{
|
||||
borrow::Cow,
|
||||
ffi::OsStr,
|
||||
|
|
@ -57,6 +58,7 @@ pub struct DesktopEntryData {
|
|||
pub path: Option<PathBuf>,
|
||||
pub categories: String,
|
||||
pub desktop_actions: Vec<DesktopAction>,
|
||||
pub mime_types: Vec<Mime>,
|
||||
pub prefers_dgpu: bool,
|
||||
}
|
||||
|
||||
|
|
@ -182,6 +184,15 @@ impl DesktopEntryData {
|
|||
.collect::<Vec<_>>()
|
||||
})
|
||||
.unwrap_or_default(),
|
||||
mime_types: de
|
||||
.mime_type()
|
||||
.map(|mime_types| {
|
||||
mime_types
|
||||
.split_terminator(';')
|
||||
.filter_map(|mime_type| mime_type.parse::<Mime>().ok())
|
||||
.collect::<Vec<_>>()
|
||||
})
|
||||
.unwrap_or_default(),
|
||||
prefers_dgpu: de.prefers_non_default_gpu(),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue