fixed GUI crashing on pressing cancel

Py3
idziubenko 3 years ago
parent eaadd3ad34
commit 032364b614

@ -164,7 +164,7 @@ class MainWgt(qt.QMainWindow):
self.resize(self.cur_size) self.resize(self.cur_size)
def back(self): def back(self):
self.control_button.del_button() # self.control_button.del_button()
if len(self.ClientObj.back_step_list) < 2: if len(self.ClientObj.back_step_list) < 2:
self.delete_MainFrameWgt() self.delete_MainFrameWgt()
@ -345,17 +345,20 @@ class MainWgt(qt.QMainWindow):
self.left_frame.hide() self.left_frame.hide()
try: #DEBUG
self.MainFrameWgt.get_entire_frame(pid)
except (RuntimeError, ValueError): #check why are they here?
pass # try:
self.MainFrameWgt.get_entire_frame(pid)
# except (RuntimeError, ValueError):
# pass
def delete_MainFrameWgt(self): def delete_MainFrameWgt(self):
self.main_frame.takeWidget() self.main_frame.takeWidget()
try: # try:
self.MainFrameWgt.close() self.MainFrameWgt.close()
except (RuntimeError, AttributeError): # except (RuntimeError, AttributeError):
pass # pass
def setScrollBarVal(self): def setScrollBarVal(self):
self.main_frame.verticalScrollBar().setSliderPosition \ self.main_frame.verticalScrollBar().setSliderPosition \

@ -106,7 +106,8 @@ class MethodNameWgt(qt.QWidget):
class ControlButtonWgt(qt.QWidget): class ControlButtonWgt(qt.QWidget):
def __init__(self, parent, ClientObj): def __init__(self, parent, ClientObj):
qt.QWidget.__init__(self, parent) super().__init__(parent)
# qt.QWidget.__init__(self, parent)
self._parent = parent self._parent = parent
self.ClientObj = ClientObj self.ClientObj = ClientObj
@ -114,8 +115,10 @@ class ControlButtonWgt(qt.QWidget):
self.setAttribute(qt.Qt.WA_StyledBackground) self.setAttribute(qt.Qt.WA_StyledBackground)
self.setObjectName('ControlButton') self.setObjectName('ControlButton')
self.setStyleSheet("QWidget#ControlButton " self.setStyleSheet("QWidget#ControlButton "
"{background-color: %s;}"% "{background-color: rgb(255,0,0);}")
get_system_rgb(self, ParameterWindow)) # self.setStyleSheet("QWidget#ControlButton "
# "{background-color: %s;}"%
# get_system_rgb(self, ParameterWindow))
self.main_layout = qt.QVBoxLayout(self) self.main_layout = qt.QVBoxLayout(self)
self.main_layout.setContentsMargins(28, 8, 0, 28) self.main_layout.setContentsMargins(28, 8, 0, 28)
@ -182,7 +185,7 @@ class ControlButtonWgt(qt.QWidget):
def add_custom_button(self, Group, x, y, brief=False, def add_custom_button(self, Group, x, y, brief=False,
next_button_text=""): next_button_text=""):
self.del_button() # self.del_button()
buttons = self._parent.MainFrameWgt.buttons buttons = self._parent.MainFrameWgt.buttons
self.button_widget = qt.QWidget(self) self.button_widget = qt.QWidget(self)
end_layout = qt.QHBoxLayout(self.button_widget) end_layout = qt.QHBoxLayout(self.button_widget)
@ -220,7 +223,7 @@ class ControlButtonWgt(qt.QWidget):
def add_standart_button(self, Group, x, y, brief=False, \ def add_standart_button(self, Group, x, y, brief=False, \
next_button_text=""): next_button_text=""):
self.del_button() # self.del_button()
main_frame = self._parent.MainFrameWgt main_frame = self._parent.MainFrameWgt
# add 1 (or 2) button ok (next) [and previous] # add 1 (or 2) button ok (next) [and previous]
self.button_widget = qt.QWidget(self) self.button_widget = qt.QWidget(self)
@ -354,7 +357,7 @@ class ControlButtonWgt(qt.QWidget):
# self.default_button = None # self.default_button = None
def pre_add_button(self): def pre_add_button(self):
self.del_button() # self.del_button()
# add 1 (or 2) button ok (next) [and previous] # add 1 (or 2) button ok (next) [and previous]
self.button_widget = qt.QWidget(self) self.button_widget = qt.QWidget(self)
end_layout = qt.QHBoxLayout(self.button_widget) end_layout = qt.QHBoxLayout(self.button_widget)
@ -381,7 +384,7 @@ class ControlButtonWgt(qt.QWidget):
self.hlayout.addWidget(self.button_widget) self.hlayout.addWidget(self.button_widget)
def clear_pid_cache(self): def clear_pid_cache(self):
self.button_disabled() # self.button_disabled()
self.clear_proc_cache_button.setDisabled(True) self.clear_proc_cache_button.setDisabled(True)
sid = int(self.ClientObj.sid) sid = int(self.ClientObj.sid)
res = self.ClientObj.client.service.clear_pid_cache(sid, self.pid) res = self.ClientObj.client.service.clear_pid_cache(sid, self.pid)
@ -398,7 +401,7 @@ class ControlButtonWgt(qt.QWidget):
if type(self.window()) == SelectedMethodWgt: if type(self.window()) == SelectedMethodWgt:
self.window().close() self.window().close()
else: else:
self.del_button() # self.del_button()
self.hide() self.hide()
self._parent.back() self._parent.back()
@ -422,22 +425,22 @@ class ControlButtonWgt(qt.QWidget):
if type(self.window()) == SelectedMethodWgt: if type(self.window()) == SelectedMethodWgt:
self.window().close() self.window().close()
else: else:
self.del_button() # self.del_button()
self.hide() self.hide()
self._parent.back() self._parent.back()
def button_disabled(self): def button_disabled(self):
if self.next_button: # if self.next_button:
self.next_button.setDisabled(True) # self.next_button.setDisabled(True)
if self.prev_button: # if self.prev_button:
self.prev_button.setDisabled(True) # self.prev_button.setDisabled(True)
if self.cancel_button: # if self.cancel_button:
self.cancel_button.setDisabled(True) # self.cancel_button.setDisabled(True)
if self.clear_proc_cache_button: # if self.clear_proc_cache_button:
self.clear_proc_cache_button.setDisabled(True) # self.clear_proc_cache_button.setDisabled(True)
if self.customs: # if self.customs:
for but in self.customs: # for but in self.customs:
but.setDisabled(True) # but.setDisabled(True)
self.ClientObj.app.processEvents() self.ClientObj.app.processEvents()
def button_enabled(self): def button_enabled(self):

@ -238,6 +238,7 @@ class DisplayMethod(qt.QWidget):
def onActivated(self): def onActivated(self):
print("DEBUG onActivated")
# Call server method # Call server method
if hasattr (self, 'onActivated_thread'): if hasattr (self, 'onActivated_thread'):
if self.onActivated_thread.isRunning(): if self.onActivated_thread.isRunning():
@ -262,6 +263,7 @@ class DisplayMethod(qt.QWidget):
str(method_name + '_view'), step = step, str(method_name + '_view'), step = step,
expert = expert, expert = expert,
brief = brief) brief = brief)
print(f"view_params: \n {view_params}")
self.onActivated_thread = ClientServiceThread(self.ClientObj, \ self.onActivated_thread = ClientServiceThread(self.ClientObj, \
str(method_name + '_view'), int(self.ClientObj.sid), \ str(method_name + '_view'), int(self.ClientObj.sid), \
view_params, return_except = True) view_params, return_except = True)
@ -271,8 +273,12 @@ class DisplayMethod(qt.QWidget):
def onActivated_after(self, view): def onActivated_after(self, view):
self.setDisabled(False) self.setDisabled(False)
#self.con_lost_lbl.hide() #self.con_lost_lbl.hide()
if type(view) == Exception: if type(view) == Exception:
if hasattr (view.message, 'message'): print("DEBUG excpt")
print(view)
print(dir(view))
if hasattr (view, 'message'):
view = view.message view = view.message
if type(view.message) == tuple: if type(view.message) == tuple:
@ -346,7 +352,7 @@ class DisplayMethod(qt.QWidget):
class StartWidget(qt.QWidget): class StartWidget(qt.QWidget):
def __init__(self, parent): def __init__(self, parent):
super(StartWidget, self).__init__(parent) super().__init__(parent)
self.setAttribute(qt.Qt.WA_DeleteOnClose) self.setAttribute(qt.Qt.WA_DeleteOnClose)
class ConnectLostLabel (qt.QWidget): class ConnectLostLabel (qt.QWidget):

@ -181,8 +181,7 @@ class LeftMenu(qt.QScrollArea):
def groupActivated(self, groups, sub_group, title, ClientObj, back = False): def groupActivated(self, groups, sub_group, title, ClientObj, back = False):
ClientObj.MainWidget.delete_MainFrameWgt() ClientObj.MainWidget.delete_MainFrameWgt()
ClientObj.MainWidget.MainFrameWgt = qt.QWidget \ ClientObj.MainWidget.MainFrameWgt = qt.QWidget(ClientObj.MainWidget)
(ClientObj.MainWidget)
hlayout = qt.QHBoxLayout() hlayout = qt.QHBoxLayout()
hlayout.addItem(qt.QSpacerItem( 0, 0, \ hlayout.addItem(qt.QSpacerItem( 0, 0, \

@ -26,7 +26,7 @@ import gettext
_ = gettext.gettext _ = gettext.gettext
class ApiClient(qt.QWidget): class ApiClient(qt.QWidget):
def __init__(self, app, tabs): def __init__(self, app, tabs):
super(ApiClient, self).__init__() super().__init__()
self.app = app self.app = app
self._parent = tabs self._parent = tabs

@ -25,8 +25,8 @@ def debug(level, *args):
for s in args: for s in args:
print(s, end=' ') print(s, end=' ')
print() print()
import urllib.request as urllib2
import calculate.contrib import calculate.contrib
from urllib.error import URLError
from suds import MethodNotFound from suds import MethodNotFound
import re import re
@ -115,7 +115,8 @@ class MainFrameRes(qt.QWidget):
self._parent.methodname_wgt.show() self._parent.methodname_wgt.show()
self._parent.control_button.show() self._parent.control_button.show()
self._parent.control_button.del_button() #DEBUG
# self._parent.control_button.del_button()
if self.method_name in self.ClientObj.method_names: if self.method_name in self.ClientObj.method_names:
self._parent.methodname_wgt.setMethodName \ self._parent.methodname_wgt.setMethodName \
(self.ClientObj.method_names[self.method_name]) (self.ClientObj.method_names[self.method_name])
@ -718,7 +719,6 @@ class MainFrameRes(qt.QWidget):
""" """
Exception container with URLError Exception container with URLError
""" """
from urllib2 import URLError
from socket import error as socket_error from socket import error as socket_error
try: try:
if (exception.args and type(exception.args[0]) == URLError and if (exception.args and type(exception.args[0]) == URLError and
@ -785,12 +785,11 @@ class MainFrameRes(qt.QWidget):
def get_entire_frame(self, pid = None): def get_entire_frame(self, pid = None):
""" get entire frame, from beginning (if client disconnected) """ """ get entire frame, from beginning (if client disconnected) """
self.ClientObj.app.processEvents() self.ClientObj.app.processEvents()
sid = get_sid(self.ClientObj.client) sid = get_sid(self.ClientObj.client)
if not pid: if not pid:
try: try:
list_pid = self.ClientObj.client.service.list_pid(sid = sid) list_pid = self.ClientObj.client.service.list_pid(sid = sid)
except urllib2.URLError as e: except URLError as e:
_print ('get_entire_frame in MainFrameResult Exception') _print ('get_entire_frame in MainFrameResult Exception')
show_msg (e, _("Not connected!")) show_msg (e, _("Not connected!"))
return 1 return 1
@ -953,7 +952,7 @@ class MainFrameRes(qt.QWidget):
def get_Table(self, sid, pid, item): def get_Table(self, sid, pid, item):
try: try:
table = self.ClientObj.client.service.get_table(sid, pid, item.id) table = self.ClientObj.client.service.get_table(sid, pid, item.id)
except urllib2.URLError: except URLError:
self.show_error('Error get table from server') self.show_error('Error get table from server')
return 1 return 1

@ -680,12 +680,6 @@ class HTTPSClientCertTransport(HttpTransport):
proxy_handler = None proxy_handler = None
if ca_certs or (client_keyfile and client_certfile) \ if ca_certs or (client_keyfile and client_certfile) \
or (client_keyobj and client_certobj): or (client_keyobj and client_certobj):
print("from if in transport")
print(ca_certs)
print(client_keyfile)
print(client_certfile)
print(client_keyobj)
print(client_certobj)
https_handler = CheckingClientHTTPSHandler(parent, https_handler = CheckingClientHTTPSHandler(parent,
cert_path=path_to_cert, cert_path=path_to_cert,
ca_certs=ca_certs, ca_certs=ca_certs,

@ -558,7 +558,7 @@ class MainFrame(qt.QWidget):
self.ClientObj.param_objects[self.method_name]['error']) self.ClientObj.param_objects[self.method_name]['error'])
self.highlight_errors() self.highlight_errors()
else: else:
debug(10, "METHOD has not errors", self.method_name) debug(10, "METHOD has no errors", self.method_name)
self.error_output = True self.error_output = True
# create steps # create steps

@ -2607,6 +2607,8 @@ class ClientServiceThread(qt.QThread):
_print ('TypeError Exception in class ClientServiceThread') _print ('TypeError Exception in class ClientServiceThread')
try: try:
print(f"method name : {self.method_name}")
# print(client.service[0])
result = client.service[0][self.method_name](*self.args) result = client.service[0][self.method_name](*self.args)
except Exception as e: except Exception as e:
if self.return_except: if self.return_except:

Loading…
Cancel
Save