Commit ffa46c85 authored by minicom's avatar minicom
Browse files

Fixed position bug when copying/pasting

parent 62aa2ac0
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -157,7 +157,7 @@ class Canvas(QGraphicsScene):
    finish_painting = Signal(StrokeImgItem)
    finish_erasing = Signal(StrokeImgItem)
    delete_textblks = Signal(int)
    copy_textblks = Signal(QPointF)
    copy_textblks = Signal()
    paste_textblks = Signal(QPointF)
    copy_src_signal = Signal()
    paste_src_signal = Signal()
@@ -786,9 +786,9 @@ class Canvas(QGraphicsScene):
            elif rst == delete_recover_act:
                self.delete_textblks.emit(1)
            elif rst == copy_act:
                self.on_copy(pos.toPointF())
                self.on_copy()
            elif rst == paste_act:
                self.on_paste(pos.toPointF())
                self.on_paste()
            elif rst == copy_src_act:
                self.copy_src_signal.emit()
            elif rst == paste_src_act:
@@ -825,12 +825,10 @@ class Canvas(QGraphicsScene):
            else:
                self.paste_textblks.emit(p)

    def on_copy(self, p: QPointF = None):
    def on_copy(self):
        if self.textEditMode():
            if self.have_selected_blkitem:
                if p is None:
                    p = self.scene_cursor_pos()
                self.copy_textblks.emit(p)
                self.copy_textblks.emit()

    def hide_rubber_band(self):
        if self.rubber_band.isVisible():
+4 −8
Original line number Diff line number Diff line
@@ -637,7 +637,7 @@ class SceneTextManager(QObject):
        if len(selected_blks) > 0:
            self.canvas.push_undo_command(DeleteBlkItemsCommand(selected_blks, mode, self))

    def onCopyBlkItems(self, pos: QPointF):
    def onCopyBlkItems(self):
        selected_blks = self.canvas.selected_text_items()
        if len(selected_blks) == 0 and self.txtblkShapeControl.blk_item is not None:
            selected_blks.append(self.txtblkShapeControl.blk_item)
@@ -649,13 +649,9 @@ class SceneTextManager(QObject):
        if self.canvas.text_change_unsaved():
            self.updateTextBlkList()

        if pos is None:
            pos = selected_blks[0].blk.xyxy
            pos_x, pos_y = pos[0], pos[1]
        else:
            pos_x, pos_y = pos.x(), pos.y()
            pos_x = int(pos_x / self.canvas.scale_factor)
            pos_y = int(pos_y / self.canvas.scale_factor)
        pos = selected_blks[0].blk.bounding_rect()
        pos_x = int(pos[0] + pos[2] / 2)
        pos_y = int(pos[1] + pos[3] / 2)

        textlist = []
        for blkitem in selected_blks: