Добавлена блокирвка кнопок после нажатия. Исправлен баг с перебросом вниз окна.

master-3.5 3.5.0_alpha1
parent c15f2128c9
commit c73ef9018f

@ -45,7 +45,7 @@ class LabelWordWrap(Label):
QtCore.Qt.TextSelectableByMouse)
class PlusButton(QtGui.QPushButton):
def __init__(self, parent, ClientObj, method):
def __init__(self, parent, ClientObj, method, disable_method=None):
QtGui.QPushButton.__init__(self, parent)
try:
self.setIcon(QtGui.QIcon.fromTheme('list-add'))
@ -55,6 +55,8 @@ class PlusButton(QtGui.QPushButton):
self.ClientObj = ClientObj
self.method = method
self.setFixedWidth(30)
if disable_method:
self.clicked.connect(disable_method)
self.clicked.connect(self.call_method)
def call_method(self):
@ -94,6 +96,7 @@ class MainFrameRes(QtGui.QWidget):
self.change_offset = change_offset
self.show_last = True
self.max_val = None
self.buttons = []
if self.meth_result.type == "pid":
self.cur_pid = self.meth_result.message
@ -127,6 +130,7 @@ class MainFrameRes(QtGui.QWidget):
self.timer.start(100)
self.valSignal.connect(self.show_bottom)
def initUI(self):
#self.setSizePolicy(QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Minimum)
self.updateGeometry()
@ -173,8 +177,10 @@ class MainFrameRes(QtGui.QWidget):
add_offset_flag = True
if table.addAction and not add_offset_flag:
self.work_layout._addWidget(PlusButton(self, self.ClientObj, \
table.addAction))
plus_but = PlusButton(self, self.ClientObj, table.addAction,
self.disable_buttons)
self.buttons.append(plus_but)
self.work_layout._addWidget(plus_but)
if table.onClick and table.body[0]:
self.mytable = SelectedTableWidget(len(table.body[0]), \
len(table.head[0]), self)
@ -265,6 +271,12 @@ class MainFrameRes(QtGui.QWidget):
new_step=table.step if table.step else None)
return wrapper
def disable_buttons(self):
debug(11, "DISABLE", self.buttons)
for button in self.buttons:
button.setDisabled(True)
self.timer.stop()
def add_offset_buttons(self, len_body, addAction, records):
offset_buttons = QtGui.QWidget()
layout = QtGui.QHBoxLayout(offset_buttons)
@ -289,18 +301,22 @@ class MainFrameRes(QtGui.QWidget):
begin_offset = QtGui.QPushButton(offset_buttons)
begin_offset.setIcon(QtGui.QIcon.fromTheme('go-first'))
begin_offset.setToolTip('First page')
begin_offset.clicked.connect(self.disable_buttons)
begin_offset.clicked.connect(self.call_method_with_offset(0, True))
begin_offset.setFixedWidth(30)
self.buttons.append(begin_offset)
layout.addWidget(begin_offset)
minus_offset = QtGui.QPushButton(offset_buttons)
minus_offset.setIcon(QtGui.QIcon.fromTheme('go-previous'))
minus_offset.setToolTip('Previous page')
minus_offset.clicked.connect(self.disable_buttons)
minus_offset.clicked.connect(self.call_method_with_offset(
-count_records))
minus_offset.setFixedWidth(30)
layout.addWidget(minus_offset)
self.buttons.append(minus_offset)
if not offset:
minus_offset.setDisabled(True)
@ -310,18 +326,22 @@ class MainFrameRes(QtGui.QWidget):
plus_offset = QtGui.QPushButton(offset_buttons)
plus_offset.setIcon(QtGui.QIcon.fromTheme('go-next'))
plus_offset.setToolTip('Next page')
plus_offset.clicked.connect(self.disable_buttons)
plus_offset.clicked.connect(self.call_method_with_offset(
count_records))
plus_offset.setFixedWidth(30)
plus_offset.setFixedWidth(30)
layout.addWidget(plus_offset)
self.buttons.append(plus_offset)
last_offset = QtGui.QPushButton(offset_buttons)
last_offset.setIcon(QtGui.QIcon.fromTheme('go-last'))
last_offset.setToolTip('Last page')
last_offset.clicked.connect(self.disable_buttons)
last_offset.clicked.connect(self.call_method_with_offset(
0, False, records - count_records))
last_offset.setFixedWidth(30)
layout.addWidget(last_offset)
self.buttons.append(last_offset)
if last or not records:
last_offset.setDisabled(True)
@ -329,7 +349,10 @@ class MainFrameRes(QtGui.QWidget):
plus_offset.setDisabled(True)
if addAction:
layout.addWidget(PlusButton(self, self.ClientObj, addAction))
plus_but = PlusButton(self, self.ClientObj, addAction,
self.disable_buttons)
self.buttons.append(plus_but)
layout.addWidget(plus_but)
self.work_layout._addWidget(offset_buttons)
@ -419,7 +442,7 @@ class MainFrameRes(QtGui.QWidget):
lbl_temp.setMaximumHeight(lbl_temp.minimumSizeHint().height())
self.work_layout._addWidget(lbl_temp)
self.initUI()
def show_group(self, item, *args):
pass
@ -429,7 +452,7 @@ class MainFrameRes(QtGui.QWidget):
lbl_temp.setMinimumHeight(lbl_temp.sizeHint().height())
self.work_layout._addWidget(lbl_temp)
self.initUI()
def processTags(self, s):
@ -672,11 +695,11 @@ class MainFrameRes(QtGui.QWidget):
# args = (sid, pid))
#thread_messages.start()
self.get_Frame(sid, pid)
def get_Frame(self, sid, pid, def_end_frame = 1):
""" get all messages, until type is not endFrame (or Error) """
self.not_end_frame = def_end_frame
if self.not_end_frame:
# Call server method
if hasattr (self, 'get_Frame_thread'):
@ -705,7 +728,7 @@ class MainFrameRes(QtGui.QWidget):
except:
return None
return None
def get_Frame_cycle(self, current_frame, through_object):
if type(current_frame) == Exception:
_print (_("Failed to get a frame from the server."))
@ -759,7 +782,7 @@ class MainFrameRes(QtGui.QWidget):
def get_entire_frame(self, pid = None):
""" get entire frame, from beginning (if client disconnected) """
self.ClientObj.app.processEvents()
sid = get_sid(self.ClientObj.client)
if not pid:
try:
@ -771,11 +794,11 @@ class MainFrameRes(QtGui.QWidget):
else:
list_pid = {}
list_pid[0] = [pid]
if list_pid[0] == [0]:
return 0
pid = list_pid[0][0]
# Call server method
if hasattr (self, 'get_Frame_thread'):
if self.get_Frame_thread.isRunning():
@ -836,7 +859,7 @@ class MainFrameRes(QtGui.QWidget):
# progressBar = self.add_Progress()
#if self.progress_list:
# self.progress_list[-1].hide()
temp_progress = -1
# Call server method
if hasattr (self, 'get_Progress_thread'):
@ -1024,11 +1047,11 @@ class MessageDialog(QtGui.QWidget):
x = 1
if isPassword:
self.pass_edit.setEchoMode(self.pass_edit.Password)
if item.id == 2:
if item.id == 2:
if hasattr(self,'pass_edit2'):
self.pass_edit2 = QtGui.QLineEdit(self)
self.pass_edit2.setEchoMode(self.pass_edit2.Password)
self.layout.addWidget(LabelWordWrap(_('Repeat'), self), x, 0)
self.layout.addWidget(self.pass_edit2, x, 1)
x += 1
@ -1039,9 +1062,9 @@ class MessageDialog(QtGui.QWidget):
self.send_button = QtGui.QPushButton(_('Send'), self)
self.send_button.setShortcut(QtGui.QKeySequence(QtCore.Qt.Key_Return))
self.send_button.clicked.connect(self.send_password)
self.layout.addWidget(self.send_button,x,1)
self.move(parent.ClientObj._parent.geometry().x() + \
parent.ClientObj._parent.geometry().width() / 2 \
- self.sizeHint().width() / 2, \
@ -1050,12 +1073,12 @@ class MessageDialog(QtGui.QWidget):
- self.sizeHint().height() / 2)
self.setWindowFlags (QtCore.Qt.WindowMinimizeButtonHint)
# self.setAttribute(QtCore.Qt.WA_ShowModal)
def send_password(self):
answer = self.pass_edit.text()
if not hasattr(self,"pass_edit2") or \
answer == self.pass_edit2.text():
# Call server method
if hasattr (self, 'send_password_thread'):
if self.send_password_thread.isRunning():
@ -1064,7 +1087,7 @@ class MessageDialog(QtGui.QWidget):
self._parent.ClientObj, 'send_message', self.sid, \
self.pid, answer, return_except = True)
self.send_password_thread.signal.connect(self.send_password_after)
self.send_password_thread.start()
self.send_password_thread.start()
else:
self.send_button.setDisabled(True)

Loading…
Cancel
Save