Skip to content

Commit 2e0122b

Browse files
committed
Fix upload folder path for frozen executable
Update logic to determine the base directory for the upload folder when running as a compiled executable (sys.frozen). This ensures the correct path is used whether the app is run as a script or as a packaged binary. Also, fix folder selection dialog to use the correct upload folder variable.
1 parent 4ec5371 commit 2e0122b

1 file changed

Lines changed: 16 additions & 10 deletions

File tree

app/gui.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -190,10 +190,13 @@ def __init__(self):
190190
# Upload folder from config
191191
self.upload_folder = self.config.get('storage', 'upload_folder', 'uploads')
192192
if not os.path.isabs(self.upload_folder):
193-
self.upload_folder = os.path.join(
194-
os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
195-
self.upload_folder
196-
)
193+
if getattr(sys, 'frozen', False):
194+
# Running as compiled executable
195+
base_dir = os.path.dirname(sys.executable)
196+
else:
197+
# Running as script
198+
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
199+
self.upload_folder = os.path.join(base_dir, self.upload_folder)
197200

198201
self.timer = QTimer(self)
199202
self.timer.timeout.connect(self.update_stats)
@@ -660,12 +663,12 @@ def clear_files(self):
660663
def change_folder(self):
661664
"""Change the upload folder location"""
662665
folder = QFileDialog.getExistingDirectory(
663-
self, "Select Upload Folder", os.path.abspath(UPLOAD_FOLDER)
666+
self, "Select Upload Folder", os.path.abspath(self.upload_folder)
664667
)
665668

666669
if folder:
667670
# Note: This is a simple implementation. In a real app, we would need
668-
# to update the global UPLOAD_FOLDER and restart the server.
671+
# to update the config and restart the server.
669672
QMessageBox.information(
670673
self, "Information",
671674
"Changing folders is not fully implemented in this version."
@@ -734,10 +737,13 @@ def on_settings_changed(self):
734737
# Update upload folder
735738
self.upload_folder = self.config.get('storage', 'upload_folder', 'uploads')
736739
if not os.path.isabs(self.upload_folder):
737-
self.upload_folder = os.path.join(
738-
os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
739-
self.upload_folder
740-
)
740+
if getattr(sys, 'frozen', False):
741+
# Running as compiled executable
742+
base_dir = os.path.dirname(sys.executable)
743+
else:
744+
# Running as script
745+
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
746+
self.upload_folder = os.path.join(base_dir, self.upload_folder)
741747

742748
# Update stats to reflect new folder
743749
self.update_stats()

0 commit comments

Comments
 (0)