nautilus.MenuProvider

nautilus.MenuProvider — nautilus.MenuProvider Reference

Synopsis

class nautilus.MenuProvider:
    def get_file_items(window, files)
def get_file_items_full(provider, window, files)
def get_background_items(window, folder)
def get_background_items_full(provider, window, folder)
def get_toolbar_items(window, folder)
def get_toolbar_items_full(provider, window, folder)
def emit_items_updated_signal(provider)

Description

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,
    

Signals

"items-updated"

def callback()

Passive Methods

nautilus.MenuProvider.get_file_items

    def get_file_items(window, files)

window :

the current gtk.Window instance

menu :

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.

nautilus.MenuProvider.get_file_items_full

    def get_file_items_full(provider, window, files)

provider :

the current nautilus.MenuProvider instance

window :

the current gtk.Window instance

files :

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.

Note

This method was introduced in nautilus-python 0.7.0.

nautilus.MenuProvider.get_background_items

    def get_background_items(window, folder)

window :

the current gtk.Window instance

folder :

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.

nautilus.MenuProvider.get_background_items_full

    def get_background_items_full(provider, window, folder)

provider :

the current nautilus.MenuProvider instance

window :

the current gtk.Window instance

folder :

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.

Note

This method was introduced in nautilus-python 0.7.0.

nautilus.MenuProvider.get_toolbar_items

    def get_toolbar_items(window, folder)

window :

the current gtk.Window instance

folder :

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.

nautilus.MenuProvider.get_toolbar_items_full

    def get_toolbar_items_full(provider, window, folder)

provider :

the current nautilus.MenuProvider instance

window :

the current gtk.Window instance

folder :

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.

Note

This method was introduced in nautilus-python 0.7.0.

Active Methods

nautilus.MenuProvider.emit_items_updated_signal

    def emit_items_updated_signal(provider)

provider :

the current nautilus.MenuProvider instance

Emits the "items-updated" signal.

Note

This method was introduced in nautilus-python 0.7.0.

Signal Details

The "items-updated" nautilus.MenuProvider Signal

Emits the "items-updated" signal.