mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
18 lines
453 B
Python
18 lines
453 B
Python
import logging
|
|
from collections.abc import Iterator
|
|
from contextlib import contextmanager
|
|
from typing import Type
|
|
|
|
from PySide2.QtWidgets import QDialog, QMessageBox
|
|
|
|
|
|
@contextmanager
|
|
def report_errors(
|
|
title: str, parent: QDialog, error_type: Type[Exception] = Exception
|
|
) -> Iterator[None]:
|
|
try:
|
|
yield
|
|
except error_type as ex:
|
|
logging.exception(title)
|
|
QMessageBox().critical(parent, title, str(ex), QMessageBox.Ok)
|