def file_chooser(title, action=None, buttons=None, name='', folder=os.path.expanduser('~'), picture=False, backup=False):
if mac:
if "SAVE" in str(action):
if backup:
status, filename, path = macutils.saveDialog(['zip'])
else:
status, filename, path = macutils.saveDialog()
else:
status, filename, path = macutils.openDialog(['zip'])
if status:
if filename.lower().endswith('.zip'):
pass
else:
filename = filename+".zip"
return filename, path
else:
return False
else:
dialog = gtk.FileChooserDialog(title=title, action=action, buttons=buttons)
dialog.set_default_response(gtk.RESPONSE_OK)
if name:
dialog.set_current_name(name)
if folder:
dialog.set_current_folder(folder)
mfilter = gtk.FileFilter()
if picture:
preview = gtk.Image()
dialog.set_preview_widget(preview)
dialog.connect("update-preview", update_preview_cb, preview)
mfilter.set_name(_("Images"))
mfilter.add_mime_type("image/png")
mfilter.add_mime_type("image/jpeg")
mfilter.add_mime_type("image/gif")
mfilter.add_pattern("*.[pP][nN][gG]")
mfilter.add_pattern("*.[jJ][pP][eE]?[gG]")
mfilter.add_pattern("*.[gG][iI][fF]")
mfilter.add_pattern("*.[tT][iI][fF]{1,2}")
mfilter.add_pattern("*.[xX][pP][mM]")
dialog.add_filter(mfilter)
elif backup:
mfilter.set_name(_('backups'))
mfilter.add_pattern('*.[zZ][iI][pP]')
mfilter.add_pattern('*.[gG][rR][iI]')
mfilter.add_pattern('*.[dD][bB]')
dialog.add_filter(mfilter)
mfilter = gtk.FileFilter()
mfilter.set_name(_("All files"))
mfilter.add_pattern("*")
dialog.add_filter(mfilter)
response = dialog.run()
if response == gtk.RESPONSE_OK:
filename = dialog.get_filename()
elif response == gtk.RESPONSE_CANCEL:
filename = None
else:
return False
path = dialog.get_current_folder()
dialog.destroy()
return filename, path
评论列表
文章目录