Ejemplo n.º 1
0
    def __ask_for_continue_if_unsaved_changes(self):
        if not self.__command_handler.can_undo.get():
            # Continue if there are no unsaved changes
            return True
        else:
            # Ask if there are unsaved changes
            box = QMessageBox()
            box.addButton(QCoreApplication.translate("main_window", "Yes"),
                          box.YesRole)
            no_button = box.addButton(QCoreApplication.translate("main_window",
                                                                 "No"),
                                      box.NoRole)
            box.setDefaultButton(no_button)
            box.setWindowTitle(QCoreApplication.translate("main_window",
                                                          "Unsaved changes"))
            box.setText(QCoreApplication.translate(
                                           "main_window",
                                           "Do you really want to continue "
                                           "without saving changes?"))
            box.setIcon(box.Icon.Question)
            response = box.exec()

            if (response == 1):
                # Do not continue because user wants to stop
                return False
            else:
                return True
Ejemplo n.º 2
0
    def finish_check(self):
        if self.valid_book_ids:
            is_filesize_exceeded = len(self.valid_book_ids) < self.books_count
            is_total_books_exceeded = self.limits[
                'total_books'] and self.books_count > self.limits['total_books']

            if is_filesize_exceeded or is_total_books_exceeded:
                if self.limits['message']:
                    msg_box = QMessageBox(self)
                    msg_box.setWindowTitle('BookFusion Sync')
                    msg_box.addButton(QMessageBox.No)
                    msg_box.addButton(QMessageBox.Yes)
                    msg_box.setText(self.limits['message'])
                    msg_box.setDefaultButton(QMessageBox.Yes)
                    reply = msg_box.exec_()
                    if reply == QMessageBox.Yes:
                        self.start_sync()
                    else:
                        self.in_progress = False
                        self.msg.setText('Canceled.')
                        self.finish_sync()
                else:
                    self.start_sync()
            else:
                self.start_sync()
        else:
            if self.in_progress:
                self.in_progress = False
                self.msg.setText('No supported books selected.')
            self.finish_sync()
Ejemplo n.º 3
0
 def message_box(self, text, informative, icon, buttons=QMessageBox.Ok):
     """Wraps up the QMessageBox"""
     msg = QMessageBox(self)
     msg.setStandardButtons(buttons)
     msg.setDefaultButton(QMessageBox.Ok)
     msg.setText(text)
     msg.setInformativeText(informative)
     msg.setIcon(icon)
     return msg.exec_()
Ejemplo n.º 4
0
def show_warning(text):
    """
    Shows a simple warning with given text.
    """
    msg_box = QMessageBox()
    msg_box.setText(text)
    msg_box.setStandardButtons(QMessageBox.Ok)
    msg_box.setDefaultButton(QMessageBox.Ok)
    msg_box.exec()
Ejemplo n.º 5
0
 def documentIsNotSave(parent):
     msgBox = QMessageBox(parent)
     msgBox.setWindowTitle('The document has been modified')
     msgBox.setText('The document has been modified')
     msgBox.setInformativeText('Do you want to save your change?')
     msgBox.setStandardButtons(QMessageBox.Save | QMessageBox.Discard
                               | QMessageBox.Cancel)
     msgBox.setDefaultButton(QMessageBox.Save)
     msgBox.setIcon(QMessageBox.Warning)
     return msgBox.exec_()
Ejemplo n.º 6
0
def borrado_fila():  #borrado fila de la tabla
    global fila, id_fila
    fila = vt.tbl_tabla.currentRow()
    id_fila = vt.tbl_tabla.item(fila, 0).text()
    #se crea MessageBox personalizado de confirmación de borrado:
    confirmacion = QMessageBox(tabla)
    confirmacion.setIcon(QMessageBox.Warning)
    confirmacion.setWindowTitle("Confirmación")
    confirmacion.setInformativeText("¿Seguro que deseas borrar\nla fila " +
                                    str(fila + 1) + "?")
    confirmacion.setStandardButtons(QMessageBox.Yes | QMessageBox.Cancel)
    confirmacion.setDefaultButton(QMessageBox.Cancel)
    boton_yes = confirmacion.button(QMessageBox.Yes)
    boton_yes.setText("Aceptar")
    boton_cancel = confirmacion.button(QMessageBox.Cancel)
    boton_cancel.setText("Cancelar")
    respuesta = confirmacion.exec_()
    if respuesta == QMessageBox.Yes:
        base.query_delete_comic(id_fila)
        if Path("portadas/" + str(id_fila) + ".jpg").is_file():
            os.remove("portadas/" + str(id_fila) + ".jpg")
        abrir_ventana_tabla()
Ejemplo n.º 7
0
class MessageWindow:
    def __init__(self, title, text, type="ok", default=None, customButtons =None, customIcon=None, run=True, destroyAfterRun=True, detailed=False, longText=""):
        self.rc = None
        self.dialog = None
        self.msgBox = QMessageBox()
        self.doCustom = False
        self.customButtons = customButtons

        icon  = None
        buttons = None

        if type == 'ok':
            buttons = QMessageBox.Ok
            icon = "question"
        elif type == 'error':
            icon = "error"
            buttons =  QMessageBox.Ok
        elif type == 'warning':
            icon = "warning"
            buttons =  QMessageBox.Ok
        elif type == 'okcancel':
            icon = "question"
            buttons = QMessageBox.Ok | QMessageBox.Cancel
        elif type == 'question':
            icon = "question"
            buttons = QMessageBox.Ok | QMessageBox.Cancel
        elif type == 'yesno':
            icon = "question"
            buttons = QMessageBox.Yes | QMessageBox.No
        elif type == 'custom':
            self.doCustom = True
            if customIcon:
                icon = customIcon
            else:
                icon = "question"

        text = "<qt>%s</qt>" % text.replace("\n", " ")
        self.msgBox.setText(text)
        if detailed:
            self.msgBox.setDetailedText(unicode(longText))

        if self.doCustom:
            button = None
            for index, text in enumerate(self.customButtons):
                button = self.msgBox.addButton(text, QMessageBox.ActionRole)
                if default is not None and default == index:
                    self.msgBox.setDefaultButton(button)
        else:
            self.msgBox.setStandardButtons(buttons)

            if default == "no":
                default = QMessageBox.No
            elif default == "yes":
                default = QMessageBox.Yes
            elif default == "ok":
                default = QMessageBox.Ok
            else:
                default = None

        self.msgBox.setDefaultButton(default)

        self.dialog = Dialog(_(title), self.msgBox, closeButton=False, isDialog=True, icon=icon)
        self.dialog.resize(QSize(0,0))
        if run:
            self.run(destroyAfterRun)

    def run(self, destroyAfterRun=True):
        self.rc = self.dialog.exec_()
        if self.msgBox.clickedButton():
            if not self.doCustom:
                if self.msgBox.clickedButton().text() in [_("Ok"), _("Yes")]:
                    self.rc = 1
                elif self.msgBox.clickedButton().text() in [_("Cancel"), _("No")]:
                    self.rc = 0
            else:
                if self.msgBox.clickedButton().text() in self.customButtons:
                    self.rc = self.customButtons.index(self.msgBox.clickedButton().text())

        if destroyAfterRun:
            self.dialog = None

        return self.rc
Ejemplo n.º 8
0
class MessageWindow:
    def __init__(self,
                 title,
                 text,
                 type="ok",
                 default=None,
                 customButtons=None,
                 customIcon=None,
                 run=True,
                 destroyAfterRun=True,
                 detailed=False,
                 longText=""):
        self.rc = None
        self.dialog = None
        self.msgBox = QMessageBox()
        self.doCustom = False
        self.customButtons = customButtons

        icon = None
        buttons = None

        if type == 'ok':
            buttons = QMessageBox.Ok
            icon = "question"
        elif type == 'error':
            icon = "error"
            buttons = QMessageBox.Ok
        elif type == 'warning':
            icon = "warning"
            buttons = QMessageBox.Ok
        elif type == 'okcancel':
            icon = "question"
            buttons = QMessageBox.Ok | QMessageBox.Cancel
        elif type == 'question':
            icon = "question"
            buttons = QMessageBox.Ok | QMessageBox.Cancel
        elif type == 'yesno':
            icon = "question"
            buttons = QMessageBox.Yes | QMessageBox.No
        elif type == 'custom':
            self.doCustom = True
            if customIcon:
                icon = customIcon
            else:
                icon = "question"

        text = "<qt>%s</qt>" % text.replace("\n", " ")
        self.msgBox.setText(text)
        if detailed:
            self.msgBox.setDetailedText(unicode(longText))

        if self.doCustom:
            button = None
            for index, text in enumerate(self.customButtons):
                button = self.msgBox.addButton(text, QMessageBox.ActionRole)
                if default is not None and default == index:
                    self.msgBox.setDefaultButton(button)
        else:
            self.msgBox.setStandardButtons(buttons)

            if default == "no":
                default = QMessageBox.No
            elif default == "yes":
                default = QMessageBox.Yes
            elif default == "ok":
                default = QMessageBox.Ok
            else:
                default = None

        self.msgBox.setDefaultButton(default)

        self.dialog = Dialog(_(title),
                             self.msgBox,
                             closeButton=False,
                             isDialog=True,
                             icon=icon)
        self.dialog.resize(QSize(0, 0))
        if run:
            self.run(destroyAfterRun)

    def run(self, destroyAfterRun=True):
        self.rc = self.dialog.exec_()
        if self.msgBox.clickedButton():
            if not self.doCustom:
                if self.msgBox.clickedButton().text() in [_("Ok"), _("Yes")]:
                    self.rc = 1
                elif self.msgBox.clickedButton().text() in [
                        _("Cancel"), _("No")
                ]:
                    self.rc = 0
            else:
                if self.msgBox.clickedButton().text() in self.customButtons:
                    self.rc = self.customButtons.index(
                        self.msgBox.clickedButton().text())

        if destroyAfterRun:
            self.dialog = None

        return self.rc