Skip to content

Commit

Permalink
Added mime field to DroppedFiles (#3273)
Browse files Browse the repository at this point in the history
  • Loading branch information
abey79 committed Aug 23, 2023
1 parent ec506c0 commit 2c5fc5a
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 3 deletions.
2 changes: 2 additions & 0 deletions crates/eframe/src/web/events.rs
Original file line number Diff line number Diff line change
Expand Up @@ -473,6 +473,7 @@ pub fn install_canvas_events(runner_ref: &WebRunner) -> Result<(), JsValue> {
for i in 0..files.length() {
if let Some(file) = files.get(i) {
let name = file.name();
let mime = file.type_();
let last_modified = std::time::UNIX_EPOCH
+ std::time::Duration::from_millis(file.last_modified() as u64);

Expand All @@ -491,6 +492,7 @@ pub fn install_canvas_events(runner_ref: &WebRunner) -> Result<(), JsValue> {
runner_lock.input.raw.dropped_files.push(
egui::DroppedFile {
name,
mime,
last_modified: Some(last_modified),
bytes: Some(bytes.into()),
..Default::default()
Expand Down
3 changes: 3 additions & 0 deletions crates/egui/src/data/input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,9 @@ pub struct DroppedFile {
/// Name of the file. Set by the `eframe` web backend.
pub name: String,

/// With the `eframe` web backend, this is set to the mime-type of the file (if available).
pub mime: String,

/// Set by the `eframe` web backend.
pub last_modified: Option<std::time::SystemTime>,

Expand Down
11 changes: 10 additions & 1 deletion crates/egui_demo_app/src/wrap_app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -460,9 +460,18 @@ impl WrapApp {
} else {
"???".to_owned()
};

let mut additional_info = vec![];
if !file.mime.is_empty() {
additional_info.push(format!("type: {}", file.mime));
}
if let Some(bytes) = &file.bytes {
write!(info, " ({} bytes)", bytes.len()).ok();
additional_info.push(format!("{} bytes", bytes.len()));
}
if !additional_info.is_empty() {
info += &format!(" ({})", additional_info.join(", "));
}

ui.label(info);
}
});
Expand Down
12 changes: 10 additions & 2 deletions examples/file_dialog/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,18 @@ impl eframe::App for MyApp {
} else {
"???".to_owned()
};

let mut additional_info = vec![];
if !file.mime.is_empty() {
additional_info.push(format!("type: {}", file.mime));
}
if let Some(bytes) = &file.bytes {
use std::fmt::Write as _;
write!(info, " ({} bytes)", bytes.len()).ok();
additional_info.push(format!("{} bytes", bytes.len()));
}
if !additional_info.is_empty() {
info += &format!(" ({})", additional_info.join(", "));
}

ui.label(info);
}
});
Expand Down

0 comments on commit 2c5fc5a

Please sign in to comment.