'A non modal popup that notifies the user that a background task has
been completed.
:param callback: A callable that is called with payload if the user
asks to proceed. Note that this is always called in the GUI thread.
:param cancel_callback: A callable that is called with the payload if
the users asks not to proceed.
:param payload: Arbitrary object, passed to callback
:param html_log: An HTML or plain text log
:param log_viewer_title: The title for the log viewer window
:param title: The title for this popup
:param msg: The msg to display
:param det_msg: Detailed message
:param log_is_file: If True the html_log parameter is interpreted as
the path to a file on disk containing the log encoded with utf-8'

def __init__(self, callback, payload, html_log, log_viewer_title, title, msg, det_msg='', show_copy_button=False, parent=None, cancel_callback=None, log_is_file=False):

    MessageBox.__init__(self, MessageBox.QUESTION, title, msg, det_msg=det_msg, show_copy_button=show_copy_button, parent=parent)
    self.payload = payload
    self.html_log = html_log
    self.log_is_file = log_is_file
    self.log_viewer_title = log_viewer_title
    self.vlb = self.bb.addButton(_('&View    log'), self.bb.ActionRole)
    self.vlb.setIcon(QIcon(I('debug.png')))
    self.vlb.clicked.connect(self.show_log)
    self.det_msg_toggle.setVisible(bool(det_msg))
    self.setModal(False)
    (self.callback, self.cancel_callback) = (callback, cancel_callback)
    _proceed_memory.append(self)
