nautilus.MenuProvider — nautilus.MenuProvider Reference
class nautilus.MenuProvider: |
If subclassed, Nautilus will request a list of nautilus.MenuItem objects,
which are then attached to various menus. Nautilus expects at least one of
the following methods to be defined (or their *_full variants): get_file_items,
get_background_items, or get_toolbar_items.
Example 5. nautilus.MenuProvider Example
import os
import urllib
import gtk
import nautilus
import gconf
TERMINAL_KEY = '/desktop/gnome/applications/terminal/exec'
class OpenTerminalExtension(nautilus.MenuProvider):
def __init__(self):
self.client = gconf.client_get_default()
def _open_terminal(self, file):
filename = urllib.unquote(file.get_uri()[7:])
terminal = self.client.get_string(TERMINAL_KEY)
os.chdir(filename)
os.system('%s &' % terminal)
def menu_activate_cb(self, menu, file):
self._open_terminal(file)
def menu_background_activate_cb(self, menu, file):
self._open_terminal(file)
def get_file_items(self, window, files):
if len(files) != 1:
return
file = files[0]
if not file.is_directory() or file.get_uri_scheme() != 'file':
return
item = nautilus.MenuItem('NautilusPython::openterminal_file_item',
'Open Terminal' ,
'Open Terminal In %s' % file.get_name())
item.connect('activate', self.menu_activate_cb, file)
return item,
def get_background_items(self, window, file):
item = nautilus.MenuItem('NautilusPython::openterminal_item',
'Open Terminal Here',
'Open Terminal In This Directory')
item.connect('activate', self.menu_background_activate_cb, file)
return item,
def get_file_items(window, files)
| the current gtk.Window instance |
| a list of nautilus.FileInfo objects. |
Returns : | a list of nautilus.MenuItem objects |
The get_file_items() method returns a list of
nautilus.MenuItem objects.
def get_file_items_full(provider, window, files)
| the current nautilus.MenuProvider instance |
| the current gtk.Window instance |
| a list of nautilus.FileInfo objects. |
Returns : | a list of nautilus.MenuItem objects |
The get_file_items_full() method returns a list of
nautilus.MenuItem objects.
This method was created in order to allow extension writers to call the nautilus.MenuProvider.emit_items_updated_signal, which must be passed the current provider instance.
def get_background_items(window, folder)
| the current gtk.Window instance |
| the current folder, as a nautilus.FileInfo object. |
Returns : | a list of nautilus.MenuItem objects |
The get_background_items() method returns a list of
nautilus.MenuItem objects.
def get_background_items_full(provider, window, folder)
| the current nautilus.MenuProvider instance |
| the current gtk.Window instance |
| the current folder, as a nautilus.FileInfo object. |
Returns : | a list of nautilus.MenuItem objects |
The get_background_items_full() method returns a list of
nautilus.MenuItem objects.
This method was created in order to allow extension writers to call the nautilus.MenuProvider.emit_items_updated_signal, which must be passed the current provider instance.
def get_toolbar_items(window, folder)
| the current gtk.Window instance |
| the current folder, as a nautilus.FileInfo object. |
Returns : | a list of nautilus.MenuItem objects |
The get_toolbar_items() method returns a list of
nautilus.MenuItem objects.
def get_toolbar_items_full(provider, window, folder)
| the current nautilus.MenuProvider instance |
| the current gtk.Window instance |
| the current folder, as a nautilus.FileInfo object. |
Returns : | a list of nautilus.MenuItem objects |
The get_toolbar_items_full() method returns a list of
nautilus.MenuItem objects.
This method was created in order to allow extension writers to call the nautilus.MenuProvider.emit_items_updated_signal, which must be passed the current provider instance.
def emit_items_updated_signal(provider)
| the current nautilus.MenuProvider instance |
Emits the "items-updated" signal.