+ pub fn load_attachments(&mut self) {
+ let Some(obj) = self.obj.get_object() else {
+ return;
+ };
+
+ let proxy = obj.obj_proxy();
+ self.backend.get_note_attachments(self.note_id, move|result|{
+ proxy.call_mainthread(move |doc, wdata|{
+ match result {
+ Ok(attachments) => {
+ println!("attachments loaded");
+ wdata.attachments = attachments;
+ wdata.content = vec![None; wdata.attachments.len()];
+
+ if let Some(selection) = wdata.selection {
+ wdata.selected_index = wdata.attachments.iter().position(|a| a.attachment_id == selection);
+ if let Some(index) = wdata.selected_index {
+ wdata.load_content(index);
+ }
+ } else {
+ wdata.selected_index = None;
+ }
+ },
+ Err(e) => {
+ println!("Cannot get note attachments: {}", e);
+ }
+ }
+ });
+ });
+ }
+ pub fn load_content(&mut self, index: usize) {
+ let Some(obj) = self.obj.get_object() else {
+ return;
+ };
+ if index >= self.content.len() {
+ return;
+ }
+
+ let ct = &self.content[index];
+ if let Some(content) = ct {
+ self.image.image_load_data(&content.content);
+ } else {
+ let proxy = obj.obj_proxy();
+ // TODO: load attachment data
+ }
+ }
+
+