diff --git a/ArchitectureColoredPainting/src/Editor/GraphicElement.cpp b/ArchitectureColoredPainting/src/Editor/GraphicElement.cpp index f3e53c2..0b810e9 100644 --- a/ArchitectureColoredPainting/src/Editor/GraphicElement.cpp +++ b/ArchitectureColoredPainting/src/Editor/GraphicElement.cpp @@ -114,7 +114,7 @@ void SimpleElement::paint(QPainter* painter, QTransform transform, const LayerSt else maxScale = std::max(fabs(transform.m12() / sin(angle)), fabs(transform.m21() / sin(angle))); double pixelRatio = maxScale * QGuiApplication::primaryScreen()->devicePixelRatio(); - if (painterPath == painterPathPrev && styles.getHash() == stylesHashValue) + if (painterPath == painterPathPrev && styles.getHash() == stylesHashValue && pixelRatio == pixelRatioPrev) { transform.translate(movPrev.x(), movPrev.y()); painter->setTransform(transform.scale(1 / pixelRatio, 1 / pixelRatio)); @@ -130,6 +130,7 @@ void SimpleElement::paint(QPainter* painter, QTransform transform, const LayerSt painterPathPrev = painterPath; imagePrev = img; movPrev = mov; + pixelRatioPrev = pixelRatio; } } diff --git a/ArchitectureColoredPainting/src/Editor/GraphicElement.h b/ArchitectureColoredPainting/src/Editor/GraphicElement.h index 74368be..50073e4 100644 --- a/ArchitectureColoredPainting/src/Editor/GraphicElement.h +++ b/ArchitectureColoredPainting/src/Editor/GraphicElement.h @@ -27,6 +27,7 @@ public: QPainterPath painterPathPrev; QPointF movPrev; QImage imagePrev; + double pixelRatioPrev; int index; // TODO: ¸ÄΪBitmapPath virtual QJsonObject toJson() const = 0;