Mercurial > getan > getan
comparison getan/states.py @ 473:b9e30e556844
Switch to projects when entries are empty.
*update CHANGES
author | Magnus Schieder <mschieder@intevation.de> |
---|---|
date | Wed, 09 May 2018 15:13:36 +0200 |
parents | ca6d11781e2f |
children | 0d831a9f547b |
comparison
equal
deleted
inserted
replaced
472:ca6d11781e2f | 473:b9e30e556844 |
---|---|
491 return True | 491 return True |
492 | 492 |
493 def renew_focus(self): | 493 def renew_focus(self): |
494 e_len = self.view.row_count() | 494 e_len = self.view.row_count() |
495 if e_len == 0: | 495 if e_len == 0: |
496 return | 496 return False |
497 f = self.view.get_focus_pos() | 497 f = self.view.get_focus_pos() |
498 if f >= e_len: | 498 if f >= e_len: |
499 f = e_len - 1 | 499 f = e_len - 1 |
500 self.view.set_focus(f) | 500 self.view.set_focus(f) |
501 return True | |
501 | 502 |
502 def set_focus(self): | 503 def set_focus(self): |
503 self.controller.view.set_focus("entries") | 504 self.controller.view.set_focus("entries") |
504 self.controller.entries_view.set_focus(0) | 505 self.controller.entries_view.set_focus(0) |
505 | 506 |
587 def handle_input(self, key): | 588 def handle_input(self, key): |
588 keys = self.config.get_keybinding() | 589 keys = self.config.get_keybinding() |
589 if 'y' in key: | 590 if 'y' in key: |
590 if self.entries: | 591 if self.entries: |
591 self.controller.delete_entries(self.entries) | 592 self.controller.delete_entries(self.entries) |
592 self.renew_focus() | 593 new_focus = self.renew_focus() |
593 self.projectlist_state.view.update_rows() | 594 self.projectlist_state.view.update_rows() |
594 # Deletes the selection of entries | 595 # Deletes the selection of entries |
595 self.view.selection = [] | 596 self.view.selection = [] |
596 self.view.set_footer_text("", 'entry_footer') | 597 self.view.set_footer_text("", 'entry_footer') |
597 # avoid creating new DefaultEntryListState and setting focus | 598 # avoid creating new DefaultEntryListState and setting focus |
598 self.set_next_state(self.old_state) | 599 if new_focus: |
600 self.set_next_state(self.old_state) | |
601 else: | |
602 self.set_next_state(self.projectlist_state) | |
603 self.controller.view.set_focus(0) | |
604 | |
599 self.controller.project_view.show_total_time() | 605 self.controller.project_view.show_total_time() |
600 return True | 606 return True |
601 | 607 |
602 if 'n' in key or keys.get_escape() in key: | 608 if 'n' in key or keys.get_escape() in key: |
603 self.view.set_footer_text("", 'entry_footer') | 609 self.view.set_footer_text("", 'entry_footer') |
651 def handle_input(self, key): | 657 def handle_input(self, key): |
652 keys = self.config.get_keybinding() | 658 keys = self.config.get_keybinding() |
653 if 'y' in key and self.proj: | 659 if 'y' in key and self.proj: |
654 logger.debug("MoveEntryState: move selected entries.") | 660 logger.debug("MoveEntryState: move selected entries.") |
655 self.controller.move_entries(self.entries, self.proj) | 661 self.controller.move_entries(self.entries, self.proj) |
656 self.renew_focus() | 662 new_focus = self.renew_focus() |
657 # Deletes the selection of entries | 663 # Deletes the selection of entries |
658 self.view.selection = [] | 664 self.view.selection = [] |
659 self.view.set_footer_text('', 'entry_footer') | 665 self.view.set_footer_text('', 'entry_footer') |
660 self.proj = None | 666 self.proj = None |
661 self.set_next_state(DefaultEntryListState(self.projectlist_state, | 667 if new_focus: |
662 self.controller, | 668 self.set_next_state(DefaultEntryListState(self.projectlist_state, |
663 self.view)) | 669 self.controller, |
670 self.view)) | |
671 else: | |
672 self.set_next_state(self.projectlist_state) | |
673 self.controller.view.set_focus(0) | |
674 | |
664 return True | 675 return True |
665 | 676 |
666 if 'n' in key and self.proj: | 677 if 'n' in key and self.proj: |
667 self.view.set_footer_text('', 'entry_footer') | 678 self.view.set_footer_text('', 'entry_footer') |
668 self.reset_project_footer() | 679 self.reset_project_footer() |