def pickFolder( parent, orig_folder ):
if orig_folder is None or orig_folder == '.':
orig_folder = wb_platform_specific.getHomeFolder()
folder = orig_folder
if folder.exists():
if not folder.is_dir():
folder = folder.parent
else:
while not orig_folder.exists():
orig_folder = orig_folder.parent
file_browser = QtWidgets.QFileDialog( parent )
file_browser.setFileMode( file_browser.Directory )
#
# When ShowDirsOnly is True QFileDialog show a number of
# bugs:
# 1. folder double click edits folder name
# 2. setDirectory does not work, always starts in $HOME
#
file_browser.setOption( file_browser.ShowDirsOnly, False )
file_browser.setOption( file_browser.ReadOnly, True )
file_browser.setViewMode( file_browser.Detail )
file_browser.setFilter( QtCore.QDir.Hidden | QtCore.QDir.Dirs )
file_browser.setDirectory( str( folder ) )
file_browser.selectFile( str( orig_folder ) )
if file_browser.exec_():
all_directories = file_browser.selectedFiles()
assert len(all_directories) == 1
return pathlib.Path( all_directories[0] )
return None
评论列表
文章目录