Commit 1bc844f2 authored by dmMaze's avatar dmMaze
Browse files

clear textedit undostack after apply font format

parent c09a4cea
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -641,8 +641,11 @@ class SceneTextManager(QObject):

    def apply_fontformat(self, fontformat: FontFormat):
        selected_blks = self.get_selected_blkitems()
        trans_widget_list = []
        for blk in selected_blks:
            trans_widget_list.append(self.pairwidget_list[blk.idx].e_trans)
        if len(selected_blks) > 0:
            self.canvas.push_undo_command(ApplyFontformatCommand(selected_blks, fontformat))
            self.canvas.push_undo_command(ApplyFontformatCommand(selected_blks, trans_widget_list, fontformat))

    def on_apply_effect(self):
        format = self.formatpanel.active_format
+6 −8
Original line number Diff line number Diff line
@@ -71,32 +71,30 @@ class MoveBlkItemsCommand(QUndoCommand):


class ApplyFontformatCommand(QUndoCommand):
    def __init__(self, items: List[TextBlkItem], fontformat: FontFormat):
    def __init__(self, items: List[TextBlkItem], trans_widget_lst: List[TransTextEdit], fontformat: FontFormat):
        super(ApplyFontformatCommand, self).__init__()
        self.items = items
        self.old_html_lst = []
        self.old_rect_lst = []
        self.old_fmt_lst = []
        self.new_fmt = fontformat
        self.trans_widget_lst = trans_widget_lst
        for item in items:
            self.old_html_lst.append(item.toHtml())
            self.old_fmt_lst.append(item.get_fontformat())
            self.old_rect_lst.append(item.absBoundingRect())

    def redo(self):
        for item in self.items:
        for item, edit in zip(self.items, self.trans_widget_lst):
            item.set_fontformat(self.new_fmt, set_char_format=True)
            edit.document().clearUndoRedoStacks()

    def undo(self):
        for rect, item, html, fmt in zip(self.old_rect_lst, self.items, self.old_html_lst, self.old_fmt_lst):
        for rect, item, html, fmt, edit in zip(self.old_rect_lst, self.items, self.old_html_lst, self.old_fmt_lst, self.trans_widget_lst):
            item.setHtml(html)
            item.set_fontformat(fmt)
            item.setRect(rect)

    def mergeWith(self, command: QUndoCommand):
        if command.new_fmt == self.new_fmt:
            return True
        return False
            edit.document().clearUndoRedoStacks()


class ApplyEffectCommand(QUndoCommand):