mirror of
https://github.com/rbreu/beeref.git
synced 2026-03-11 08:54:28 +00:00
Make Normalize methods more robust
This commit is contained in:
parent
e9c1eef0dc
commit
6369bb68ef
1 changed files with 8 additions and 9 deletions
|
|
@ -52,22 +52,21 @@ class BeeGraphicsScene(QtWidgets.QGraphicsScene):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
values = []
|
values = []
|
||||||
for item in self.selectedItems(user_only=True):
|
items = self.selectedItems(user_only=True)
|
||||||
|
for item in items:
|
||||||
rect = self.itemsBoundingRect(items=[item])
|
rect = self.itemsBoundingRect(items=[item])
|
||||||
values.append(getattr(rect, mode)())
|
values.append(getattr(rect, mode)())
|
||||||
if len(values) < 2:
|
if len(values) < 2:
|
||||||
return
|
return
|
||||||
avg = sum(values) / len(values)
|
avg = sum(values) / len(values)
|
||||||
|
|
||||||
logger.debug(f'Calculated average {mode} {avg}')
|
logger.debug(f'Calculated average {mode} {avg}')
|
||||||
|
|
||||||
scale_factors = []
|
scale_factors = []
|
||||||
for item in self.selectedItems(user_only=True):
|
for item in items:
|
||||||
rect = self.itemsBoundingRect(items=[item])
|
rect = self.itemsBoundingRect(items=[item])
|
||||||
scale_factors.append(avg / getattr(rect, mode)())
|
scale_factors.append(avg / getattr(rect, mode)())
|
||||||
self.undo_stack.push(
|
self.undo_stack.push(
|
||||||
commands.NormalizeItems(
|
commands.NormalizeItems(items, scale_factors))
|
||||||
self.selectedItems(user_only=True), scale_factors))
|
|
||||||
|
|
||||||
def normalize_height(self):
|
def normalize_height(self):
|
||||||
"""Scale selected images to the same height."""
|
"""Scale selected images to the same height."""
|
||||||
|
|
@ -84,7 +83,8 @@ class BeeGraphicsScene(QtWidgets.QGraphicsScene):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
sizes = []
|
sizes = []
|
||||||
for item in self.selectedItems(user_only=True):
|
items = self.selectedItems(user_only=True)
|
||||||
|
for item in items:
|
||||||
rect = self.itemsBoundingRect(items=[item])
|
rect = self.itemsBoundingRect(items=[item])
|
||||||
sizes.append(rect.width() * rect.height())
|
sizes.append(rect.width() * rect.height())
|
||||||
|
|
||||||
|
|
@ -95,12 +95,11 @@ class BeeGraphicsScene(QtWidgets.QGraphicsScene):
|
||||||
logger.debug(f'Calculated average size {avg}')
|
logger.debug(f'Calculated average size {avg}')
|
||||||
|
|
||||||
scale_factors = []
|
scale_factors = []
|
||||||
for item in self.selectedItems(user_only=True):
|
for item in items:
|
||||||
rect = self.itemsBoundingRect(items=[item])
|
rect = self.itemsBoundingRect(items=[item])
|
||||||
scale_factors.append(math.sqrt(avg / rect.width() / rect.height()))
|
scale_factors.append(math.sqrt(avg / rect.width() / rect.height()))
|
||||||
self.undo_stack.push(
|
self.undo_stack.push(
|
||||||
commands.NormalizeItems(
|
commands.NormalizeItems(items, scale_factors))
|
||||||
self.selectedItems(user_only=True), scale_factors))
|
|
||||||
|
|
||||||
def arrange(self, vertical=False):
|
def arrange(self, vertical=False):
|
||||||
"""Arrange items in a line (horizontally or vertically)."""
|
"""Arrange items in a line (horizontally or vertically)."""
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue