Merge pull request #377 from coreemu/coretk-enhance/add-more-error-dialog

Coretk enhance/add more error dialog
This commit is contained in:
bharnden 2020-02-24 11:29:48 -08:00 committed by GitHub
commit e66968dcbb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 0 deletions

View file

@ -36,3 +36,12 @@ def show_grpc_error(e: "grpc.RpcError", master, app: "Application"):
title = f"GRPC {title}"
dialog = ErrorDialog(master, app, title, e.details())
dialog.show()
def show_grpc_response_exceptions(class_name, exceptions, master, app: "Application"):
title = f"Exceptions from {class_name}"
detail = ""
for e in exceptions:
detail = detail + f"{e}\n"
dialog = ErrorDialog(master, app, title, detail)
dialog.show()

View file

@ -2,6 +2,8 @@ import logging
import threading
from typing import Any, Callable
from core.gui.errors import show_grpc_response_exceptions
class BackgroundTask:
def __init__(self, master: Any, task: Callable, callback: Callable = None, args=()):
@ -19,6 +21,19 @@ class BackgroundTask:
def run(self):
result = self.task(*self.args)
logging.info("task completed")
# if start session fails, a response with Result: False and a list of exceptions is returned
if not getattr(result, "result", True):
if len(getattr(result, "exceptions", [])) > 0:
self.master.after(
0,
show_grpc_response_exceptions,
*(
result.__class__.__name__,
result.exceptions,
self.master,
self.master,
)
)
if self.callback:
if result is None:
args = ()