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()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)