Add confirm, choice, pre feature

master3.3
parent 8e1ff6a590
commit ca7f1277f3

@ -351,7 +351,7 @@ class MainWgt(QtGui.QMainWindow):
pass pass
def setScrollBarVal(self): def setScrollBarVal(self):
self.main_frame.verticalScrollBar().setValue \ self.main_frame.verticalScrollBar().setSliderPosition \
(self.main_frame.verticalScrollBar().maximum()) (self.main_frame.verticalScrollBar().maximum())
def signaling_slot(self, sid, reply): def signaling_slot(self, sid, reply):

@ -110,7 +110,7 @@ class ApiClient(QtGui.QWidget):
self.lang = gettext.locale.getdefaultlocale()[0][:2] self.lang = gettext.locale.getdefaultlocale()[0][:2]
lang = gettext.translation('cl_consolegui3', \ lang = gettext.translation('cl_consolegui3', \
languages=[self.lang]) languages=[self.lang])
except IOError: except (TypeError,IOError) as e:
self.lang = 'en' self.lang = 'en'
lang = gettext.translation('cl_consolegui3',fallback=True) lang = gettext.translation('cl_consolegui3',fallback=True)

@ -26,8 +26,8 @@ from more import LabelWordWrap as Label
from SelectTable import SelectedTableWidget from SelectTable import SelectedTableWidget
class LabelWordWrap(Label): class LabelWordWrap(Label):
def __init__(self, name, parent = None): def __init__(self, name, parent = None, mono=False):
Label.__init__(self, name, parent) Label.__init__(self, name, parent,mono)
# set text selectable # set text selectable
self.setTextInteractionFlags(self.textInteractionFlags() | \ self.setTextInteractionFlags(self.textInteractionFlags() | \
QtCore.Qt.TextSelectableByMouse) QtCore.Qt.TextSelectableByMouse)
@ -106,9 +106,11 @@ class MainFrameRes(QtGui.QWidget):
"{background-color: #E4E1E0;}") "{background-color: #E4E1E0;}")
self.setObjectName('Frame_Res') self.setObjectName('Frame_Res')
self.setStyleSheet("#Frame_Res {background-color: transparent;}") self.setStyleSheet("#Frame_Res {background-color: transparent;}")
#self.setStyleSheet("#Frame_Res {background-color: green;}")
# "QWidget {border: 1px solid red;}") # "QWidget {border: 1px solid red;}")
def initUI(self): def initUI(self):
#self.setSizePolicy(QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Minimum)
self.updateGeometry() self.updateGeometry()
################# API FUNCTION ############################### ################# API FUNCTION ###############################
@ -263,16 +265,19 @@ class MainFrameRes(QtGui.QWidget):
change_offset = True) change_offset = True)
return wrapper return wrapper
def show_normal(self, item): def show_normal(self, item, mono=False):
if not hasattr (item, 'message'): if not hasattr (item, 'message'):
return return
if item.message: if item.message:
# add normal message label # add normal message label
lbl_temp = LabelWordWrap(item.message, self) lbl_temp = LabelWordWrap(item.message, self, mono=mono)
lbl_temp.setMinimumHeight(lbl_temp.sizeHint().height()) lbl_temp.setMinimumHeight(lbl_temp.minimumSizeHint().height())
lbl_temp.setMaximumHeight(lbl_temp.minimumSizeHint().height())
self.work_layout._addWidget(lbl_temp) self.work_layout._addWidget(lbl_temp)
self.initUI() self.initUI()
#self._parent.main_frame.verticalScrollBar().setSliderPosition \
# (self._parent.main_frame.verticalScrollBar().maximum())
def show_error(self, message): def show_error(self, message):
# add error message label # add error message label
@ -282,7 +287,9 @@ class MainFrameRes(QtGui.QWidget):
if message: if message:
lbl_temp = ErrorWgt(message, self) lbl_temp = ErrorWgt(message, self)
lbl_temp.set_error() lbl_temp.set_error()
lbl_temp.setMinimumHeight(lbl_temp.sizeHint().height()) lbl_temp.setMinimumHeight(lbl_temp.minimumSizeHint().height())
lbl_temp.setMaximumHeight(lbl_temp.minimumSizeHint().height())
#lbl_temp.setMinimumHeight(lbl_temp.sizeHint().height())
self.work_layout._addWidget(lbl_temp) self.work_layout._addWidget(lbl_temp)
self.initUI() self.initUI()
@ -292,6 +299,8 @@ class MainFrameRes(QtGui.QWidget):
if item.message: if item.message:
lbl_temp = ErrorWgt(item.message, self) lbl_temp = ErrorWgt(item.message, self)
lbl_temp.set_warning() lbl_temp.set_warning()
lbl_temp.setMinimumHeight(lbl_temp.minimumSizeHint().height())
lbl_temp.setMaximumHeight(lbl_temp.minimumSizeHint().height())
self.work_layout._addWidget(lbl_temp) self.work_layout._addWidget(lbl_temp)
self.initUI() self.initUI()
@ -417,6 +426,7 @@ class MainFrameRes(QtGui.QWidget):
# for mess in meth_result: # for mess in meth_result:
self.ClientObj.app.processEvents() self.ClientObj.app.processEvents()
mess = meth_result mess = meth_result
print mess.type
if mess.type == 'pid': if mess.type == 'pid':
self.get_messages(self.ClientObj.sid, mess.message) self.get_messages(self.ClientObj.sid, mess.message)
if mess.type == 'error': if mess.type == 'error':
@ -437,16 +447,21 @@ class MainFrameRes(QtGui.QWidget):
except: except:
return 1 return 1
""" get one message by its type """ """ get one message by its type """
if not hasattr(item,"type"):
return 1
for case in switch(item.type): for case in switch(item.type):
if case('normal'): if case('normal'):
self.show_normal(item) self.show_normal(item)
return 1 return 1
if case('pre'):
self.show_normal(item,mono=True)
return 1
if case('plain'): if case('plain'):
self.show_normal(item) self.show_normal(item)
return 1 return 1
if case('progress'): if case('progress'):
self.get_Progress(sid, pid, item.id) self.get_Progress(sid, pid, item.id)
return 1 return 1
if case('error'): if case('error'):
# for i in range(20): # for i in range(20):
self.show_error(item.message) self.show_error(item.message)
@ -466,6 +481,12 @@ class MainFrameRes(QtGui.QWidget):
if case('question'): if case('question'):
self.send_Message(sid, pid, item) self.send_Message(sid, pid, item)
return 1 return 1
if case('confirm'):
self.send_Confirm(sid, pid, item)
return 1
if case('choice'):
self.send_Choice(sid, pid, item)
return 1
if case('password'): if case('password'):
self.send_Password(sid, pid, item) self.send_Password(sid, pid, item)
return 1 return 1
@ -498,8 +519,9 @@ class MainFrameRes(QtGui.QWidget):
def get_messages(self, sid, pid): def get_messages(self, sid, pid):
""" get frame in a separate thread """ """ get frame in a separate thread """
#thread_messages = threading.Thread(target=get_Frame,\ #import threading
#args = (client, sid, pid)) #thread_messages = threading.Thread(target=self.get_Frame,\
# args = (sid, pid))
#thread_messages.start() #thread_messages.start()
self.get_Frame(sid, pid) self.get_Frame(sid, pid)
@ -540,7 +562,7 @@ class MainFrameRes(QtGui.QWidget):
self.get_Frame_thread.wait() self.get_Frame_thread.wait()
self.get_Frame_thread = ClientServiceThread(self.ClientObj,\ self.get_Frame_thread = ClientServiceThread(self.ClientObj,\
'get_frame', sid, pid, return_except = True, \ 'get_frame', sid, pid, return_except = True, \
sleeptime = int(self.ClientObj.client.frame_period),\ sleeptime = 0, #int(self.ClientObj.client.frame_period),\
through_object = (sid, pid)) through_object = (sid, pid))
self.get_Frame_thread.signal_extended.connect(self.get_Frame_cycle) self.get_Frame_thread.signal_extended.connect(self.get_Frame_cycle)
self.get_Frame_thread.start() self.get_Frame_thread.start()
@ -581,7 +603,6 @@ class MainFrameRes(QtGui.QWidget):
return 0 return 0
pid = list_pid[0][0] pid = list_pid[0][0]
# Call server method # Call server method
if hasattr (self, 'get_Frame_thread'): if hasattr (self, 'get_Frame_thread'):
if self.get_Frame_thread.isRunning(): if self.get_Frame_thread.isRunning():
@ -731,6 +752,16 @@ class MainFrameRes(QtGui.QWidget):
h += self.mytable.rowHeight(row_in_table) h += self.mytable.rowHeight(row_in_table)
self.mytable.setFixedHeight(h) self.mytable.setFixedHeight(h)
def send_Confirm(self, sid, pid, item):
""" send answer to the question """
self.message = ConfirmDialog(self, item, sid, pid)
self.message.show()
def send_Choice(self, sid, pid, item):
""" send answer to the question """
self.message = ChoiceDialog(self, item, sid, pid)
self.message.show()
def send_Message(self, sid, pid, item): def send_Message(self, sid, pid, item):
""" send answer to the question """ """ send answer to the question """
self.message = MessageDialog(self, item, sid, pid) self.message = MessageDialog(self, item, sid, pid)
@ -762,6 +793,10 @@ class MainFrameRes(QtGui.QWidget):
self.close_all_thread() self.close_all_thread()
self._parent.methodname_wgt._hide() self._parent.methodname_wgt._hide()
self._parent.control_button._hide() self._parent.control_button._hide()
if hasattr(self,"message") and self.message:
self.message.close()
if hasattr(self,"passwd") and self.passwd:
self.passwd.close()
event.accept() event.accept()
class MessageDialog(QtGui.QWidget): class MessageDialog(QtGui.QWidget):
@ -840,3 +875,121 @@ class MessageDialog(QtGui.QWidget):
self.send_button.setDisabled(True) self.send_button.setDisabled(True)
else: else:
self.send_button.setEnabled(True) self.send_button.setEnabled(True)
class ConfirmDialog(QtGui.QWidget):
# answer to the server question
def __init__(self, parent, item, sid, pid):
super(ConfirmDialog, self).__init__()
self._parent = parent
# self.item = item
self.sid = sid
self.pid = pid
self.layout = QtGui.QGridLayout(self)
self.label = LabelWordWrap(item.message, self)
self.layout.addWidget(self.label,0,0,1,2)
self.yes_button = QtGui.QPushButton(_('Yes'), self)
self.yes_button.setShortcut(QtGui.QKeySequence(QtCore.Qt.Key_Return))
self.yes_button.clicked.connect(self.sendYes)
self.layout.addWidget(self.yes_button,1,0)
self.no_button = QtGui.QPushButton(_('No'), self)
self.no_button.setShortcut(QtGui.QKeySequence(QtCore.Qt.Key_Escape))
self.no_button.clicked.connect(self.sendNo)
self.layout.addWidget(self.no_button,1,1)
self.move(parent.ClientObj._parent.geometry().x() + \
parent.ClientObj._parent.geometry().width() / 2 \
- self.sizeHint().width() / 2, \
parent.ClientObj._parent.geometry().y() + \
parent.ClientObj._parent.geometry().height() / 2 \
- self.sizeHint().height() / 2)
self.setWindowFlags (QtCore.Qt.WindowMinimizeButtonHint)
# self.setAttribute(QtCore.Qt.WA_ShowModal)
def send(self,answer):
# Call server method
if hasattr (self, 'send_password_thread'):
if self.send_password_thread.isRunning():
return 1
self.send_password_thread = ClientServiceThread(\
self._parent.ClientObj, 'send_message', self.sid, \
self.pid, answer, return_except = True)
self.send_password_thread.signal.connect(self.send_after)
self.send_password_thread.start()
def sendYes(self):
self.send("yes")
def sendNo(self):
self.send("no")
def send_after(self, result):
if type(result) == Exception:
show_msg(_('Failed to send the message (password) to the server'))
self.close()
return 1
self._parent.show_result(result)
self.close()
class ChoiceDialog(QtGui.QWidget):
# answer to the server question
def __init__(self, parent, item, sid, pid):
super(ChoiceDialog, self).__init__()
self._parent = parent
# self.item = item
self.sid = sid
self.pid = pid
self.layout = QtGui.QGridLayout(self)
self.message,self.answers = item.message.split('|')
self.answers = map(lambda x:(x[0],x[1].strip(')')),
map(lambda x:x.split('('),
self.answers.split(',')))
self.label = LabelWordWrap(self.message, self)
self.layout.addWidget(self.label,0,0,1,len(self.answers))
self.buttons = []
for i,answer in enumerate(self.answers):
button = QtGui.QPushButton(answer[1], self)
self.buttons.append(button)
button.answer = answer
button.parentDialog = self
button.clickFunc = (lambda self:self.parentDialog.send(self.answer[0])).__get__(button)
button.clicked.connect(button.clickFunc)
#self.yes_button.setShortcut(QtGui.QKeySequence(QtCore.Qt.Key_Return))
#self.no_button.setShortcut(QtGui.QKeySequence(QtCore.Qt.Key_Escape))
self.layout.addWidget(button,1,i)
self.move(parent.ClientObj._parent.geometry().x() + \
parent.ClientObj._parent.geometry().width() / 2 \
- self.sizeHint().width() / 2, \
parent.ClientObj._parent.geometry().y() + \
parent.ClientObj._parent.geometry().height() / 2 \
- self.sizeHint().height() / 2)
self.setWindowFlags (QtCore.Qt.WindowMinimizeButtonHint)
# self.setAttribute(QtCore.Qt.WA_ShowModal)
def send(self,answer):
# Call server method
if hasattr (self, 'send_password_thread'):
if self.send_password_thread.isRunning():
return 1
self.send_password_thread = ClientServiceThread(\
self._parent.ClientObj, 'send_message', self.sid, \
self.pid, answer, return_except = True)
self.send_password_thread.signal.connect(self.send_after)
self.send_password_thread.start()
def send_after(self, result):
if type(result) == Exception:
show_msg(_('Failed to send the message (password) to the server'))
self.close()
return 1
self._parent.show_result(result)
self.close()

@ -22,13 +22,7 @@ from calculate.core.client.function import switch
from more import get_sid, ClientServiceThread, show_msg, ErrorWgt, ResultLayout from more import get_sid, ClientServiceThread, show_msg, ErrorWgt, ResultLayout
from more import LabelWordWrap as Label from more import LabelWordWrap as Label
from MainFrameResult import LabelWordWrap,ChoiceDialog
class LabelWordWrap(Label):
def __init__(self, name, parent = None):
Label.__init__(self, name, parent)
# set text selectable
self.setTextInteractionFlags(self.textInteractionFlags() | \
QtCore.Qt.TextSelectableByMouse)
class TaskWidget(QtGui.QWidget): class TaskWidget(QtGui.QWidget):
def __init__(self, taskNumber = 1, parent = None): def __init__(self, taskNumber = 1, parent = None):
@ -143,15 +137,16 @@ class ShortFrameRes(QtGui.QWidget):
def show_view(self, view): def show_view(self, view):
pass pass
def show_normal(self, message): def show_normal(self, message, mono=False):
# add normal message label # add normal message label
if hasattr (self, 'taskWidget'): if hasattr (self, 'taskWidget') and not mono:
self.taskWidget.setText(message) self.taskWidget.setText(message)
else: else:
if message: if message:
# add normal message label # add normal message label
lbl_temp = LabelWordWrap(message, self) lbl_temp = LabelWordWrap(message, self, mono=mono)
lbl_temp.setMinimumHeight(lbl_temp.sizeHint().height()) lbl_temp.setMinimumHeight(lbl_temp.sizeHint().height())
lbl_temp.setMaximumHeight(lbl_temp.sizeHint().height())
self.work_layout._addWidget(lbl_temp) self.work_layout._addWidget(lbl_temp)
self.initUI() self.initUI()
@ -162,6 +157,7 @@ class ShortFrameRes(QtGui.QWidget):
lbl_temp = ErrorWgt(message, self) lbl_temp = ErrorWgt(message, self)
lbl_temp.set_error() lbl_temp.set_error()
lbl_temp.setMinimumHeight(lbl_temp.sizeHint().height()) lbl_temp.setMinimumHeight(lbl_temp.sizeHint().height())
lbl_temp.setMaximumHeight(lbl_temp.sizeHint().height())
self.work_layout._addWidget(lbl_temp) self.work_layout._addWidget(lbl_temp)
if hasattr (self, 'taskWidget'): if hasattr (self, 'taskWidget'):
self.taskWidget.set_error() self.taskWidget.set_error()
@ -171,6 +167,8 @@ class ShortFrameRes(QtGui.QWidget):
# add warning message label # add warning message label
lbl_temp = ErrorWgt(item.message, self) lbl_temp = ErrorWgt(item.message, self)
lbl_temp.set_warning() lbl_temp.set_warning()
lbl_temp.setMinimumHeight(lbl_temp.sizeHint().height())
lbl_temp.setMaximumHeight(lbl_temp.sizeHint().height())
self.work_layout._addWidget(lbl_temp) self.work_layout._addWidget(lbl_temp)
self.initUI() self.initUI()
@ -295,10 +293,18 @@ class ShortFrameRes(QtGui.QWidget):
except: except:
return 1 return 1
""" get one message by its type """ """ get one message by its type """
if not hasattr(item,"type"):
return 1
for case in switch(item.type): for case in switch(item.type):
if case('normal'): if case('normal'):
self.show_normal(item.message) self.show_normal(item.message)
return 1 return 1
if case('plain'):
self.show_normal(item.message)
return 1
if case('pre'):
self.show_normal(item.message,mono=True)
return 1
if case('progress'): if case('progress'):
self.get_Progress(sid, pid, item.id) self.get_Progress(sid, pid, item.id)
return 1 return 1
@ -320,6 +326,12 @@ class ShortFrameRes(QtGui.QWidget):
if case('question'): if case('question'):
self.send_Message(sid, pid, item) self.send_Message(sid, pid, item)
return 1 return 1
if case('confirm'):
self.send_Confirm(sid, pid, item)
return 1
if case('choice'):
self.send_Choice(sid, pid, item)
return 1
if case('password'): if case('password'):
self.send_Password(sid, pid, item) self.send_Password(sid, pid, item)
return 1 return 1
@ -536,6 +548,16 @@ class ShortFrameRes(QtGui.QWidget):
self.ClientObj.app.processEvents() self.ClientObj.app.processEvents()
self.initUI() self.initUI()
def send_Confirm(self, sid, pid, item):
""" send answer to the question """
self.message = ConfirmDialog(self, item, sid, pid)
self.message.show()
def send_Choice(self, sid, pid, item):
""" send answer to the question """
self.message = ChoiceDialog(self, item, sid, pid)
self.message.show()
def send_Message(self, sid, pid, item): def send_Message(self, sid, pid, item):
""" send answer to the question """ """ send answer to the question """
self.message = MessageDialog(self, item, sid, pid) self.message = MessageDialog(self, item, sid, pid)
@ -567,6 +589,10 @@ class ShortFrameRes(QtGui.QWidget):
self.close_all_thread() self.close_all_thread()
self._parent.methodname_wgt._hide() self._parent.methodname_wgt._hide()
self._parent.control_button._hide() self._parent.control_button._hide()
if hasattr(self,"message") and self.message:
self.message.close()
if hasattr(self,"passwd") and self.passwd:
self.passwd.close()
event.accept() event.accept()
class MessageDialog(QtGui.QWidget): class MessageDialog(QtGui.QWidget):
@ -643,3 +669,63 @@ class MessageDialog(QtGui.QWidget):
self.send_button.setDisabled(True) self.send_button.setDisabled(True)
else: else:
self.send_button.setEnabled(True) self.send_button.setEnabled(True)
class ConfirmDialog(QtGui.QWidget):
# answer to the server question
def __init__(self, parent, item, sid, pid):
super(ConfirmDialog, self).__init__()
self._parent = parent
# self.item = item
self.sid = sid
self.pid = pid
self.layout = QtGui.QGridLayout(self)
self.label = LabelWordWrap(item.message, self)
self.layout.addWidget(self.label,0,0,1,2)
self.yes_button = QtGui.QPushButton(_('Yes'), self)
self.yes_button.setShortcut(QtGui.QKeySequence(QtCore.Qt.Key_Return))
self.yes_button.clicked.connect(self.sendYes)
self.layout.addWidget(self.yes_button,1,0)
self.no_button = QtGui.QPushButton(_('No'), self)
self.no_button.setShortcut(QtGui.QKeySequence(QtCore.Qt.Key_Escape))
self.no_button.clicked.connect(self.sendNo)
self.layout.addWidget(self.no_button,1,1)
self.move(parent.ClientObj._parent.geometry().x() + \
parent.ClientObj._parent.geometry().width() / 2 \
- self.sizeHint().width() / 2, \
parent.ClientObj._parent.geometry().y() + \
parent.ClientObj._parent.geometry().height() / 2 \
- self.sizeHint().height() / 2)
self.setWindowFlags (QtCore.Qt.WindowMinimizeButtonHint)
# self.setAttribute(QtCore.Qt.WA_ShowModal)
def send(self,answer):
# Call server method
if hasattr (self, 'send_password_thread'):
if self.send_password_thread.isRunning():
return 1
self.send_password_thread = ClientServiceThread(\
self._parent.ClientObj, 'send_message', self.sid, \
self.pid, answer, return_except = True)
self.send_password_thread.signal.connect(self.send_after)
self.send_password_thread.start()
def sendYes(self):
self.send("yes")
def sendNo(self):
self.send("no")
def send_after(self, result):
if type(result) == Exception:
show_msg(_('Failed to send the message (password) to the server'))
self.close()
return 1
self._parent.show_result(result)
self.close()

@ -272,7 +272,7 @@ class MainFrame(QtGui.QWidget):
# call_button = QtGui.QPushButton(self) # call_button = QtGui.QPushButton(self)
if c == 1: if c == 1:
self.group_name_label.hide() self.group_name_label.hide()
self.call_server_method() self.call_server_method(change_offset = True)
return return
# Show Control Buttons widget # Show Control Buttons widget
@ -381,14 +381,14 @@ class MainFrame(QtGui.QWidget):
self.ClientObj.MainWidget.main_frame_view(view, \ self.ClientObj.MainWidget.main_frame_view(view, \
self.method_name, step_change = True) self.method_name, step_change = True)
def call_server_method(self, collect_flag = True): def call_server_method(self, collect_flag = True, change_offset=False):
call_method = CallMethod(self) call_method = CallMethod(self)
if collect_flag: if collect_flag:
call_method.collect_sig.connect(self.collect_object(False)) call_method.collect_sig.connect(self.collect_object(False))
else: else:
self.param_object = None self.param_object = None
call_method.call_meth_sig.connect(self.calling(True, \ call_method.call_meth_sig.connect(self.calling(True, \
change_offset = True)) change_offset = change_offset))
call_method.start() call_method.start()
def add_image(self): def add_image(self):

@ -338,6 +338,8 @@ class ErrorLabel (QtGui.QWidget):
self._parent.ClientObj.MainWidget.bugWidget.set_message_text\ self._parent.ClientObj.MainWidget.bugWidget.set_message_text\
(self.text_lbl.text()) (self.text_lbl.text())
ERROR_ICON_SIZE=16
class ErrorWgt(QtGui.QWidget): class ErrorWgt(QtGui.QWidget):
def __init__(self, text = '', parent = None): def __init__(self, text = '', parent = None):
QtGui.QWidget.__init__(self) QtGui.QWidget.__init__(self)
@ -346,7 +348,7 @@ class ErrorWgt(QtGui.QWidget):
self.image_but = QtGui.QPushButton(self) self.image_but = QtGui.QPushButton(self)
self.image_but.setFlat(True) self.image_but.setFlat(True)
self.image_but.setFixedSize(32,32) self.image_but.setFixedSize(ERROR_ICON_SIZE,ERROR_ICON_SIZE)
self.image_but.setStyleSheet('''QPushButton:pressed {border: none;} self.image_but.setStyleSheet('''QPushButton:pressed {border: none;}
QPushButton::hover {border: none;}''') QPushButton::hover {border: none;}''')
layout.addWidget(self.image_but, 0, QtCore.Qt.AlignmentFlag.AlignTop) layout.addWidget(self.image_but, 0, QtCore.Qt.AlignmentFlag.AlignTop)
@ -366,15 +368,15 @@ class ErrorWgt(QtGui.QWidget):
def set_warning(self): def set_warning(self):
icon = QtGui.QIcon.fromTheme('dialog-warning') icon = QtGui.QIcon.fromTheme('dialog-warning')
icon.actualSize(QtCore.QSize(32,32)) icon.actualSize(QtCore.QSize(ERROR_ICON_SIZE,ERROR_ICON_SIZE))
self.image_but.setIcon(icon) self.image_but.setIcon(icon)
self.image_but.setIconSize(QtCore.QSize(32,32)) self.image_but.setIconSize(QtCore.QSize(ERROR_ICON_SIZE,ERROR_ICON_SIZE))
def set_error(self): def set_error(self):
icon = QtGui.QIcon.fromTheme('dialog-error') icon = QtGui.QIcon.fromTheme('dialog-error')
icon.actualSize(QtCore.QSize(32,32)) icon.actualSize(QtCore.QSize(ERROR_ICON_SIZE,ERROR_ICON_SIZE))
self.image_but.setIcon(icon) self.image_but.setIcon(icon)
self.image_but.setIconSize(QtCore.QSize(32,32)) self.image_but.setIconSize(QtCore.QSize(ERROR_ICON_SIZE,ERROR_ICON_SIZE))
def add_menu(self): def add_menu(self):
if not hasattr(self, 'menu'): if not hasattr(self, 'menu'):
@ -414,14 +416,23 @@ class ErrorWgt(QtGui.QWidget):
# self.setFixedHeight(self.text.height() + 24) # self.setFixedHeight(self.text.height() + 24)
class LabelWordWrap(QtGui.QLabel): class LabelWordWrap(QtGui.QLabel):
def __init__(self, name, parent = None): def __init__(self, name, parent = None, mono=False):
if not name: if not name:
name = '' name = ''
try: try:
name = name.decode('utf-8') name = name.decode('utf-8').replace(" "," ")
leftMargin = len(name)-len(name.lstrip(' '))
name = name[leftMargin:]
except (UnicodeDecodeError, UnicodeEncodeError): except (UnicodeDecodeError, UnicodeEncodeError):
pass pass
QtGui.QLabel.__init__(self, name, parent) QtGui.QLabel.__init__(self, name, parent)
if mono:
self.setStyleSheet('font-family: Droid Sans Mono;'
'background-color:white;'
'margin:3px;')
else:
self.setStyleSheet('margin-left:%dpx;'%(leftMargin*5))
minimum = QtGui.QSizePolicy.Policy.Minimum minimum = QtGui.QSizePolicy.Policy.Minimum
exp = QtGui.QSizePolicy.Policy.Expanding exp = QtGui.QSizePolicy.Policy.Expanding
self.setSizePolicy(exp, minimum) self.setSizePolicy(exp, minimum)
@ -2223,6 +2234,10 @@ class ResultLayout(QtGui.QVBoxLayout):
self.kill_process_button = QtGui.QPushButton(_('Break the process')) self.kill_process_button = QtGui.QPushButton(_('Break the process'))
self.kill_process_button.setFixedWidth(144) self.kill_process_button.setFixedWidth(144)
self.kill_process_button.setContentsMargins(0,10,0,0) self.kill_process_button.setContentsMargins(0,10,0,0)
self.kill_process_button.setMinimumHeight(
self.kill_process_button.minimumSizeHint().height())
self.kill_process_button.setMaximumHeight(
self.kill_process_button.minimumSizeHint().height())
self.addWidget(self.kill_process_button) self.addWidget(self.kill_process_button)
def _addWidget(self, widget): def _addWidget(self, widget):

Loading…
Cancel
Save