Commit 2f51409a authored by dmMaze's avatar dmMaze
Browse files

fix text padding with rotating

parent e0d82bf5
Loading
Loading
Loading
Loading
+0 −23
Original line number Diff line number Diff line
@@ -176,8 +176,6 @@ class SceneTextLayout(QAbstractTextDocumentLayout):
        margin *= 2
        self.max_height = margin + self.available_height
        self.max_width = margin + self.available_width
        # self.adjustLayoutPos(dm, dm)
        # self.update.emit(QRectF(0, 0, 1000, 1000))

    def documentSize(self) -> QSizeF:
        return QSizeF(self.max_width, self.max_height)
@@ -214,18 +212,6 @@ class SceneTextLayout(QAbstractTextDocumentLayout):
            block = block.next()
        self.reLayout()

    def adjustLayoutPos(self, dx, dy):
        block = self.document().firstBlock()
        while block.isValid():
            tl = block.layout()
            for ii in range(tl.lineCount()):
                line = tl.lineAt(ii)
                line_pos = line.position()
                line_pos.setY(dy + line_pos.y())
                line_pos.setX(dx + line_pos.x())
                line.setPosition(line_pos)
            block = block.next()

    def max_font_size(self) -> float:
        if self._max_font_size > 0:
            return self._max_font_size
@@ -607,15 +593,6 @@ class VerticalTextDocumentLayout(SceneTextLayout):
            self.letter_spacing = letter_spacing
            self.reLayout()

    def adjustLayoutPos(self, dx, dy):
        pass
        # dx = -dx
        # super().adjustLayoutPos(dx, dy)
        # if len(self.x_offset_lst) > 0:
        #     self.x_offset_lst = (np.array(self.x_offset_lst) + dx).tolist()
        #     for ii, blk_char_yoffset in enumerate(self.y_offset_lst):
        #         if len(blk_char_yoffset) > 0:
        #             self.y_offset_lst[ii] = (np.array(blk_char_yoffset) + dy).tolist()

class HorizontalTextDocumentLayout(SceneTextLayout):

+0 −2
Original line number Diff line number Diff line
@@ -33,8 +33,6 @@ class MoveBlkItemsCommand(QUndoCommand):
            item.oldPos = item.pos()

    def redo(self):
        # if len(self.new_pos_lst) == 0:
        #     return
        for item, new_pos in zip(self.items, self.new_pos_lst):
            item.setPos(new_pos)

+1 −1
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ class ControlBlockItem(QGraphicsRectItem):
                preview.setPixmap(blk_item.toPixmap().copy(blk_item.unpadRect(blk_item.boundingRect()).toRect()))
                preview.setOpacity(0.7)
                preview.setVisible(True)
                rotate_vec = event.scenePos() - self.ctrl.pos() - self.ctrl.boundingRect().center()
                rotate_vec = event.scenePos() - self.ctrl.sceneBoundingRect().center()
                self.updateAngleLabelPos()
                rotation = np.rad2deg(math.atan2(rotate_vec.y(), rotate_vec.x()))
                self.rotate_start = - rotation + self.ctrl.rotation() 
+4 −1
Original line number Diff line number Diff line
@@ -140,8 +140,8 @@ class TextBlkItem(QGraphicsTextItem):
            self.set_fontformat(font_fmt, set_char_format=set_char_fmt)

        if not blk.rich_text:
            if blk.translation:
            self.setPadding(blk.font_size)
            if blk.translation:
                self.setPlainText(blk.translation)
        else:
            self.setHtml(blk.rich_text)
@@ -520,6 +520,9 @@ class TextBlkItem(QGraphicsTextItem):
    def set_fontformat(self, ffmat: FontFormat, set_char_format=False):
        if self.is_vertical != ffmat.vertical:
            self.setVertical(ffmat.vertical)

        self.setPadding(pt2px(ffmat.size))

        cursor = self.textCursor()
        cursor.movePosition(QTextCursor.MoveOperation.Start)
        format = cursor.charFormat()