From 0aa77e876028017c8b3eb9e512960a807b4b0545 Mon Sep 17 00:00:00 2001
From: Wilbert Berendsen <wbsoft@xs4all.nl>
Date: Mon, 8 Nov 2021 09:27:44 +0100
Subject: [PATCH] fix implicit conversions from float to int, those become
unsupported in Python 3.10
---
qpageview/magnifier.py | 4 ++--
qpageview/page.py | 4 ++--
qpageview/poppler.py | 6 +++---
qpageview/render.py | 4 ++--
qpageview/rubberband.py | 2 +-
qpageview/scrollarea.py | 14 +++++++-------
qpageview/shadow.py | 8 ++++----
7 files changed, 21 insertions(+), 21 deletions(-)
diff --git frescobaldi_app/qpageview/magnifier.py frescobaldi_app/qpageview/magnifier.py
index 31db533..532f0b6 100644
--- frescobaldi_app/qpageview/magnifier.py
+++ frescobaldi_app/qpageview/magnifier.py
@@ -247,8 +247,8 @@ def wheelEvent(self, ev):
factor = 1.1 ** (ev.angleDelta().y() / 120)
g = self.geometry()
c = g.center()
- g.setWidth(min(max(g.width() * factor, self.MIN_SIZE), self.MAX_SIZE))
- g.setHeight(min(max(g.height() * factor, self.MIN_SIZE), self.MAX_SIZE))
+ g.setWidth(int(min(max(g.width() * factor, self.MIN_SIZE), self.MAX_SIZE)))
+ g.setHeight(int(min(max(g.height() * factor, self.MIN_SIZE), self.MAX_SIZE)))
g.moveCenter(c)
self.setGeometry(g)
else:
diff --git frescobaldi_app/qpageview/page.py frescobaldi_app/qpageview/page.py
index 6d26577..a2314fa 100644
--- frescobaldi_app/qpageview/page.py
+++ frescobaldi_app/qpageview/page.py
@@ -300,7 +300,7 @@ def pdf(self, filename, rect=None, resolution=72.0, paperColor=None):
pdf = QPdfWriter(filename)
pdf.setCreator("qpageview")
- pdf.setResolution(resolution)
+ pdf.setResolution(int(resolution))
layout = pdf.pageLayout()
layout.setMode(layout.FullPageMode)
@@ -364,7 +364,7 @@ def svg(self, filename, rect=None, resolution=72.0, paperColor=None):
svg.setFileName(filename)
else:
svg.setOutputDevice(filename)
- svg.setResolution(resolution)
+ svg.setResolution(int(resolution))
svg.setSize(targetSize.toSize())
svg.setViewBox(QRectF(0, 0, targetSize.width(), targetSize.height()))
return self.output(svg, source, paperColor)
diff --git frescobaldi_app/qpageview/poppler.py frescobaldi_app/qpageview/poppler.py
index 827ceb3..29122a9 100644
--- frescobaldi_app/qpageview/poppler.py
+++ frescobaldi_app/qpageview/poppler.py
@@ -208,8 +208,8 @@ def render(self, page, key, tile, paperColor=None):
key.rotation, paperColor)
if multiplier == 2:
image = image.scaledToWidth(tile.w, Qt.SmoothTransformation)
- image.setDotsPerMeterX(xres * 39.37)
- image.setDotsPerMeterY(yres * 39.37)
+ image.setDotsPerMeterX(int(xres * 39.37))
+ image.setDotsPerMeterY(int(yres * 39.37))
return image
def setRenderHints(self, doc):
@@ -262,7 +262,7 @@ def draw(self, page, painter, key, tile, paperColor=None):
(See AbstractPage.print().)
"""
- source = self.map(key, page.pageRect()).mapRect(QRectF(*tile))
+ source = self.map(key, page.pageRect()).mapRect(QRectF(*tile)).toRect() # rounded
target = QRectF(0, 0, tile.w, tile.h)
if key.rotation & 1:
target.setSize(target.size().transposed())
diff --git frescobaldi_app/qpageview/render.py frescobaldi_app/qpageview/render.py
index 935387b..e58a8ae 100644
--- frescobaldi_app/qpageview/render.py
+++ frescobaldi_app/qpageview/render.py
@@ -250,7 +250,7 @@ def info(self, page, device, rect):
key = self.key(page, ratio)
# paint rect in tile coordinates
- target = QRect(rect.x() * ratio, rect.y() * ratio, rect.width() * ratio, rect.height() * ratio)
+ target = QRect(int(rect.x() * ratio), int(rect.y() * ratio), int(rect.width() * ratio), int(rect.height() * ratio))
# tiles to paint
tiles = [t for t in self.tiles(key.width, key.height) if QRect(*t) & target]
@@ -327,7 +327,7 @@ def paint(self, page, painter, rect, callback=None):
vscale = key.height / height
for t in tileset:
# scale to our image size
- r = QRect(t.x * hscale, t.y * vscale, t.w * hscale, t.h * vscale) & target
+ r = QRect(int(t.x * hscale), int(t.y * vscale), int(t.w * hscale), int(t.h * vscale)) & target
if r and QRegion(r).subtracted(region):
# we have an image that can be drawn in rect r
source = QRectF(r.x() / hscale - t.x, r.y() / vscale - t.y,
diff --git frescobaldi_app/qpageview/rubberband.py frescobaldi_app/qpageview/rubberband.py
index e73b3e7..0677566 100644
--- frescobaldi_app/qpageview/rubberband.py
+++ frescobaldi_app/qpageview/rubberband.py
@@ -97,7 +97,7 @@ def paintEvent(self, ev):
color.setAlpha(150)
painter.setPen(color)
# XXX can this adjustment be done smarter?
- adjust = -1 / self.devicePixelRatio()
+ adjust = int(-1 / self.devicePixelRatio())
painter.drawRect(self.rect().adjusted(0, 0, adjust, adjust))
# Pseudo-handles at the corners and sides
diff --git frescobaldi_app/qpageview/scrollarea.py frescobaldi_app/qpageview/scrollarea.py
index 7cbef83..be6d591 100644
--- frescobaldi_app/qpageview/scrollarea.py
+++ frescobaldi_app/qpageview/scrollarea.py
@@ -253,7 +253,7 @@ def startScrolling(self, scroller):
"""Begin a scrolling operation using the specified scroller."""
self._scroller = scroller
if self._scrollTimer is None:
- self._scrollTimer = self.startTimer(1000 / self.scrollupdatespersec)
+ self._scrollTimer = self.startTimer(int(1000 // self.scrollupdatespersec))
def stopScrolling(self):
"""Stop scrolling."""
@@ -323,9 +323,9 @@ def mouseReleaseEvent(self, ev):
speed = speed * 1000 / self.scrollupdatespersec / time
# compute diff to scroll
sx = abs(speed.x())
- diffx = sx * (sx + 1) / 2
+ diffx = int(sx * (sx + 1) / 2)
sy = abs(speed.y())
- diffy = sy * (sy + 1) / 2
+ diffy = int(sy * (sy + 1) / 2)
if speed.x() < 0: diffx = -diffx
if speed.y() < 0: diffy = -diffy
self.kineticScrollBy(QPoint(diffx, diffy))
@@ -438,8 +438,8 @@ def scrollBy(self, diff):
dy = diff.y()
# solve speed*(speed+1)/2 = delta to ensure 1+2+3+...+speed is as close as possible under delta..
- sx = (math.sqrt(1 + 8 * abs(dx)) - 1) // 2
- sy = (math.sqrt(1 + 8 * abs(dy)) - 1) // 2
+ sx = int(math.sqrt(1 + 8 * abs(dx)) - 1) // 2
+ sy = int(math.sqrt(1 + 8 * abs(dy)) - 1) // 2
# compute the amount of displacement still needed because we're dealing with integer values.
# Since this function is called for exact moves (not free scrolling)
diff --git frescobaldi_app/qpageview/shadow.py frescobaldi_app/qpageview/shadow.py
index 253fdd2..6e6e497 100644
--- frescobaldi_app/qpageview/shadow.py
+++ frescobaldi_app/qpageview/shadow.py
@@ -39,10 +39,10 @@ class ShadowViewMixin:
def paintEvent(self, ev):
if self.dropShadowEnabled:
- width = self._pageLayout.spacing / 2
+ width = round(self._pageLayout.spacing / 2.0)
# make the rect slightly larger, so we "see" shadow of pages that
# would be outside view normally.
- rect = ev.rect().adjusted(-width, -width, width / 2, width / 2)
+ rect = ev.rect().adjusted(-width, -width, int(width // 2), int(width // 2))
painter = QPainter(self.viewport())
for page, rect in self.pagesToPaint(rect, painter):
self.drawDropShadow(page, painter, width)
--- frescobaldi_app/qpageview/scrollarea.py~ 2022-01-05 13:01:08.498518802 -0600
+++ frescobaldi_app/qpageview/scrollarea.py 2022-01-05 13:33:04.403443412 -0600
@@ -186,9 +186,9 @@
else:
viewport = self.viewport()
vbar.setRange(0, h - viewport.height())
- vbar.setPageStep(viewport.height() * .9)
+ vbar.setPageStep(int(viewport.height() * .9))
hbar.setRange(0, w - viewport.width())
- hbar.setPageStep(viewport.width() * .9)
+ hbar.setPageStep(int(viewport.width() * .9))
def scrollOffset(self):
"""Return the current scroll offset."""
--- frescobaldi_app/qpageview/shadow.py~ 2022-01-05 13:01:08.498518802 -0600
+++ frescobaldi_app/qpageview/shadow.py 2022-01-05 13:35:41.721596442 -0600
@@ -53,14 +53,14 @@
"""
width = round(width)
- rect = page.rect().adjusted(width / 2, width / 2, 0, 0)
+ rect = page.rect().adjusted(int(width // 2), int(width // 2), 0, 0)
color = QColor(Qt.black)
pen = QPen()
pen.setWidth(1)
pen.setJoinStyle(Qt.MiterJoin)
for i in range(width):
f = (width-i)/width
- color.setAlpha(200**f + 55*f)
+ color.setAlpha(int(200**f + 55*f))
pen.setColor(color)
painter.setPen(pen)
painter.drawRect(rect.adjusted(-i, -i, i, i))