From 2a3b5ad8e3750e9fdd97a151e13f7bba14f8234f Mon Sep 17 00:00:00 2001 From: Goffi Date: Fri, 13 Nov 2015 16:45:56 +0100 Subject: [PATCH] primitivus: partly reverted commit 641cfd2faefe : - showDialog is actually still used and useful - updated the code to use the widget argument in removePopup --- frontends/src/primitivus/primitivus | 30 +++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/frontends/src/primitivus/primitivus b/frontends/src/primitivus/primitivus index 9bfaf11c..d9691619 100755 --- a/frontends/src/primitivus/primitivus +++ b/frontends/src/primitivus/primitivus @@ -583,17 +583,35 @@ class PrimitivusApp(QuickApp, InputHistory): self.menu_roller.addMenu(_('Chat menu'), chat_widget.getMenu(), C.MENU_ID_WIDGET) def _dialogOkCb(self, widget, data): - self.removePopUp() - answer_cb = data[0] - answer_data = [data[1]] if data[1] else [] + popup, answer_cb, answer_data = data + self.removePopUp(popup) answer_cb(True, *answer_data) def _dialogCancelCb(self, widget, data): - self.removePopUp() - answer_cb = data[0] - answer_data = [data[1]] if data[1] else [] + popup, answer_cb, answer_data = data + self.removePopUp(popup) answer_cb(False, *answer_data) + def showDialog(self, message, title="", type_="info", answer_cb = None, answer_data = None): + if type_ == 'info': + popup = sat_widgets.Alert(title, message, ok_cb=answer_cb) + if answer_cb is None: + popup.setCallback('ok', lambda dummy: self.removePopUp(popup)) + elif type_ == 'error': + popup = sat_widgets.Alert(title, message, ok_cb=answer_cb) + if answer_cb is None: + popup.setCallback('ok', lambda dummy: self.removePopUp(popup)) + elif type_ == 'yes/no': + popup = sat_widgets.ConfirmDialog(message, + yes_cb=self._dialogOkCb, yes_value = (popup, answer_cb, answer_data), + no_cb=self._dialogCancelCb, no_value = (popup, answer_cb, answer_data)) + else: + popup = sat_widgets.Alert(title, message, ok_cb=answer_cb) + if answer_cb is None: + popup.setCallback('ok', lambda dummy: self.removePopUp(popup)) + log.error(u'unmanaged dialog type: {}'.format(type_)) + self.showPopUp(popup) + def dialogFailure(self, failure): """Show a failure that has been returned by an asynchronous bridge method.