Allow not saving initial dir in choose_files as well

This commit is contained in:
Kovid Goyal 2023-04-22 10:14:26 +05:30
parent d5dbb3c63a
commit cb97b2b1fa
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 17 additions and 11 deletions

View File

@ -178,14 +178,17 @@ def kdialog_choose_files(
filters=[], filters=[],
all_files=True, all_files=True,
select_only_single_file=False, select_only_single_file=False,
default_dir='~'): default_dir='~',
initial_dir = get_initial_dir(name, title, default_dir, False) no_save_dir=False,
):
initial_dir = get_initial_dir(name, title, default_dir, no_save_dir)
args = [] args = []
if not select_only_single_file: if not select_only_single_file:
args += '--multiple --separate-output'.split() args += '--multiple --separate-output'.split()
args += ['--getopenfilename', initial_dir, kdialog_filters(filters, all_files)] args += ['--getopenfilename', initial_dir, kdialog_filters(filters, all_files)]
ans = run_kde(kde_cmd(window, title, *args)) ans = run_kde(kde_cmd(window, title, *args))
save_initial_dir(name, title, ans[0] if ans else None, False, is_file=True) if not no_save_dir:
save_initial_dir(name, title, ans[0] if ans else None, False, is_file=True)
return ans return ans
@ -258,14 +261,17 @@ def zenity_choose_files(
filters=[], filters=[],
all_files=True, all_files=True,
select_only_single_file=False, select_only_single_file=False,
default_dir='~'): default_dir='~',
initial_dir = get_initial_dir(name, title, default_dir, False) no_save_dir=False,
):
initial_dir = get_initial_dir(name, title, default_dir, no_save_dir)
args = ['--filename=' + os.path.join(initial_dir, '.fgdfg.gdfhjdhf*&^839')] args = ['--filename=' + os.path.join(initial_dir, '.fgdfg.gdfhjdhf*&^839')]
args += zenity_filters(filters, all_files) args += zenity_filters(filters, all_files)
if not select_only_single_file: if not select_only_single_file:
args.append('--multiple') args.append('--multiple')
ans = run_zenity(zenity_cmd(window, title, *args)) ans = run_zenity(zenity_cmd(window, title, *args))
save_initial_dir(name, title, ans[0] if ans else None, False, is_file=True) if not no_save_dir:
save_initial_dir(name, title, ans[0] if ans else None, False, is_file=True)
return ans return ans

View File

@ -193,7 +193,7 @@ def choose_dir(window, name, title, default_dir='~', no_save_dir=False):
def choose_files(window, name, title, def choose_files(window, name, title,
filters=[], all_files=True, select_only_single_file=False, default_dir='~'): filters=[], all_files=True, select_only_single_file=False, default_dir='~', no_save_dir=False):
''' '''
Ask user to choose a bunch of files. Ask user to choose a bunch of files.
:param name: Unique dialog name used to store the opened directory :param name: Unique dialog name used to store the opened directory
@ -207,7 +207,7 @@ def choose_files(window, name, title,
''' '''
mode = QFileDialog.FileMode.ExistingFile if select_only_single_file else QFileDialog.FileMode.ExistingFiles mode = QFileDialog.FileMode.ExistingFile if select_only_single_file else QFileDialog.FileMode.ExistingFiles
fd = FileDialog(title=title, name=name, filters=filters, default_dir=default_dir, fd = FileDialog(title=title, name=name, filters=filters, default_dir=default_dir,
parent=window, add_all_files_filter=all_files, mode=mode, parent=window, add_all_files_filter=all_files, mode=mode, no_save_dir=no_save_dir,
) )
fd.setParent(None) fd.setParent(None)
if fd.accepted: if fd.accepted:

View File

@ -260,13 +260,13 @@ def choose_dir(window, name, title, default_dir='~', no_save_dir=False):
def choose_files(window, name, title, def choose_files(window, name, title,
filters=(), all_files=True, select_only_single_file=False, default_dir='~'): filters=(), all_files=True, select_only_single_file=False, default_dir='~', no_save_dir=False):
name, initial_folder = get_initial_folder(name, title, default_dir) name, initial_folder = get_initial_folder(name, title, default_dir, no_save_dir)
file_types = list(filters) file_types = list(filters)
if all_files: if all_files:
file_types.append((_('All files'), ['*'])) file_types.append((_('All files'), ['*']))
ans = run_file_dialog(window, title, allow_multiple=not select_only_single_file, initial_folder=initial_folder, file_types=file_types) ans = run_file_dialog(window, title, allow_multiple=not select_only_single_file, initial_folder=initial_folder, file_types=file_types)
if ans: if ans and not no_save_dir:
dynamic.set(name, os.path.dirname(ans[0])) dynamic.set(name, os.path.dirname(ans[0]))
return ans return ans
return None return None