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
|
# Use rfd for file dialogs
|
||||||
rfd = ["dep:rfd"]
|
rfd = ["dep:rfd"]
|
||||||
# Enables desktop files helpers
|
# 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
|
# Enables keycode serialization
|
||||||
serde-keycode = ["iced_core/serde"]
|
serde-keycode = ["iced_core/serde"]
|
||||||
# Prevents multiple separate process instances.
|
# Prevents multiple separate process instances.
|
||||||
|
|
@ -67,6 +67,7 @@ derive_setters = "0.1.5"
|
||||||
fraction = "0.14.0"
|
fraction = "0.14.0"
|
||||||
image = { version = "0.24.6", optional = true }
|
image = { version = "0.24.6", optional = true }
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
|
mime = { version = "0.3.17", optional = true }
|
||||||
nix = { version = "0.27", features = ["process"], optional = true }
|
nix = { version = "0.27", features = ["process"], optional = true }
|
||||||
palette = "0.7.3"
|
palette = "0.7.3"
|
||||||
rfd = { version = "0.13.0", optional = true }
|
rfd = { version = "0.13.0", optional = true }
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
pub use freedesktop_desktop_entry::DesktopEntry;
|
pub use freedesktop_desktop_entry::DesktopEntry;
|
||||||
|
pub use mime::Mime;
|
||||||
use std::{
|
use std::{
|
||||||
borrow::Cow,
|
borrow::Cow,
|
||||||
ffi::OsStr,
|
ffi::OsStr,
|
||||||
|
|
@ -57,6 +58,7 @@ pub struct DesktopEntryData {
|
||||||
pub path: Option<PathBuf>,
|
pub path: Option<PathBuf>,
|
||||||
pub categories: String,
|
pub categories: String,
|
||||||
pub desktop_actions: Vec<DesktopAction>,
|
pub desktop_actions: Vec<DesktopAction>,
|
||||||
|
pub mime_types: Vec<Mime>,
|
||||||
pub prefers_dgpu: bool,
|
pub prefers_dgpu: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -182,6 +184,15 @@ impl DesktopEntryData {
|
||||||
.collect::<Vec<_>>()
|
.collect::<Vec<_>>()
|
||||||
})
|
})
|
||||||
.unwrap_or_default(),
|
.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(),
|
prefers_dgpu: de.prefers_non_default_gpu(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue