Changeset 1172:9c52e32032d4
- Timestamp:
- 05/21/08 22:14:03 (2 months ago)
- Author:
- Tobias Eberle <info@…>
- Message:
-
contexts/filemanager: popup menu improvements
contexts: added events emitted when popup menu is shown / deactivated
filemanager: added delete file / delete dir
- Location:
- pida/services
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r1158
|
r1172
|
|
| 51 | 51 | |
| 52 | 52 | def popup_menu(self, context, event=None, **kw): |
| | 53 | handler_id = 0 |
| 53 | 54 | menu = self.get_menu(context, **kw) |
| 54 | 55 | menu.show_all() |
| … |
… |
|
| 59 | 60 | button = event.button |
| 60 | 61 | time = event.time |
| | 62 | |
| | 63 | def on_menu_deactivated(menu): |
| | 64 | menu.handler_disconnect(handler_id) |
| | 65 | self.svc.emit('menu-deactivated', context=context, **kw) |
| | 66 | |
| | 67 | handler_id = menu.connect('deactivate', on_menu_deactivated) |
| | 68 | self.svc.emit('show-menu', context=context, **kw) |
| 61 | 69 | menu.popup(None, None, None, button, time) |
| 62 | 70 | |
| 63 | 71 | class ContextEventsConfig(EventsConfig): |
| 64 | 72 | |
| | 73 | def create(self): |
| | 74 | self.publish('show-menu') |
| | 75 | self.publish('menu-deactivated') |
| | 76 | |
| 65 | 77 | def subscribe_all_foreign(self): |
| 66 | 78 | self.subscribe_foreign('plugins', 'plugin_started', |
-
|
r1166
|
r1172
|
|
| 320 | 320 | if item.is_dir: |
| 321 | 321 | self.svc.boss.cmd('contexts', 'popup_menu', context='dir-menu', |
| 322 | | dir_name=item.path, event=event) |
| | 322 | dir_name=item.path, event=event, filemanager=True) |
| 323 | 323 | else: |
| 324 | 324 | self.svc.boss.cmd('contexts', 'popup_menu', context='file-menu', |
| 325 | | file_name=item.path, event=event) |
| | 325 | file_name=item.path, event=event, filemanager=True) |
| 326 | 326 | |
| 327 | 327 | def on_selection_changed(self, ol, item): |
| … |
… |
|
| 521 | 521 | self.subscribe_foreign('plugins', 'plugin_stopped', |
| 522 | 522 | self.on_plugin_stopped); |
| | 523 | self.subscribe_foreign('contexts', 'show-menu', |
| | 524 | self.on_contexts__show_menu) |
| | 525 | self.subscribe_foreign('contexts', 'menu-deactivated', |
| | 526 | self.on_contexts__menu_deactivated) |
| 523 | 527 | |
| 524 | 528 | def on_plugin_started(self, plugin): |
| … |
… |
|
| 528 | 532 | def on_plugin_stopped(self, plugin): |
| 529 | 533 | self.svc.refresh_file_hidden_check_menu() |
| | 534 | |
| | 535 | def on_contexts__show_menu(self, context, **kw): |
| | 536 | if (kw.has_key('filemanager')): |
| | 537 | if (context == 'file-menu'): |
| | 538 | self.svc.get_action('delete-file').set_visible(True) |
| | 539 | else: |
| | 540 | self.svc.get_action('delete-dir').set_visible( |
| | 541 | kw['dir_name'] != self.svc.get_view().path) |
| | 542 | else: |
| | 543 | self.svc.get_action('delete-file').set_visible(False) |
| | 544 | self.svc.get_action('delete-dir').set_visible(False) |
| | 545 | |
| | 546 | def on_contexts__menu_deactivated(self, context, **kw): |
| | 547 | if (kw.has_key('filemanager')): |
| | 548 | if (context == 'file-menu'): |
| | 549 | self.svc.get_action('delete-file').set_visible(False) |
| | 550 | else: |
| | 551 | self.svc.get_action('delete-dir').set_visible(False) |
| 530 | 552 | |
| 531 | 553 | |
| … |
… |
|
| 612 | 634 | def create_actions(self): |
| 613 | 635 | self.create_action( |
| | 636 | 'delete-file', |
| | 637 | TYPE_NORMAL, |
| | 638 | _('Delete File'), |
| | 639 | _('Delete selected file'), |
| | 640 | gtk.STOCK_DELETE, |
| | 641 | self.on_delete |
| | 642 | ) |
| | 643 | |
| | 644 | self.create_action( |
| 614 | 645 | 'browse-for-file', |
| 615 | 646 | TYPE_NORMAL, |
| … |
… |
|
| 618 | 649 | 'file-manager', |
| 619 | 650 | self.on_browse_for_file, |
| | 651 | ) |
| | 652 | |
| | 653 | self.create_action( |
| | 654 | 'delete-dir', |
| | 655 | TYPE_NORMAL, |
| | 656 | _('Delete Directory'), |
| | 657 | _('Delete selected directory'), |
| | 658 | gtk.STOCK_DELETE, |
| | 659 | self.on_delete |
| 620 | 660 | ) |
| 621 | 661 | |
| … |
… |
|
| 700 | 740 | _('Delete the selected file'), |
| 701 | 741 | gtk.STOCK_DELETE, |
| 702 | | self.on_toolbar_delete, |
| | 742 | self.on_delete, |
| 703 | 743 | ) |
| 704 | 744 | self.create_action( |
| … |
… |
|
| 759 | 799 | self.svc.get_view().paste_clipboard() |
| 760 | 800 | |
| 761 | | def on_toolbar_delete(self, action): |
| | 801 | def on_delete(self, action): |
| 762 | 802 | current = self.svc.get_view().get_selected_filename() |
| 763 | 803 | if current is not None: |
-
|
r383
|
r1172
|
|
| 2 | 2 | <popup> |
| 3 | 3 | <placeholder name="1"> |
| 4 | | <menuitem action="browse-for-dir" name="browse-for-dir"/> |
| | 4 | <menuitem action="browse-for-dir" name="browse-for-dir"/> |
| | 5 | <menuitem action="delete-dir" name="delete-dir"/> |
| 5 | 6 | </placeholder> |
| 6 | 7 | <separator/> |
-
|
r299
|
r1172
|
|
| 1 | 1 | <ui> |
| 2 | 2 | <popup> |
| 3 | | <placeholder name="1"/> |
| 4 | | <separator/> |
| 5 | | <placeholder name="2"> |
| 6 | | <menuitem action="browse-for-file" name="browse-for-file"/> |
| 7 | | </placeholder> |
| 8 | | <separator/> |
| 9 | | <placeholder name="3"/> |
| 10 | | <separator/> |
| 11 | | <placeholder name="4"/> |
| 12 | | <separator/> |
| | 3 | <placeholder name="1"> |
| | 4 | <menuitem action="delete-file" name="delete-file"/> |
| | 5 | </placeholder> |
| | 6 | <separator/> |
| | 7 | <placeholder name="2"> |
| | 8 | <menuitem action="browse-for-file" name="browse-for-file"/> |
| | 9 | </placeholder> |
| | 10 | <separator/> |
| | 11 | <placeholder name="3"/> |
| | 12 | <separator/> |
| | 13 | <placeholder name="4"/> |
| | 14 | <separator/> |
| 13 | 15 | </popup> |
| 14 | 16 | </ui> |