]> uap-core.de Git - note.git/commitdiff
implement go_back/go_forward for the attachments window main
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 5 Sep 2026 12:43:36 +0000 (14:43 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 5 Sep 2026 12:43:36 +0000 (14:43 +0200)
application/note/src/attachments_window.rs

index 765601073d3bd2a0e51f45c3428de53f6710b03c..6b38a29de0d3cb23417f781894cc5232ea066114 100644 (file)
@@ -192,14 +192,36 @@ impl AttachmentsWindow {
         a
     }
 
+    pub fn update_selection(&mut self, selected_index: usize) {
+        let Some(attachment) = self.attachments.get(selected_index) else {
+            return;
+        };
+        self.selected_index = Some(selected_index);
+        self.selection = Some(attachment.attachment.attachment_id);
+        self.load_content(selected_index);
+    }
 
     #[action]
     pub fn go_back(&mut self, _event: &ActionEvent) {
+        let selected_index = match self.selected_index {
+            Some(index) => index.checked_sub(1),
+            None => self.attachments.len().checked_sub(1),
+        };
 
+        if let Some(index) = selected_index {
+            self.update_selection(index);
+        }
     }
 
     #[action]
     pub fn go_forward(&mut self, _event: &ActionEvent) {
+        let selected_index = match self.selected_index {
+            Some(index) => index + 1,
+            None => 0,
+        };
 
+        if selected_index < self.attachments.len() {
+            self.update_selection(selected_index);
+        }
     }
 }