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 = []
|
||||
for item in self.selectedItems(user_only=True):
|
||||
items = self.selectedItems(user_only=True)
|
||||
for item in items:
|
||||
rect = self.itemsBoundingRect(items=[item])
|
||||
values.append(getattr(rect, mode)())
|
||||
if len(values) < 2:
|
||||
return
|
||||
avg = sum(values) / len(values)
|
||||
|
||||
logger.debug(f'Calculated average {mode} {avg}')
|
||||
|
||||
scale_factors = []
|
||||
for item in self.selectedItems(user_only=True):
|
||||
for item in items:
|
||||
rect = self.itemsBoundingRect(items=[item])
|
||||
scale_factors.append(avg / getattr(rect, mode)())
|
||||
self.undo_stack.push(
|
||||
commands.NormalizeItems(
|
||||
self.selectedItems(user_only=True), scale_factors))
|
||||
commands.NormalizeItems(items, scale_factors))
|
||||
|
||||
def normalize_height(self):
|
||||
"""Scale selected images to the same height."""
|
||||
|
|
@ -84,7 +83,8 @@ class BeeGraphicsScene(QtWidgets.QGraphicsScene):
|
|||
"""
|
||||
|
||||
sizes = []
|
||||
for item in self.selectedItems(user_only=True):
|
||||
items = self.selectedItems(user_only=True)
|
||||
for item in items:
|
||||
rect = self.itemsBoundingRect(items=[item])
|
||||
sizes.append(rect.width() * rect.height())
|
||||
|
||||
|
|
@ -95,12 +95,11 @@ class BeeGraphicsScene(QtWidgets.QGraphicsScene):
|
|||
logger.debug(f'Calculated average size {avg}')
|
||||
|
||||
scale_factors = []
|
||||
for item in self.selectedItems(user_only=True):
|
||||
for item in items:
|
||||
rect = self.itemsBoundingRect(items=[item])
|
||||
scale_factors.append(math.sqrt(avg / rect.width() / rect.height()))
|
||||
self.undo_stack.push(
|
||||
commands.NormalizeItems(
|
||||
self.selectedItems(user_only=True), scale_factors))
|
||||
commands.NormalizeItems(items, scale_factors))
|
||||
|
||||
def arrange(self, vertical=False):
|
||||
"""Arrange items in a line (horizontally or vertically)."""
|
||||
|
|
|
|||
Loading…
Reference in a new issue