[graphics/krita] libs/ui/tool: Use painter save and restore

Emmet O'Neill <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 7d8bd16b878dee6b0df5be5e4db83d700aabbb9b by Emmet O'Neill, on behalf of Le Tien Dat.
Committed on 13/08/2026 at 23:16.
Pushed by emmetoneill into branch 'master'.

Use painter save and restore

M  +6    -3    libs/ui/tool/KisAsyncColorSamplerHelper.cpp

https://invent.kde.org/graphics/krita/-/commit/7d8bd16b878dee6b0df5be5e4db83d700aabbb9b

diff --git a/libs/ui/tool/KisAsyncColorSamplerHelper.cpp b/libs/ui/tool/KisAsyncColorSamplerHelper.cpp
index 98c90e3d53d..bed260c2eab 100644
--- a/libs/ui/tool/KisAsyncColorSamplerHelper.cpp
+++ b/libs/ui/tool/KisAsyncColorSamplerHelper.cpp
@@ -584,6 +584,8 @@ void KisAsyncColorSamplerHelper::paintCircle(QPainter &gc,
 }
 
 void KisAsyncColorSamplerHelper::paintCircleCanvasPreview(QPainter &gc, const QRectF &viewRectF, const QRectF &sampleDocRectF, const QPainterPath &clip) {
+    gc.save();
+
     QRectF canvasSampleRectF = m_d->canvas->image()->documentToPixel(sampleDocRectF);
 
     // Copy a piece of canvas image with size = (previewDocRect size) / (zoom preview scale)
@@ -597,10 +599,9 @@ void KisAsyncColorSamplerHelper::paintCircleCanvasPreview(QPainter &gc, const QR
     // drawImage will scale it up that many times, thus achieving the zoom effect
     gc.drawImage(viewRectF, canvasPreview);
 
-    gc.setClipPath(QPainterPath(), Qt::NoClip);
+    gc.restore();
 }
 
-// TODO: Fix color sampler run away when REALLY zoomed in
 // Won't show opacity because the color sampled doesn't respect opacity either
 void KisAsyncColorSamplerHelper::paintCircleReferenceImagePreview(QPainter &gc, const QRectF &viewRectF, const QRectF &sampleDocRectF, const QPainterPath &clip) {
     KisDocument *doc = m_d->canvas->viewManager()->document();
@@ -608,6 +609,8 @@ void KisAsyncColorSamplerHelper::paintCircleReferenceImagePreview(QPainter &gc,
     KisReferenceImagesLayerSP refLayer = doc->referenceImagesLayer();
     if (!refLayer) return;
 
+    gc.save();
+
     gc.setCompositionMode(QPainter::CompositionMode_SourceOver);
     gc.setClipPath(clip);
 
@@ -644,7 +647,7 @@ void KisAsyncColorSamplerHelper::paintCircleReferenceImagePreview(QPainter &gc,
         gc.translate(-viewRectF.center());
     }
 
-    gc.setClipPath(QPainterPath(), Qt::NoClip);
+    gc.restore();
 }
 
 void KisAsyncColorSamplerHelper::slotAddSamplingJob(const QPointF &docPoint)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.