diff --git a/src/ui/settings_window.py b/src/ui/settings_window.py index 5eafc44..6b1cded 100644 --- a/src/ui/settings_window.py +++ b/src/ui/settings_window.py @@ -1,3 +1,6 @@ +import os +from pathlib import Path + import humanize import socket @@ -11,6 +14,7 @@ from PyQt6.QtWidgets import QApplication, QMainWindow, QListWidget, QListWidgetI from api.server_proxy import RenderServerProxy from engines.engine_manager import EngineManager +from utilities.config import Config from utilities.misc_helper import launch_url from version import APP_AUTHOR, APP_NAME @@ -108,6 +112,20 @@ class SettingsWindow(QMainWindow): startup_layout.addWidget(check_for_updates_checkbox) startup_group.setLayout(startup_layout) + # Local Files Group + data_path = os.path.expanduser(Config.upload_folder) + path_size = sum(f.stat().st_size for f in Path(data_path).rglob('*') if f.is_file()) + database_group = QGroupBox("Local Files") + database_layout = QVBoxLayout() + database_layout.addWidget(QLabel(f"Local Directory: {data_path}")) + database_layout.addWidget(QLabel(f"Size: {humanize.naturalsize(path_size, binary=True)}")) + open_database_path_button = QPushButton("Open Directory") + open_database_path_button.clicked.connect(lambda: launch_url(data_path)) + open_database_path_button.setFixedWidth(200) + database_layout.addWidget(open_database_path_button) + database_group.setLayout(database_layout) + + # Render Settings Group render_settings_group = QGroupBox("Render Settings") render_settings_layout = QVBoxLayout() @@ -127,6 +145,7 @@ class SettingsWindow(QMainWindow): render_settings_group.setLayout(render_settings_layout) layout.addWidget(startup_group) + layout.addWidget(database_group) layout.addWidget(render_settings_group) layout.addStretch() # Add a stretch to push content to the top