remember last browse dir per mode

This commit is contained in:
Andrew Pimenov 2026-06-14 18:33:00 +03:00
parent c7e1b88999
commit 35dc9df1de

View file

@ -28,6 +28,7 @@ class _App:
self._mode = tk.StringVar(value='technique') self._mode = tk.StringVar(value='technique')
self._lang = tk.StringVar(value='ru') self._lang = tk.StringVar(value='ru')
self._selection: list[str] = [] self._selection: list[str] = []
self._last_dir: dict[str, str] = {}
self._log_queue: queue.Queue[str | None] = queue.Queue() self._log_queue: queue.Queue[str | None] = queue.Queue()
self._busy = False self._busy = False
@ -79,12 +80,13 @@ class _App:
def _browse(self) -> None: def _browse(self) -> None:
mode = self._mode.get() mode = self._mode.get()
init = _PROJECT_ROOT init = self._last_dir.get(mode, _RACES_DIR)
if mode == 'race': if mode == 'race':
d = filedialog.askdirectory(title='Select race folder', initialdir=init) d = filedialog.askdirectory(title='Select race folder', initialdir=init)
if d: if d:
self._selection = [d] self._selection = [d]
self._path_var.set(d) self._path_var.set(d)
self._last_dir[mode] = d
elif mode == 'compare': elif mode == 'compare':
files = filedialog.askopenfilenames( files = filedialog.askopenfilenames(
title='Select 2+ CSV files', initialdir=init, title='Select 2+ CSV files', initialdir=init,
@ -92,6 +94,7 @@ class _App:
if files: if files:
self._selection = list(files) self._selection = list(files)
self._path_var.set(' | '.join(os.path.basename(f) for f in files)) self._path_var.set(' | '.join(os.path.basename(f) for f in files))
self._last_dir[mode] = os.path.dirname(files[0])
else: else:
f = filedialog.askopenfilename( f = filedialog.askopenfilename(
title='Select CSV file', initialdir=init, title='Select CSV file', initialdir=init,
@ -99,6 +102,7 @@ class _App:
if f: if f:
self._selection = [f] self._selection = [f]
self._path_var.set(f) self._path_var.set(f)
self._last_dir[mode] = os.path.dirname(f)
def _validate_selection(self) -> str | None: def _validate_selection(self) -> str | None:
mode = self._mode.get() mode = self._mode.get()