示例#1
0
    def get_background_items(self, window, file):
        submenu = nautilus.Menu()
        submenu.append_item(
            nautilus.MenuItem('MarkEmblemsProvider::Bar', 'Bar', ''))

        menuitem = nautilus.MenuItem('MarkEmblemsProvider::Foo', 'Foo', '')
        menuitem.set_submenu(submenu)

        return menuitem,
示例#2
0
    def get_file_items(self, window, files):
        top_menuitem = nautilus.MenuItem('ExampleMenuProvider::Foo', 'Foo', '')

        submenu = nautilus.Menu()
        top_menuitem.set_submenu(submenu)

        sub_menuitem = nautilus.MenuItem('ExampleMenuProvider::Bar', 'Bar', '')
        submenu.append_item(sub_menuitem)

        return top_menuitem,
示例#3
0
 def get_file_items(self, window, files):
     mitem = nautilus.MenuItem('Nautilus::Timeslider',
                               'Timeslider show/hide', '')
     mitem.connect('activate', self.menu_activate_cb_single)
     items = []
     items.append(mitem)
     return items
    def get_file_items(self, window, files):
        """Called when the user selects a file in Nautilus. We want to check
        whether those are supported files or directories with supported files."""
        supported = []
        for f in files:
            if f.get_mime_type() in FORMATS:
                name = urllib.unquote(f.get_uri()[7:])
                supported.append(name)
            elif f.is_directory():
                supported = process(urllib.unquote(f.get_uri()[7:]), supported)

        if not supported:
            return

        have_exif = False
        for path in supported:
            img_file = open(path, "rb")
            tags = EXIF.process_file(img_file)
            if tags.has_key("EXIF DateTimeOriginal"):
                have_exif = True
                break

        if not have_exif:
            return


        item = nautilus.MenuItem("NautilusPython::rename_exif_date_item",
                                 "Rename to EXIF date" ,
                                 "Rename to EXIF date",
                                 "nautilus-rename-exif-date")
        item.connect("activate", self.menu_activate_cb, supported)
        return item,
    def get_file_items(self, window, files):
        if not files:
            return
        
        for fileOb in files:
            ## TODO: Check if the files are in a subversion working copy
            if fileOb.get_uri_scheme() != 'file':
                DEBUG('URI for %s is not file, aborting.' % fileOb.get_uri())
                return

        global svnClient
        items = []

        for filename in get_filenames(files):
            if not (svnClient.is_working_copy(filename) and
                    svnClient.is_committable(filename)):
                break
        else:
            item = nautilus.MenuItem('Nautilus::svn_commit',
                                     'SVN Commit',
                                     'Commit file(s) to the Subversion '
                                     'repository')
            item.connect('activate', self.commit_cb, files)
            items.append(item)
        return items
示例#6
0
    def get_file_items(self, window, files):
        # Show the menu iif:
        # - There is at least on file selected
        # - All the selected files are images
        # - All selected images are locals (currently Postr doesn't have
        #   support for gnome-vfs
        # - Postr is installed (is in PATH)
        if len(files) == 0:
            return

        for file in files:
            if file.is_directory() or file.get_uri_scheme() != 'file':
                return
            if not file.is_mime_type("image/*"):
                return

        #self.program = self.locate_program(PROGRAM_NAME)
        #if not self.program:
        #    return

        item = nautilus.MenuItem('PostrExtension::upload_files',
                                 _('Upload to Yupoo...'),
                                 _('Upload the selected files into Yupoo'),
                                 "postr")
        item.connect('activate', self.upload_files, files)

        return item,
示例#7
0
    def get_file_items(self, window, files):
        # test: czy w ogóle cokolwiek jest zaznaczone
        if len(files) == 0:
            return

        # filtr: tylko pliki *.desktop
        files = [
            file for file in files
            if file.get_mime_type() == 'application/x-desktop'
        ]

        if len(files) == 0:
            return
        elif len(files) == 1:
            LABEL = 'Edit %s file' % files[0].get_name()
            TOOLTIP = 'Edit this desktop file in default editor'
        else:
            LABEL = 'Edit all desktop files'
            TOOLTIP = 'Edit all desktop files in default editor'

        NAME = 'NautilusPython::edit_desktop_files_item'
        ICON = '/usr/share/pixmaps/nautilus/colors.png'

        item = nautilus.MenuItem(NAME, LABEL, TOOLTIP, ICON)
        item.connect('activate', self.edit_desktop_files, files)

        return item,
示例#8
0
    def get_file_items(self, window, files):
        paths = []
        for file in files:
            if self.valid_file(file):
                path = urllib.unquote(file.get_uri()[7:])
                paths.append(path)

        if len(paths) < 1:
            return

        locale.setlocale(locale.LC_ALL, '')
        gettext.bindtextdomain(APP)
        gettext.textdomain(APP)
        _ = gettext.gettext

        tooltip_message = gettext.ngettext(
            'Sign selected file with Digidoc3 Client',
            'Sign selected files with Digidoc3 Client', len(paths))

        item = nautilus.MenuItem('DigidocSigner', _('Sign with ID card'),
                                 tooltip_message)
        item.set_property('icon', 'qdigidoc-client')

        item.connect('activate', self.menu_activate_cb, paths)
        return item,
示例#9
0
 def get_background_items(self, window, file):
     """Called when the user selects a file in Nautilus."""
     # Put an item in nautilus menu
     item = nautilus.MenuItem("NautilusPython::open_http_serv",
                              "Open Simple HTTP Server",
                              "Open Simple HTTP Server", "open-http-serv")
     item.connect("activate", self.menu_activate_cb, file)
     return item,
示例#10
0
  def get_file_items(self, window, files):
    if len(files) == 0:
      return

    item = nautilus.MenuItem('NautilusBulkRename::bulk-rename', 'Bulk Rename', 'Rename all selected files at once')
    item.set_data('display', window.get_screen().make_display_name())
    item.connect('activate', self.menu_activate_cb, files)
    return item,
    def get_file_items(self, window, files):
        """Called when the user selects a file in Nautilus."""

        # This script will only accept one file
        if len(files) != 1:
            return

        f = files[0]
        log(f.get_uri())
        filepath = normalize(urllib.unquote(f.get_uri()[7:]))
        name = os.path.basename(filepath)

        log(filepath)
        log(name)
        if not ".desktop" in name:
            log("no .desktop file")
            return

        # read desktop file and search
        # X-multiseat-desktop=true
        f = open(filepath, 'r')
        data = {}
        for line in f.readlines():
            if "=" in line:
                data[line.split('=')[0]] = line.strip().split('=')[1]
        f.close()
        log(data)

        if not data.has_key('X-multiseat-desktop'):
            log("no key X-multiseat-desktop")
            return

        umount_item = nautilus.MenuItem(
            "NautilusPython::umount_multiseat_item",
            "Desmontar dispositivo extraíble multiseat",
            "Desmontar dispositivo extraíble multiseat",
            "nautilus-mount-image")

        if os.path.isfile(
                '/usr/share/icons/maxtoon/16x16/devices/usbpendrive_unmount.png'
        ):
            umount_item.set_property(
                'icon',
                '/usr/share/icons/maxtoon/16x16/devices/usbpendrive_unmount.png'
            )
        elif os.path.isfile(
                '/usr/share/icons/gnome/16x16/devices/usbpendrive_unmount.png'
        ):
            umount_item.set_property(
                'icon',
                '/usr/share/icons/gnome/16x16/devices/usbpendrive_unmount.png')
        else:
            umount_item.set_property('icon', 'gtk-dialog-warning')

        umount_item.connect("activate", self.menu_activate_umount_multiseat,
                            data)
        log("found X-multiseat-desktop in %s" % filepath)
        return umount_item,
示例#12
0
    def get_file_items(self, window, files):
        submenu = nautilus.Menu()

        item = nautilus.MenuItem('MarkEmblemsProvider::Favourite', 'Favourite',
                                 '')
        item.connect('activate', self.on_favourite_activate, files)
        submenu.append_item(item)

        item = nautilus.MenuItem('MarkEmblemsProvider::Update', 'Update', '')
        submenu.append_item(item)

        item = nautilus.MenuItem('MarkEmblemsProvider::Web', 'Web', '')
        submenu.append_item(item)

        menuitem = nautilus.MenuItem('MarkEmblemsProvider::Foo', 'Mark', '')
        menuitem.set_submenu(submenu)

        return menuitem,
    def get_file_items(self, window, files):
        if self.coherence == None:
            return
        if len(files) == 0:
            return

        for file in files:
            if file.is_directory() or file.get_uri_scheme() != 'file':
                return

        #pin = self.coherence.get_pin('Nautilus::MediaServer::%d'%os.getpid())
        #print 'Pin:',pin
        #if pin == 'Coherence::Pin::None':
        #    return
        devices = self.coherence.get_devices(dbus_interface=BUS_NAME)
        i = 0
        menuitem = None
        for device in devices:
            print device['friendly_name'], device['device_type']
            if device['device_type'].split(':')[3] == 'MediaRenderer':
                if i == 0:
                    menuitem = nautilus.MenuItem(
                        'CoherencePlayExtension::Play',
                        'Play on MediaRenderer',
                        'Play the selected file(s) on a DLNA/UPnP MediaRenderer'
                    )
                    submenu = nautilus.Menu()
                    menuitem.set_submenu(submenu)

                item = nautilus.MenuItem('CoherencePlayExtension::Play%d' % i,
                                         device['friendly_name'], '')
                for service in device['services']:
                    service_type = service.split('/')[-1]
                    if service_type == 'AVTransport':
                        item.connect('activate', self.play, service,
                                     device['path'], files)
                        break
                submenu.append_item(item)
                i += 1

        if i == 0:
            return

        return menuitem,
示例#14
0
    def get_file_items(self, window, files):
        """
            This method is called anytime one or more files are selected and
            the right-click menu is invoked. If we are looking at a media
            file then let's show the new menu item!
        """
        # Check if this is actually a media file and it is local
        for f in files:
            if f.get_mime_type() not in SUPPORTED_FORMATS:
                return

            if not f.get_uri().startswith("file://"):
                return

        # Create the new menu item, with a submenu of devices each with a
        # submenu of presets for that particular device.
        menu = nautilus.MenuItem('Nautilus::convert_media',
                                 _('Convert for device'),
                                 _('Convert this media using a device preset'))

        devices = nautilus.Menu()
        menu.set_submenu(devices)

        presets = arista.presets.get().items()
        for shortname, device in sorted(
                presets, lambda x, y: cmp(x[1].name, y[1].name)):
            item = nautilus.MenuItem("Nautilus::convert_to_%s" % shortname,
                                     device.name, device.description)

            presets = nautilus.Menu()
            item.set_submenu(presets)

            for preset_name, preset in device.presets.items():
                preset_item = nautilus.MenuItem(
                    "Nautilus::convert_to_%s_%s" % (shortname, preset.name),
                    preset.name, "%s: %s" % (device.name, preset.name))
                preset_item.connect("activate", self.callback,
                                    [f.get_uri()[7:] for f in files],
                                    shortname, preset.name)
                presets.append_item(preset_item)

            devices.append_item(item)

        return menu,
示例#15
0
    def get_file_items(self, window, files):
        self.daemonConnect()
        if self.xmms == None:
            return

        for file in files:
            file.xmmsId = self.xmms.medialib_get_id(fileToXmmsUri(file))

        allFilesHaveIds = True
        noFilesHaveIds = True

        for file in files:
            if allFilesHaveIds and file.xmmsId == 0:
                allFilesHaveIds = False
            if noFilesHaveIds and file.xmmsId > 0:
                noFilesHaveIds = False

        topItem = nautilus.MenuItem('Xmms2Nautilus::xmms2', 'xmms2', '',
                                    'xmms2')

        menu = nautilus.Menu()
        topItem.set_submenu(menu)

        #if noFilesHaveIds:
        menuItem = nautilus.MenuItem('Xmms2Nautilus::add', 'add',
                                     'Add selected files to medialib',
                                     'edit-add')
        menuItem.connect('activate', self.menuAdd, files)
        menu.append_item(menuItem)

        if allFilesHaveIds:
            menuItem = nautilus.MenuItem(
                'Xmms2Nautilus::remove', 'remove',
                'Remove selected files from medialib', 'edit-delete')
            menuItem.connect('activate', self.menuRemove, files)
            menu.append_item(menuItem)

            menuItem = nautilus.MenuItem(
                'Xmms2Nautilus::rehash', 'rehash',
                'Reload metadata from selected files', 'reload')
            menuItem.connect('activate', self.menuRehash, files)
            menu.append_item(menuItem)

        return topItem,
示例#16
0
 def __addMenuItem(self, file, item, description):
     """
     Add a item to menuItens (itens for file-menu and bg-menu)
     param file: a FileInfo instance
     param item: menu label/id
     param description: menu description
     """
     menuid = 'Nemoversion::%s' % item.replace(' ', '_')
     item = nautilus.MenuItem(menuid, item, description)
     item.connect('activate', self.genericCallback(file, menuid), file)
     self.__menuItens.append(item)
示例#17
0
    def get_file_items(self, window, files):
        # Keep only the files we want (right type and file)
        files = [f for f in files if self.is_valid(f)]
        if len(files) == 0:
            return

        item = nautilus.MenuItem('Nautilus::download_subtitles',
                                 _('Find subtitles for this video'),
                                 _('Download subtitles for this video'),
                                 gtk.STOCK_FIND_AND_REPLACE)
        item.connect('activate', self.menu_activate_cb, files)
        return item,
示例#18
0
 def get_file_items(self, window, files):
     if len(files) != 1:
         return
     
     file = files[0]
     if file.is_directory() or file.get_uri_scheme() != 'file':
         return
     
     item = nautilus.MenuItem('NautilusPython::openterminal_file_item',
                              'Open As Root' ,
                              'Open File %s As Root' % file.get_name())
     item.connect('activate', self.menu_activate_cb, file)
     return item,
    def get_file_items(self, window, files):
        f = file('/tmp/test', 'w')
        f.write(str(files[0].get_uri_scheme()))
        f.close()

        if len(files) > 1:
            return
        if files[0].is_directory():
            return

        if files[0].get_uri_scheme() != 'file':
            top_menuitem = nautilus.MenuItem('NautilusPython::RVFS', 'RVFS',
                                             '')
            submenu = nautilus.Menu()
            top_menuitem.set_submenu(submenu)
            sub_menuitem2 = nautilus.MenuItem('NautilusPython::su',
                                              'Disk Usage', '')
            submenu.append_item(sub_menuitem2)
            return

        filename = urllib.unquote(files[0].get_uri()[7:])

        test_command = 'file -i -b ' + filename + ' | cut -d \/ -f 1'
        a = os.popen(test_command)
        res = a.read().strip()
        if res != 'text' and res != 'empty':
            return

        top_menuitem = nautilus.MenuItem('NautilusPython::RVFS', 'RVFS', '')
        submenu = nautilus.Menu()
        top_menuitem.set_submenu(submenu)

        sub_menuitem = nautilus.MenuItem('NautilusPython::st', 'Versions', '')
        submenu.append_item(sub_menuitem)

        sub_menuitem.connect('activate', self.show_timeline, filename)

        return top_menuitem,
    def get_file_items(self, window, files):
        if len(files) != 1:
            return

        fileitem = files[0]

        top_menuitem = nautilus.MenuItem(
            'ActivitiesMenuProvider::MoveToActivity', 'Move to Activity',
            'Move directory to %s' % fileitem.get_name())

        submenu = nautilus.Menu()
        top_menuitem.set_submenu(submenu)

        self.acModel = model.ActivitiesModel()
        activities = self.acModel.getActivities()
        for key, value in activities.items():
            sub_menuitem = nautilus.MenuItem(
                'ActivitiesMenuProvider::Activity%s' % key, key, key)
            sub_menuitem.connect('activate', self.menu_activate_cb, fileitem,
                                 key)
            submenu.append_item(sub_menuitem)

        return top_menuitem,
示例#21
0
        def get_file_items(self, window, files):
            if self.ui == None:
                return
            if len(files) == 0:
                return

            for file in files:
                if not file.is_directory():
                    return

            item = nautilus.MenuItem('CoherenceExportExtension::export_resources',
                                     'Sharing as a MediaServer...',
                                     'Share the selected folders as a DLNA/UPnP MediaServer')
            item.connect('activate', self.export_resources, files)

            return item,
    def get_file_items(self, window, files):
        if len(files) != 1:
            return

        fileObj = files[0]
        if fileObj.get_uri_scheme() != 'file':
            return
        if fileObj.is_directory():
            return
        filename = urllib.unquote(fileObj.get_uri())[7:]

        itemSign = nautilus.MenuItem('SignMenuProvider::Encrypt', 'Подписать',
                                     'Подписать файл %s' % filename)

        itemSign.connect("activate", self.menu_activate_cb, fileObj)
        return itemSign,
示例#23
0
    def get_file_items(self, window, files):
        """ Shows the menu item """
        if len(files) == 0:
            return

        for f in files:
            if not f.get_mime_type() in SUPPORTED_FORMATS:
                return
            if f.get_uri_scheme() != 'file':
                return

        item = nautilus.MenuItem('Nautilus::upload_to_min_us',
                                 'Upload to min.us', 'Upload to min.us', 'up')
        # connect to callback
        item.connect('activate', self.menu_activate, files)
        return item,
    def get_file_items(self, window, files):

        if len(files) != 1:
            return
        filename = files[0]

        if filename.get_mime_type() not in FORMAT:
            return

        items = []
        """Called when the user selects a file in Nautilus."""
        item = nautilus.MenuItem("NautilusPython::md5sum_item",
                                 "Calcular suma MD5", "Calcular suma MD5")
        item.connect("activate", self.menu_activate_cb, files)
        items.append(item)
        return items
示例#25
0
    def get_file_items(self, window, files):
        if len(files) == 0:
            return

        #For only (local) files
        for fileObj in files:
            if fileObj.get_uri_scheme() != 'file':
                return
            if fileObj.is_directory():
                return
        item = nautilus.MenuItem(
            'Nautilus::send_to_thunderbird',
            'Send selected files to Thunderbird as attachment',
            'Send selected files to Thunderbird as attachment')
        item.connect('activate', self.menu_activate_cb, files)
        return item,
    def get_file_items(self, window, files):
        if len(files) != 1:
            return
        filename = files[0]

        if filename.get_uri_scheme() != 'file' or filename.is_directory():
            return

        items = []
        #Called when the user selects a file in Nautilus.
        item = nautilus.MenuItem("NautilusPython::pastebin_item",
                                 _("Pastebin"),
                                 _("Send this file to a pastebin"))
        item.set_property('icon', "nautilus-pastebin")
        item.connect("activate", self.menu_activate_cb, files)
        items.append(item)
        return items
示例#27
0
        def get_file_items(self, window, files):
            if len(files) != 1:
                return

            file = files[0]

            if not "video/" in file.get_mime_type():
                 return

            if file.get_uri_scheme() != 'file':
                return

            item = nautilus.MenuItem('Nautilus::search_gom_sub_pds',
                                     '자막 검색',
                                     '곰 자막 자료실 검색')
            item.connect('activate', self.menu_activate_cb, file)
            return item,
示例#28
0
    def get_background_items(self, window, file):

        if file.get_uri_scheme() != 'file':
            return

        filename = urllib.unquote(file.get_uri()[7:])
        items = []

        # Get version from archive
        item = nautilus.MenuItem('Subversion::dir_item',
                                 'Check out working copy',
                                 'Check out a working copy from a repository')
                                 #'gtk-go-down')
        item.connect('activate', self.__action_checkout, filename, window)
        items.append(item)

        return items
    def get_file_items(self, window, files):
        if len(files) != 1:
            return

        filename = files[0].get_uri()
        if filename.startswith("file://"):
            filename = filename[7:]

        ext = os.path.splitext(filename)[1]
        if not ext in self.extensions:
            return

        item = nautilus.MenuItem("TineyePlugin::SubmitAndOpen",
                                 "Search in Tineye", "Search in Tineye")
        item.connect('activate', self.menu_activate_cb, filename)

        return [item]
示例#30
0
    def make_nautilus_menu_item(self, id_magic=None):
        # WARNING: this import is here because it will fail if it is not done
        # inside a nautilus process and therefore can't be in the module proper.
        # I'm happy to let the exception propagate the rest of the time, since
        # this method shouldn't be called outside of nautilus.
        identifier = self.make_magic_id(id_magic)

        try:
            import nautilus
            menuitem = nautilus.MenuItem(identifier, self.make_label(),
                                         self.tooltip, self.icon)
        except ImportError:
            from gi.repository import Nautilus
            menuitem = Nautilus.MenuItem(name=identifier,
                                         label=self.make_label(),
                                         tip=self.tooltip,
                                         icon=self.icon)

        return menuitem