gui/mozregui/main.py (36 lines of code) (raw):
import sys
from mozlog.structuredlog import StructuredLogger, set_default_logger
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication
from mozregression.log import init_python_redirect_logger
from .check_release import CheckRelease
from .crash_reporter import CrashReporter
from .global_prefs import set_default_prefs
from .log_report import LogModel
from .mainwindow import MainWindow
def main():
logger = StructuredLogger("mozregression-gui")
init_python_redirect_logger(logger)
set_default_logger(logger)
# Create a Qt application
log_model = LogModel()
logger.add_handler(log_model)
argv = [sys.argv[0].replace("mozregression-gui.py", "mozregression")] + sys.argv[1:]
# enable hi-dpi scaling
QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True)
app = QApplication(argv)
crash_reporter = CrashReporter(app)
crash_reporter.install()
app.setOrganizationName("mozilla")
app.setOrganizationDomain("mozilla.org")
app.setApplicationName("mozregression-gui")
set_default_prefs()
# Create the main window and show it
win = MainWindow()
app.aboutToQuit.connect(win.bisect_runner.stop)
app.aboutToQuit.connect(win.single_runner.stop)
app.aboutToQuit.connect(win.clear)
release_checker = CheckRelease(win)
release_checker.check()
log_model.log.connect(win.ui.log_view.on_log_received)
win.show()
# Enter Qt application main loop
sys.exit(app.exec())
if __name__ == "__main__":
main()