(repr(defaultName), type(defaultName))) try: iDir = initialDir.encode(enc) except: iDir = initialDir log.debug("Could not encode 'initialDir' %s" % repr(initialDir)) log.debug("Encode function returned: %s" % e) try: dName = defaultName.encode(enc) except: dName = defaultName log.debug("Could not encode 'defaultName' %s" % repr(defaultName)) log.debug("Encode function returned: %s" % e) filename = request_new_filename(prompt=title, suffix=("." + suffix) if suffix else "", directory=iDir, filename=dName, pathname=None) return filename # Start Open Folder Dialogs # TODO: Possibly get an OS X dialog def askOpenFolderWin32(title, initialDir): try: desktop_pidl = shell.SHGetFolderLocation(0, shellcon.CSIDL_DESKTOP, 0, 0) pidl, display_name, image_list = shell.SHBrowseForFolder( win32gui.GetDesktopWindow(), desktop_pidl, "Choose a folder", 0, None, None) return shell.SHGetPathFromIDList(pidl)
filter.add_pattern("*") chooser.add_filter(filter) response = chooser.run() if response == gtk.RESPONSE_OK: filename = chooser.get_filename() else: chooser.destroy() return # pressed cancel chooser.destroy() else: #Fallback filename = request_new_filename(prompt=title, suffix=("." + suffix) if suffix else "", directory=initialDir, filename=defaultName, pathname=None) return filename # if sys.platform == "win32": # try: # # (filename, customfilter, flags) = win32gui.GetSaveFileNameW( # hwndOwner = display.get_wm_info()['window'], # # InitialDir=minecraftSaveFileDir, # Flags=win32con.OFN_EXPLORER | win32con.OFN_NOCHANGEDIR | win32con.OFN_OVERWRITEPROMPT, # File=initialDir + os.sep + displayName, # DefExt=fileFormat, # Title=, # Filter=, # )
def askSaveFile(initialDir, title, defaultName, filetype, suffix): if sys.platform == "win32": # !# try: if isinstance(suffix, (list, tuple)) and suffix: suffix = suffix[0] print repr(filetype) if not filetype.endswith("*.*\0*.*\0\0"): filetype = filetype[:-1] + "*.*\0*.*\0\0" print repr(filetype) (filename, customfilter, flags) = win32gui.GetSaveFileNameW( hwndOwner=display.get_wm_info()['window'], InitialDir=initialDir, Flags=win32con.OFN_EXPLORER | win32con.OFN_NOCHANGEDIR | win32con.OFN_OVERWRITEPROMPT, File=defaultName, DefExt=suffix, Title=title, Filter=filetype, ) except Exception as e: print "Error getting file name: ", e return try: filename = filename[:filename.index('\0')] filename = filename.decode(sys.getfilesystemencoding()) except: pass else: # Reformat the Windows stuff if "\0" in suffix and suffix.count("*.") > 1: _suffix = suffix.split("\0")[:-2] else: _suffix = suffix if "\0" in filetype and filetype.count("*.") > 0: _filetype = filetype.split("\0")[:-2] else: _filetype = filetype if hasGtk and not platChooser: # !# #Linux (When GTK 2.4 or newer is installed) fls = [] def run_dlg(): chooser = gtk.FileChooserDialog(title, None, gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_OK)) chooser.set_default_response(gtk.RESPONSE_OK) chooser.set_current_folder(initialDir) chooser.set_current_name(defaultName) # Add custom Filter if isinstance(_filetype, list) or isinstance(_filetype, tuple): for i, stuff in enumerate(_filetype): if i % 2 == 0: file_filter = gtk.FileFilter() file_filter.set_name(stuff) else: if ";" in stuff: for _suff in stuff.split(";"): if _suff: file_filter.add_pattern(_suff) else: file_filter.add_pattern(stuff) chooser.add_filter(file_filter) if i % 2 == 0: if ";" in stuff: for _suff in stuff.split(";"): if _suff: file_filter.add_pattern(_suff) else: file_filter.add_pattern(stuff) chooser.add_filter(file_filter) else: file_filter = gtk.FileFilter() file_filter.set_name(filetype[:filetype.index("\0")]) if "\0" in suffix and suffix.count("*.") > 1: __suffix = suffix.split("\0")[:-2] else: __suffix = suffix if isinstance(__suffix, list) or isinstance(__suffix, tuple): for suff in __suffix: file_filter.add_pattern("*." + suff) else: file_filter.add_pattern("*." + __suffix) chooser.add_filter(file_filter) # Add "All files" Filter file_filter = gtk.FileFilter() file_filter.set_name("All files") file_filter.add_pattern("*") chooser.add_filter(file_filter) response = chooser.run() if response == gtk.RESPONSE_OK: fls.append(chooser.get_filename()) else: fls.append(None) chooser.destroy() gtk.main_quit() gtk.idle_add(run_dlg) gtk.main() filename = fls[0] else: # Fallback log.debug("Calling internal file chooser.") log.debug("'initialDir' is %s (%s)" % (repr(initialDir), type(initialDir))) log.debug("'defaultName' is %s (%s)" % (repr(defaultName), type(defaultName))) try: iDir = initialDir.encode(enc) except Exception as e: iDir = initialDir log.debug("Could not encode 'initialDir' %s" % repr(initialDir)) log.debug("Encode function returned: %s" % e) try: dName = defaultName.encode(enc) except Exception as e: dName = defaultName log.debug("Could not encode 'defaultName' %s" % repr(defaultName)) log.debug("Encode function returned: %s" % e) if isinstance(_suffix, list) or isinstance(_suffix, tuple): sffxs = [a[1:] for a in _suffix[1::2]] sffx = sffxs.pop(0) sffxs.append('.*') else: sffx = _suffix sffxs = [] for i, stuff in enumerate(_filetype): if i % 2 == 0: file_filter = stuff else: file_filter += " (%s)"%stuff sffxs.append(file_filter) if i % 2 == 0: file_filter += " (%s)"%stuff sffxs.append(file_filter) if "All files (*.*)" not in sffxs and "*.* (*.*)" not in sffxs: sffxs.append("All files (*.*)") filename = request_new_filename(prompt=title, suffix=sffx, extra_suffixes=sffxs, directory=iDir, filename=dName, pathname=None) return filename
def askSaveFile(initialDir, title, defaultName, filetype, suffix): if sys.platform == "win32": # !# try: if isinstance(suffix, (list, tuple)) and suffix: suffix = suffix[0] print repr(filetype) if not filetype.endswith("*.*\0*.*\0\0"): filetype = filetype[:-1] + "*.*\0*.*\0\0" print repr(filetype) (filename, customfilter, flags) = win32gui.GetSaveFileNameW( hwndOwner=display.get_wm_info()['window'], InitialDir=initialDir, Flags=win32con.OFN_EXPLORER | win32con.OFN_NOCHANGEDIR | win32con.OFN_OVERWRITEPROMPT, File=defaultName, DefExt=suffix, Title=title, Filter=filetype, ) except Exception as e: print "Error getting file name: ", e return try: filename = filename[:filename.index('\0')] filename = filename.decode(sys.getfilesystemencoding()) except: pass else: # Reformat the Windows stuff if "\0" in suffix and suffix.count("*.") > 1: _suffix = suffix.split("\0")[:-2] else: _suffix = suffix if "\0" in filetype and filetype.count("*.") > 0: _filetype = filetype.split("\0")[:-2] else: _filetype = filetype if hasGtk and not platChooser: # !# #Linux (When GTK 2.4 or newer is installed) fls = [] def run_dlg(): chooser = gtk.FileChooserDialog( title, None, gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_OK)) chooser.set_default_response(gtk.RESPONSE_OK) chooser.set_current_folder(initialDir) chooser.set_current_name(defaultName) # Add custom Filter if isinstance(_filetype, list) or isinstance(_filetype, tuple): for i, stuff in enumerate(_filetype): if i % 2 == 0: file_filter = gtk.FileFilter() file_filter.set_name(stuff) else: if ";" in stuff: for _suff in stuff.split(";"): if _suff: file_filter.add_pattern(_suff) else: file_filter.add_pattern(stuff) chooser.add_filter(file_filter) if i % 2 == 0: if ";" in stuff: for _suff in stuff.split(";"): if _suff: file_filter.add_pattern(_suff) else: file_filter.add_pattern(stuff) chooser.add_filter(file_filter) else: file_filter = gtk.FileFilter() file_filter.set_name(filetype[:filetype.index("\0")]) if "\0" in suffix and suffix.count("*.") > 1: __suffix = suffix.split("\0")[:-2] else: __suffix = suffix if isinstance(__suffix, list) or isinstance( __suffix, tuple): for suff in __suffix: file_filter.add_pattern("*." + suff) else: file_filter.add_pattern("*." + __suffix) chooser.add_filter(file_filter) # Add "All files" Filter file_filter = gtk.FileFilter() file_filter.set_name("All files") file_filter.add_pattern("*") chooser.add_filter(file_filter) response = chooser.run() if response == gtk.RESPONSE_OK: fls.append(chooser.get_filename()) else: fls.append(None) chooser.destroy() gtk.main_quit() gtk.idle_add(run_dlg) gtk.main() filename = fls[0] else: # Fallback log.debug("Calling internal file chooser.") log.debug("'initialDir' is %s (%s)" % (repr(initialDir), type(initialDir))) log.debug("'defaultName' is %s (%s)" % (repr(defaultName), type(defaultName))) try: iDir = initialDir.encode(enc) except Exception as e: iDir = initialDir log.debug("Could not encode 'initialDir' %s" % repr(initialDir)) log.debug("Encode function returned: %s" % e) try: dName = defaultName.encode(enc) except Exception as e: dName = defaultName log.debug("Could not encode 'defaultName' %s" % repr(defaultName)) log.debug("Encode function returned: %s" % e) if isinstance(_suffix, list) or isinstance(_suffix, tuple): sffxs = [a[1:] for a in _suffix[1::2]] sffx = sffxs.pop(0) sffxs.append('.*') else: sffx = _suffix sffxs = [] for i, stuff in enumerate(_filetype): if i % 2 == 0: file_filter = stuff else: file_filter += " (%s)" % stuff sffxs.append(file_filter) if i % 2 == 0: file_filter += " (%s)" % stuff sffxs.append(file_filter) if "All files (*.*)" not in sffxs and "*.* (*.*)" not in sffxs: sffxs.append("All files (*.*)") filename = request_new_filename(prompt=title, suffix=sffx, extra_suffixes=sffxs, directory=iDir, filename=dName, pathname=None) return filename
dName = defaultName.encode(enc) except: dName = defaultName log.debug("Could not encode 'defaultName' %s" % repr(defaultName)) log.debug("Encode function returned: %s" % e) if type(_suffix) in (list, tuple): sffxs = [a[1:] for a in _suffix[1::2]] sffx = sffxs.pop(0) sffxs.append('.*') else: sffx = _suffix sffxs = [] filename = request_new_filename(prompt=title, suffix=sffx, extra_suffixes=sffxs, directory=iDir, filename=dName, pathname=None) return filename askSaveSchematic = dynamic_arguments(askSaveSchematic, askSaveFile) # Start Open Folder Dialogs # TODO: Possibly get an OS X dialog def askOpenFolderWin32(title, initialDir): try: desktop_pidl = shell.SHGetFolderLocation(0, shellcon.CSIDL_DESKTOP, 0, 0) pidl, display_name, image_list = shell.SHBrowseForFolder ( win32gui.GetDesktopWindow(), desktop_pidl, "Choose a folder",
except: dName = defaultName log.debug("Could not encode 'defaultName' %s" % repr(defaultName)) log.debug("Encode function returned: %s" % e) if type(_suffix) in (list, tuple): sffxs = [a[1:] for a in _suffix[1::2]] sffx = sffxs.pop(0) sffxs.append('.*') else: sffx = _suffix sffxs = [] filename = request_new_filename(prompt=title, suffix=sffx, extra_suffixes=sffxs, directory=iDir, filename=dName, pathname=None) return filename askSaveSchematic = dynamic_arguments(askSaveSchematic, askSaveFile) # Start Open Folder Dialogs # TODO: Possibly get an OS X dialog def askOpenFolderWin32(title, initialDir): try: desktop_pidl = shell.SHGetFolderLocation(0, shellcon.CSIDL_DESKTOP, 0, 0) pidl, display_name, image_list = shell.SHBrowseForFolder(