fixed app quit when grpc fails, fixed quitting when not stopping the running session
This commit is contained in:
parent
b30b8ab83d
commit
6a8e0c8360
1 changed files with 22 additions and 16 deletions
|
@ -8,6 +8,8 @@ import time
|
||||||
import webbrowser
|
import webbrowser
|
||||||
from tkinter import filedialog, messagebox
|
from tkinter import filedialog, messagebox
|
||||||
|
|
||||||
|
import grpc
|
||||||
|
|
||||||
from core.api.grpc import core_pb2
|
from core.api.grpc import core_pb2
|
||||||
from coretk.appconfig import XML_PATH
|
from coretk.appconfig import XML_PATH
|
||||||
from coretk.dialogs.canvasbackground import CanvasBackgroundDialog
|
from coretk.dialogs.canvasbackground import CanvasBackgroundDialog
|
||||||
|
@ -30,6 +32,7 @@ class MenuAction:
|
||||||
self.app = app
|
self.app = app
|
||||||
|
|
||||||
def cleanup_old_session(self, quitapp=False):
|
def cleanup_old_session(self, quitapp=False):
|
||||||
|
logging.info("cleaning up old session")
|
||||||
start = time.time()
|
start = time.time()
|
||||||
self.app.core.stop_session()
|
self.app.core.stop_session()
|
||||||
self.app.core.delete_session()
|
self.app.core.delete_session()
|
||||||
|
@ -47,27 +50,31 @@ class MenuAction:
|
||||||
logging.info(
|
logging.info(
|
||||||
"menuaction.py: clean_nodes_links_and_set_configuration() Exiting the program"
|
"menuaction.py: clean_nodes_links_and_set_configuration() Exiting the program"
|
||||||
)
|
)
|
||||||
state = self.app.core.get_session_state()
|
try:
|
||||||
|
state = self.app.core.get_session_state()
|
||||||
|
|
||||||
if (
|
if (
|
||||||
state == core_pb2.SessionState.SHUTDOWN
|
state == core_pb2.SessionState.SHUTDOWN
|
||||||
or state == core_pb2.SessionState.DEFINITION
|
or state == core_pb2.SessionState.DEFINITION
|
||||||
):
|
):
|
||||||
self.app.core.delete_session()
|
self.app.core.delete_session()
|
||||||
if quitapp:
|
if quitapp:
|
||||||
self.app.quit()
|
self.app.quit()
|
||||||
else:
|
else:
|
||||||
msgbox = messagebox.askyesnocancel("stop", "Stop the running session?")
|
result = messagebox.askyesnocancel("stop", "Stop the running session?")
|
||||||
if msgbox or msgbox is False:
|
if result:
|
||||||
if msgbox:
|
|
||||||
self.app.statusbar.progress_bar.start(5)
|
self.app.statusbar.progress_bar.start(5)
|
||||||
thread = threading.Thread(
|
thread = threading.Thread(
|
||||||
target=self.cleanup_old_session, args=([quitapp])
|
target=self.cleanup_old_session, args=([quitapp])
|
||||||
)
|
)
|
||||||
|
thread.daemon = True
|
||||||
thread.start()
|
thread.start()
|
||||||
|
elif quitapp:
|
||||||
# self.app.core.stop_session()
|
self.app.quit()
|
||||||
# self.app.core.delete_session()
|
except grpc.RpcError:
|
||||||
|
logging.error("error getting session state")
|
||||||
|
if quitapp:
|
||||||
|
self.app.quit()
|
||||||
|
|
||||||
def on_quit(self, event=None):
|
def on_quit(self, event=None):
|
||||||
"""
|
"""
|
||||||
|
@ -76,7 +83,6 @@ class MenuAction:
|
||||||
:return: nothing
|
:return: nothing
|
||||||
"""
|
"""
|
||||||
self.prompt_save_running_session(quitapp=True)
|
self.prompt_save_running_session(quitapp=True)
|
||||||
# self.app.quit()
|
|
||||||
|
|
||||||
def file_save_as_xml(self, event=None):
|
def file_save_as_xml(self, event=None):
|
||||||
logging.info("menuaction.py file_save_as_xml()")
|
logging.info("menuaction.py file_save_as_xml()")
|
||||||
|
|
Loading…
Reference in a new issue