Commit 5a465482 authored by dmMaze's avatar dmMaze
Browse files

fix #322

parent 6e4f708b
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -344,8 +344,17 @@ class Canvas(QGraphicsScene):
    def scaleBy(self, value: float):
        self.scaleImage(value)

    def _set_scene_scale(self, scale: float):
        self.scale_factor = scale
        self.baseLayer.setScale(scale)
        self.setSceneRect(0, 0, self.baseLayer.sceneBoundingRect().width(), self.baseLayer.sceneBoundingRect().height())

    def render_result_img(self):

        scale_before = self.scale_factor
        if scale_before != 1:
            self._set_scene_scale(1)

        self.clearSelection()
        if self.textEditMode() and self.txtblkShapeControl.blk_item is not None:
            if self.txtblkShapeControl.blk_item.is_editting():
@@ -359,12 +368,16 @@ class Canvas(QGraphicsScene):
        result = QImage(canvas_sz, QImage.Format.Format_ARGB32)
        painter = QPainter(result)
        painter.setRenderHint(QPainter.RenderHint.Antialiasing)

        rect = QRectF(0, 0, canvas_sz.width(), canvas_sz.height())
        self.render(painter, rect, rect)   #  produce blurred result if target/source rect not specified #320
        painter.end()
        
        self.inpaintLayer.setPixmap(old_ilayer_pixmap)

        if scale_before != 1:
            self._set_scene_scale(scale_before)

        return result
    
    def updateLayers(self):
@@ -416,8 +429,6 @@ class Canvas(QGraphicsScene):
        s_f = self.scale_factor * factor
        s_f = np.clip(s_f, CANVAS_SCALE_MIN, CANVAS_SCALE_MAX)

        sbr = self.baseLayer.sceneBoundingRect()
        self.old_size = sbr.size()
        scale_changed = self.scale_factor != s_f
        self.scale_factor = s_f
        self.baseLayer.setScale(self.scale_factor)