1import os 2 3from ..qt import QtWidgets 4 5 6__all__ = ['open_file_dialog', 'save_file_dialog'] 7 8 9def _format_filename(filename): 10 if isinstance(filename, tuple): 11 # Handle discrepancy between PyQt4 and PySide APIs. 12 filename = filename[0] 13 if len(filename) == 0: 14 return None 15 return str(filename) 16 17 18def open_file_dialog(): 19 """Return user-selected file path.""" 20 filename = QtWidgets.QFileDialog.getOpenFileName() 21 filename = _format_filename(filename) 22 return filename 23 24 25def save_file_dialog(default_format='png'): 26 """Return user-selected file path.""" 27 filename = QtWidgets.QFileDialog.getSaveFileName() 28 filename = _format_filename(filename) 29 if filename is None: 30 return None 31 # TODO: io plugins should assign default image formats 32 basename, ext = os.path.splitext(filename) 33 if not ext: 34 filename = '%s.%s' % (filename, default_format) 35 return filename 36