40
43
if not filename: return
41
44
if not exp_type or not self.can_export_type(exp_type):
42
de.show_message(label=_('Gourmet cannot export file of type "%s"')%os.path.splitext(fn)[1])
45
de.show_message(label=_('Gourmet cannot export file of type "%s"')%os.path.splitext(filename)[1])
47
return self.do_single_export(rec, filename, exp_type, mult)
49
def do_single_export (self, rec, filename, exp_type, mult=1):
44
50
exporter_plugin = self.get_exporter(exp_type)
45
51
extra_prefs = exporter_plugin.run_extra_prefs_dialog() or {}
46
52
if hasattr(exporter_plugin,'mode'):
89
94
prefs['rec_exp_directory']=os.path.split(fn)[0]
90
95
prefs['save_recipes_as']=os.path.splitext(fn)[1]
92
if self.can_export_type(exp_type):
93
myexp = self.get_exporter(exp_type)
96
instance = self.do_multiple_export(recs, fn, exp_type)
97
import gourmet.GourmetRecipeManager
98
main_app = gourmet.GourmetRecipeManager.get_application()
99
print 'Connect',instance,'to show dialog when done'
100
instance.connect('completed',
101
lambda *args: main_app.offer_url('Export complete!',
102
'Recipes exported to %s'%fn,
103
url='file:///%s'%fn))
105
def do_multiple_export (self, recs, fn, exp_type=None,
106
setup_gui=True, extra_prefs=EXTRA_PREFS_AUTOMATIC):
108
exp_type = de.get_type_for_filters(fn,self.get_multiple_filters())
109
if self.can_export_type(exp_type):
110
myexp = self.get_exporter(exp_type)
111
if extra_prefs == EXTRA_PREFS_AUTOMATIC:
94
112
extra_prefs = myexp.run_extra_prefs_dialog() or {}
95
pd_args={'label':myexp.label,'sublabel':myexp.sublabel%{'file':fn}}
96
print 'exporting',len(recs),'recs'
97
exporterInstance = myexp.get_multiple_exporter({'rd':self.app.rd,
102
'extra_prefs':extra_prefs,
104
import gourmet.GourmetRecipeManager
105
main_app = gourmet.GourmetRecipeManager.get_application()
106
tm = get_thread_manager()
113
elif extra_prefs == EXTRA_PREFS_DEFAULT:
114
extra_prefs = myexp.get_default_prefs()
116
extra_prefs = extra_prefs
117
pd_args={'label':myexp.label,'sublabel':myexp.sublabel%{'file':fn}}
118
exporterInstance = myexp.get_multiple_exporter({'rd':self.app.rd,
120
#'conv':self.app.conv,
123
'extra_prefs':extra_prefs,
125
tm = get_thread_manager()
126
tm.add_thread(exporterInstance)
107
128
tmg = get_thread_manager_gui()
108
tm.add_thread(exporterInstance)
109
129
tmg.register_thread_with_dialog(_('Export')+'('+myexp.label+')',exporterInstance)
111
exporterInstance.connect('completed',
112
lambda *args: main_app.offer_url('Export complete!',
113
'Recipes exported to %s'%fn,
114
url='file:///%s'%fn))
131
print 'Return exporter instance'
132
return exporterInstance
117
134
def can_export_type (self, name): return self.plugins_by_name.has_key(name)