pub local_path: Option<String>,
pub is_tmp_file: bool,
+ pub is_opening: bool,
#[bind("note_type")]
pub note_type: UiInteger,
nodename: String::default(),
local_path: None,
is_tmp_file: false,
+ is_opening: false,
note_type: Default::default(),
note_nodename: Default::default(),
#[action]
pub fn open_extern(&mut self, _event: &ActionEvent) {
+ if self.is_opening {
+ return;
+ }
+
let Some(doc) = self.doc.get_doc() else {
return;
};
println!("open file: {}", path);
open_file(path.as_str());
} else if let NoteId::Id(note_id) = self.id {
+ self.is_opening = true;
let proxy = doc.doc_proxy();
self.backend.open_extern(note_id, |result|{
proxy.call_mainthread(move |_doc, note|{
+ note.is_opening = false;
match result {
OpenExternResult::Ok((path, istmp)) => {
println!("open file: {}", path);