LCOV - code coverage report
Current view: top level - src/pairinteraction_gui - __init__.py (source / functions) Hit Total Coverage
Test: coverage.info Lines: 6 23 26.1 %
Date: 2026-07-28 15:38:42 Functions: 0 2 0.0 %

          Line data    Source code
       1             : # SPDX-FileCopyrightText: 2025 PairInteraction Developers
       2             : # SPDX-License-Identifier: LGPL-3.0-or-later
       3             : 
       4             : 
       5           1 : import os
       6           1 : import sys
       7             : 
       8           1 : from PySide6.QtCore import QLoggingCategory, QTimer
       9             : 
      10           1 : from pairinteraction_gui.app import Application, SplashScreen
      11             : 
      12           1 : __all__ = ["main"]
      13             : 
      14             : 
      15           1 : def main(*, enable_theme_hot_reload: bool = False) -> int:
      16             :     """Run the PairInteraction GUI application.
      17             : 
      18             :     Returns:
      19             :         int: Application exit code
      20             : 
      21             :     """
      22           0 :     rules = os.environ.get("QT_LOGGING_RULES", "")
      23           0 :     if "qt.gui.icc.warning=" not in rules:
      24           0 :         QLoggingCategory.setFilterRules(f"{rules}\nqt.gui.icc.warning=false".strip())
      25             : 
      26           0 :     app = Application(sys.argv)
      27           0 :     app.setApplicationName("PairInteraction")
      28           0 :     app.allow_ctrl_c()
      29             : 
      30           0 :     splash = SplashScreen()
      31           0 :     splash.show()
      32           0 :     app.processEvents()
      33             : 
      34           0 :     def _start() -> None:
      35           0 :         from pairinteraction_gui.main_window import MainWindow
      36             : 
      37           0 :         window = MainWindow(enable_theme_hot_reload=enable_theme_hot_reload)
      38           0 :         window.show()
      39           0 :         app.processEvents()
      40           0 :         QTimer.singleShot(0, lambda: splash.finish(window))
      41             : 
      42             :     # 50 ms lets the compositor flush the first frame, avoiding painting issues with the splash screen on some platforms
      43           0 :     QTimer.singleShot(50, _start)
      44             : 
      45           0 :     return app.exec()

Generated by: LCOV version 1.16