~soren/nautilus-cloud-files-plugin/trunk

« back to all changes in this revision

Viewing changes to extensions/nautilus_cloudfiles.py

  • Committer: Chmouel Boudjnah
  • Date: 2009-12-07 14:32:45 UTC
  • Revision ID: git-v1:da105991ddf0df06f2809cdb42444f7ea3f5c71c
Tags: 0.1
packaging and reorgnaization.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import nautilus
 
2
import urllib2
 
3
import gtk
 
4
 
 
5
from cloudfiles.nautilus import main
 
6
 
 
7
class NautilusCloudFilesExtension(nautilus.MenuProvider):
 
8
    def __init__(self):
 
9
        selfname = type(self).__name__
 
10
 
 
11
    def menu_activate_cb(self, menu, files):
 
12
        #List the valid files
 
13
        stuff = [f for f in files if not f.is_gone() and self.is_valid(f)]
 
14
        stuff_to_upload = map(lambda f: urllib2.unquote(f.get_uri()[7:]), stuff)
 
15
 
 
16
        invoker = main.CloudFileUploader(stuff_to_upload)
 
17
        invoker.main()
 
18
 
 
19
    def get_file_items(self, window, files):
 
20
        files = [ f for f in files if self.is_valid(f)]
 
21
        if len(files) == 0:
 
22
            return
 
23
        
 
24
        item = nautilus.MenuItem('NautilusPython::upload_rscf_item',
 
25
                                 'Upload to Rackspace CloudFiles',
 
26
                                 'Upload to Rackspace CF' ,
 
27
                                 gtk.STOCK_CONVERT
 
28
                                 )
 
29
        item.connect('activate', self.menu_activate_cb, files)
 
30
        return item,
 
31
 
 
32
    def is_valid(self, f):
 
33
        return f.get_uri_scheme() == 'file'
 
34
    
 
35
 
 
36