From 6a799a4be5196673b9bed44d8be0242e50f4ab39 Mon Sep 17 00:00:00 2001 From: dazedanon Date: Mon, 27 Oct 2025 00:11:25 -0500 Subject: [PATCH] For add files, have it remember last location after closing --- gui/file_manager.py | 25 +++++++++++++++++++++++-- gui/translation_tab.py | 27 ++++++++++++++++++++++++--- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/gui/file_manager.py b/gui/file_manager.py index 868728d..932886d 100644 --- a/gui/file_manager.py +++ b/gui/file_manager.py @@ -8,7 +8,7 @@ from PyQt5.QtWidgets import ( QPushButton, QLabel, QFileDialog, QMessageBox, QGroupBox, QSplitter, QTextEdit, QProgressBar, QCheckBox ) -from PyQt5.QtCore import Qt, QThread, pyqtSignal +from PyQt5.QtCore import Qt, QThread, pyqtSignal, QSettings import json @@ -19,6 +19,11 @@ class FileManager(QWidget): def __init__(self): super().__init__() + # Persistent settings for remembering last-open directory + try: + self.settings = QSettings("DazedTranslations", "DazedMTLTool") + except Exception: + self.settings = None self.input_files = [] self.output_directory = Path("translated") self.init_ui() @@ -168,16 +173,32 @@ class FileManager(QWidget): def add_input_files(self): """Add input files via dialog.""" + # Try to restore last used directory + start_dir = "" + try: + if self.settings: + start_dir = self.settings.value("last_open_dir", "") or "" + except Exception: + start_dir = "" + files, _ = QFileDialog.getOpenFileNames( self, "Select Input Files", - "", + start_dir, "JSON Files (*.json);;All Files (*)" ) for file_path in files: if file_path not in self.input_files: self.input_files.append(file_path) + + # Persist directory used + try: + if self.settings and len(files) > 0: + import os + self.settings.setValue("last_open_dir", os.path.dirname(files[0])) + except Exception: + pass self.refresh_input_files() diff --git a/gui/translation_tab.py b/gui/translation_tab.py index f7105c2..5366189 100644 --- a/gui/translation_tab.py +++ b/gui/translation_tab.py @@ -25,7 +25,7 @@ from PyQt5.QtWidgets import ( QSplitter, QFileDialog, QComboBox, QCheckBox, QProgressBar, QFrame, QFormLayout, QStackedWidget ) from PyQt5.QtWidgets import QSizePolicy -from PyQt5.QtCore import Qt, QTimer, pyqtSignal, QThread, QMutex, QProcess, QEvent, QRect +from PyQt5.QtCore import Qt, QTimer, pyqtSignal, QThread, QMutex, QProcess, QEvent, QRect, QSettings from PyQt5.QtGui import QFont from gui.log_viewer import LogViewer @@ -495,6 +495,11 @@ class TranslationTab(QWidget): def __init__(self, parent=None): super().__init__(parent) self.parent_window = parent + # Persistent settings (remember last directory used in file dialogs) + try: + self.settings = QSettings("DazedTranslations", "DazedMTLTool") + except Exception: + self.settings = None self.translation_process = None self.log_buffer = [] # Buffer for batching log messages self.log_timer = QTimer() # Timer for flushing log buffer @@ -1193,15 +1198,31 @@ class TranslationTab(QWidget): return selected def add_input_files(self): - """Add files to the input directory.""" + """Add files to the input directory, remembering last used directory.""" + # Restore last used directory from settings if available + start_dir = "" + try: + if self.settings: + start_dir = self.settings.value("last_open_dir", "") or "" + except Exception: + start_dir = "" + file_paths, _ = QFileDialog.getOpenFileNames( self, "Select files to add", - "", + start_dir, "All Files (*)" ) if file_paths: + # Save the directory used so next time we open the same place + try: + if self.settings and len(file_paths) > 0: + import os + dir_used = os.path.dirname(file_paths[0]) + self.settings.setValue("last_open_dir", dir_used) + except Exception: + pass try: import shutil copied_count = 0