Show
Ignore:
Timestamp:
05/21/08 22:14:03 (4 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

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pida/services/filemanager/filemanager.py

    r1166 r1172  
    320320        if item.is_dir: 
    321321            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)  
    323323        else: 
    324324            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) 
    326326 
    327327    def on_selection_changed(self, ol, item): 
     
    521521        self.subscribe_foreign('plugins', 'plugin_stopped', 
    522522            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) 
    523527 
    524528    def on_plugin_started(self, plugin): 
     
    528532    def on_plugin_stopped(self, plugin): 
    529533        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) 
    530552 
    531553 
     
    612634    def create_actions(self): 
    613635        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( 
    614645            'browse-for-file', 
    615646            TYPE_NORMAL, 
     
    618649            'file-manager', 
    619650            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 
    620660        ) 
    621661 
     
    700740            _('Delete the selected file'), 
    701741            gtk.STOCK_DELETE, 
    702             self.on_toolbar_delete, 
     742            self.on_delete, 
    703743        ) 
    704744        self.create_action( 
     
    759799        self.svc.get_view().paste_clipboard() 
    760800 
    761     def on_toolbar_delete(self, action): 
     801    def on_delete(self, action): 
    762802        current = self.svc.get_view().get_selected_filename() 
    763803        if current is not None: