mirror of https://github.com/gmbrax/Pilgrim.git
				
				
				
			Merge pull request #36
Fixed the bindings to properly work and changed some bindings to avoid conflicts with the system
This commit is contained in:
		
						commit
						417bc0d3e5
					
				|  | @ -24,9 +24,9 @@ class EditEntryScreen(Screen): | |||
|     BINDINGS = [ | ||||
|         Binding("ctrl+q", "quit", "Quit"), | ||||
|         Binding("ctrl+s", "save", "Save"), | ||||
|         Binding("ctrl+n", "new_entry", "New Entry"), | ||||
|         Binding("ctrl+shift+n", "next_entry", "Next Entry"), | ||||
|         Binding("ctrl+shift+p", "prev_entry", "Previous Entry"), | ||||
|         Binding("shift+f5", "new_entry", "New Entry"), | ||||
|         Binding("f5", "next_entry", "Next Entry"), | ||||
|         Binding("f4", "prev_entry", "Previous Entry"), | ||||
|         Binding("ctrl+r", "rename_entry", "Rename Entry"), | ||||
|         Binding("f8", "toggle_sidebar", "Toggle Photos"), | ||||
|         Binding("f9", "toggle_focus", "Toggle Focus"), | ||||
|  | @ -1000,28 +1000,36 @@ class EditEntryScreen(Screen): | |||
|         except Exception as e: | ||||
|             self.notify(f"Error updating entry: {str(e)}") | ||||
| 
 | ||||
|     def on_key(self, event): | ||||
|         # Sidebar contextual shortcuts | ||||
|     def check_key(self, event): | ||||
|         """Check for custom key handling before bindings are processed""" | ||||
| 
 | ||||
|         # Sidebar shortcuts | ||||
|         if self.sidebar_focused and self.sidebar_visible: | ||||
| 
 | ||||
|             sidebar_keys = ["i", "n", "d", "e"] | ||||
|             if event.key in sidebar_keys: | ||||
|                 if event.key == "i": | ||||
| 
 | ||||
|                     self.action_insert_photo() | ||||
|                 event.stop() | ||||
|                 elif event.key == "n": | ||||
| 
 | ||||
|                     self.action_ingest_new_photo() | ||||
|                 event.stop() | ||||
|                 elif event.key == "d": | ||||
| 
 | ||||
|                     self.action_delete_photo() | ||||
|                 event.stop() | ||||
|                 elif event.key == "e": | ||||
| 
 | ||||
|                     self.action_edit_photo() | ||||
|                 event.stop() | ||||
|         # Shift+Tab: remove indent | ||||
|         elif self.focused is self.text_entry and event.key == "shift+tab": | ||||
|                 return True  # Indica que o evento foi processado | ||||
| 
 | ||||
|         # Text area shortcuts | ||||
|         elif self.focused is self.text_entry: | ||||
|             if event.key in ["tab", "shift+tab"]: | ||||
|                 if event.key == "shift+tab": | ||||
|                     self._handle_shift_tab() | ||||
|                 elif event.key == "tab": | ||||
|                     self.text_entry.insert('\t') | ||||
|                 return True  # Indica que o evento foi processado | ||||
| 
 | ||||
|         return False  # Não foi processado, continuar com bindings | ||||
| 
 | ||||
|     def _handle_shift_tab(self): | ||||
|         """Handle shift+tab for removing indentation""" | ||||
|         textarea = self.text_entry | ||||
|         row, col = textarea.cursor_location | ||||
|         lines = textarea.text.splitlines() | ||||
|  | @ -1041,11 +1049,11 @@ class EditEntryScreen(Screen): | |||
|                 lines[row] = line[to_remove:] | ||||
|                 textarea.text = '\n'.join(lines) | ||||
|                 textarea.cursor_location = (row, max(col - to_remove, 0)) | ||||
| 
 | ||||
|     def on_key(self, event): | ||||
|         if self.check_key(event): | ||||
|             event.stop() | ||||
|         # Tab: insert tab | ||||
|         elif self.focused is self.text_entry and event.key == "tab": | ||||
|             self.text_entry.insert('\t') | ||||
|             event.stop() | ||||
|             return | ||||
| 
 | ||||
|     def on_footer_action(self, event) -> None: | ||||
|         """Handle clicks on footer actions (Textual 3.x).""" | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue