~doctormo/nautilus-converter/trunk

« back to all changes in this revision

Viewing changes to nautilus-convert.py

  • Committer: Martin Owens (DoctorMO)
  • Date: 2008-10-08 12:57:37 UTC
  • Revision ID: doctormo@gmail.com-20081008125737-m8vtq9cty02hw33j
Fix problem with displaying more than one menu at a time.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
import nautilus
30
30
import mimeverter
31
31
 
32
 
#from mimeverter import getFileClasses, getFileClass
33
 
#from mimeverter import image, audio
34
 
 
 
32
# Load any modules available to us in the mimeverter
35
33
for file in os.listdir(mimeverter.__path__[0]):
36
34
        if file[-3:] == '.py' and '_' not in file:
37
35
#               try:
56
54
                        path = file.get_uri()
57
55
                        name = file.get_name()
58
56
                        count += 1
59
 
 
60
57
                        for id in mimeverter.getFileClasses(file.get_mime_type()):
61
58
                                if not classes.has_key(id):
62
59
                                        classes[id] = []
65
62
                if not len(classes):
66
63
                        return
67
64
 
68
 
                menus = []
 
65
                nautilus_menus = []
69
66
 
70
67
                for file_class_id in classes.keys():
71
68
                        file_class = mimeverter.getFileClass(file_class_id)
72
69
                        file_uris  = classes[file_class_id]
73
70
 
74
 
                        name = file_class.getName( len(files) > 1 )
75
 
 
76
 
                        menu_id  = 'Nautilus::convert'
 
71
                        name       = file_class.getName( len(file_uris) > 1 )
 
72
                        menu_id    = 'Nautilus::convert%d' % index
 
73
                        index+=1
77
74
                        
78
75
                        menuitem = nautilus.MenuItem(
79
76
                                 menu_id,
80
 
                                _('Convert %d %s To') % (len(files), name),
 
77
                                _('Convert %d %s To') % (len(file_uris), name),
81
78
                                _('Convert files to different format')
82
79
                        )
83
80
                        submenu = nautilus.Menu()
84
81
                        menuitem.set_submenu(submenu)
85
 
                        menus.append(menuitem)
 
82
                        nautilus_menus.append(menuitem)
86
83
 
87
84
                        if file_class.icon:
88
85
                                menuitem.set_property('icon', file_class.icon)
91
88
                                valid = False
92
89
 
93
90
                                # Attempt to ignore formats which aren't relivent
94
 
                                for file in files:
 
91
                                for file in file_uris:
95
92
                                        if not format.isMime( file.get_mime_type() ):
96
93
                                                valid = True
97
94
                                                continue
99
96
                                if valid:
100
97
                                        subitem = nautilus.MenuItem("%s%d" % (menu_id, index), format.name, format.desc)
101
98
                                        index+=1
102
 
                                        subitem.connect('activate', format.writeFiles, files)
 
99
                                        subitem.connect('activate', format.writeFiles, file_uris)
103
100
                                        submenu.append_item(subitem)
104
 
                return menuitem,
 
101
 
 
102
                return nautilus_menus
 
103
 
105
104