""" DBClient — entry point. """ import sys import os from PyQt6.QtWidgets import QApplication from PyQt6.QtCore import Qt from PyQt6.QtGui import QFont from app.utils.logger import setup_logging, install_qt_message_handler, get_logger from app.main_window import MainWindow from app.config.theme import apply_qss log = get_logger(__name__) def load_stylesheet(app: QApplication) -> None: apply_qss(app) # reads theme from settings, falls back to dark def main(): # ── Logging must be set up before anything else ─────────────────────────── setup_logging() # High DPI os.environ.setdefault("QT_ENABLE_HIGHDPI_SCALING", "1") app = QApplication(sys.argv) app.setApplicationName("DBClient") app.setApplicationDisplayName("DBClient") app.setApplicationVersion("1.0.0") app.setOrganizationName("DBClient") # Route Qt's own warning/critical messages into the Python log install_qt_message_handler() # Default font font = QFont("Segoe UI", 10) app.setFont(font) load_stylesheet(app) log.info("Starting MainWindow") window = MainWindow() window.show() log.info("Entering event loop") exit_code = app.exec() log.info("Application exited with code %d", exit_code) sys.exit(exit_code) if __name__ == "__main__": main()