diff --git a/beeref/commands.py b/beeref/commands.py index 1481fad..a127809 100644 --- a/beeref/commands.py +++ b/beeref/commands.py @@ -91,11 +91,11 @@ class ScaleItemsBy(QtGui.QUndoCommand): self.ignore_first_redo = False return for item in self.items: - item.setScale(item.scale_factor + self.factor) + item.setScale(item.scale() + self.factor) def undo(self): for item in self.items: - item.setScale(item.scale_factor - self.factor) + item.setScale(item.scale() - self.factor) class NormalizeItems(QtGui.QUndoCommand): @@ -108,7 +108,7 @@ class NormalizeItems(QtGui.QUndoCommand): def redo(self): self.old_scale_factors = [] for item, factor in zip(self.items, self.scale_factors): - self.old_scale_factors.append(item.scale_factor) + self.old_scale_factors.append(item.scale()) item.setScale(factor) def undo(self): diff --git a/beeref/fileio/sql.py b/beeref/fileio/sql.py index 08c1892..2101b5e 100644 --- a/beeref/fileio/sql.py +++ b/beeref/fileio/sql.py @@ -186,7 +186,7 @@ class SQLiteIO: self.ex( 'INSERT INTO items (type, pos_x, pos_y, scale, filename) ' 'VALUES (?, ?, ?, ?, ?) ', - ('pixmap', item.pos().x(), item.pos().y(), item.scale_factor, + ('pixmap', item.pos().x(), item.pos().y(), item.scale(), item.filename)) item.save_id = self.cursor.lastrowid pixmap = item.pixmap_to_bytes() @@ -212,6 +212,6 @@ class SQLiteIO: self.ex( 'UPDATE items SET pos_x=?, pos_y=?, scale=?, filename=? ' 'WHERE id=?', - (item.pos().x(), item.pos().y(), item.scale_factor, + (item.pos().x(), item.pos().y(), item.scale(), item.filename, item.save_id)) self.connection.commit() diff --git a/beeref/items.py b/beeref/items.py index 00eb8cc..430efec 100644 --- a/beeref/items.py +++ b/beeref/items.py @@ -34,7 +34,6 @@ class BeePixmapItem(QtWidgets.QGraphicsPixmapItem): super().__init__(QtGui.QPixmap.fromImage(image)) self.save_id = None self.filename = filename - self.scale_factor = 1 logger.debug(f'Initialized {self}') self.setFlags( @@ -48,15 +47,15 @@ class BeePixmapItem(QtWidgets.QGraphicsPixmapItem): def setScale(self, factor): if factor <= 0: return - self.scale_factor = factor + logger.debug(f'Setting scale for image "{self.filename}" to {factor}') super().setScale(factor) def set_pos_center(self, x, y): """Sets the position using the item's center as the origin point.""" - self.setPos(x - self.width * self.scale_factor / 2, - y - self.height * self.scale_factor / 2) + self.setPos(x - self.width * self.scale() / 2, + y - self.height * self.scale() / 2) @property def width(self): diff --git a/beeref/selection.py b/beeref/selection.py index 9ddf1a2..cab0a9b 100644 --- a/beeref/selection.py +++ b/beeref/selection.py @@ -59,7 +59,7 @@ class SelectionItem(QtWidgets.QGraphicsItem): factor of the view.""" scale = self.parentItem().scene().views()[0].get_scale() - return value / scale / self.parentItem().scale_factor + return value / scale / self.parentItem().scale() def boundingRect(self): bounds = self.parentItem().boundingRect() diff --git a/tests/fileio/test_sql.py b/tests/fileio/test_sql.py index 647d44f..083f2ac 100644 --- a/tests/fileio/test_sql.py +++ b/tests/fileio/test_sql.py @@ -211,7 +211,7 @@ class SQLiteIOReadTestCase(BeeTestCase): assert item.save_id == 1 assert item.pos().x() == 22.2 assert item.pos().y() == 33.3 - assert item.scale_factor == 3.4 + assert item.scale() == 3.4 assert item.filename == 'bee.png' assert item.width == 3 assert item.height == 3 diff --git a/tests/test_commands.py b/tests/test_commands.py index a8bdbbd..4530aad 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -95,42 +95,42 @@ class ScaleItemsByTestCase(BeeTestCase): def test_redo_undo(self): item1 = BeePixmapItem(QtGui.QImage()) - item1.scale_factor = 1 + item1.setScale(1) item2 = BeePixmapItem(QtGui.QImage()) - item2.scale_factor = 3 + item2.setScale(3) command = commands.ScaleItemsBy([item1, item2], 2) command.redo() - assert item1.scale_factor == 3 - assert item2.scale_factor == 5 + assert item1.scale() == 3 + assert item2.scale() == 5 command.undo() - assert item1.scale_factor == 1 - assert item2.scale_factor == 3 + assert item1.scale() == 1 + assert item2.scale() == 3 def test_ignore_first_redo(self): item1 = BeePixmapItem(QtGui.QImage()) - item1.scale_factor = 1 + item1.setScale(1) item2 = BeePixmapItem(QtGui.QImage()) - item2.scale_factor = 3 + item2.setScale(3) command = commands.ScaleItemsBy([item1, item2], 2, True) command.redo() - assert item1.scale_factor == 1 - assert item2.scale_factor == 3 + assert item1.scale() == 1 + assert item2.scale() == 3 command.redo() - assert item1.scale_factor == 3 - assert item2.scale_factor == 5 + assert item1.scale() == 3 + assert item2.scale() == 5 class NormalizeItemsTestCase(BeeTestCase): def test_redo_undo(self): item1 = BeePixmapItem(QtGui.QImage()) - item1.scale_factor = 1 + item1.setScale(1) item2 = BeePixmapItem(QtGui.QImage()) - item2.scale_factor = 3 + item2.setScale(3) command = commands.NormalizeItems([item1, item2], [2, 0.5]) command.redo() - assert item1.scale_factor == 2 - assert item2.scale_factor == 0.5 + assert item1.scale() == 2 + assert item2.scale() == 0.5 command.undo() - assert item1.scale_factor == 1 - assert item2.scale_factor == 3 + assert item1.scale() == 1 + assert item2.scale() == 3 diff --git a/tests/test_items.py b/tests/test_items.py index 250ff81..b84ae0b 100644 --- a/tests/test_items.py +++ b/tests/test_items.py @@ -14,7 +14,7 @@ class BeePixmapItemTestCase(BeeTestCase): assert item.save_id is None assert item.width == 3 assert item.height == 3 - assert item.scale_factor == 1 + assert item.scale() == 1 assert item.flags() == ( QtWidgets.QGraphicsItem.GraphicsItemFlags.ItemIsMovable | QtWidgets.QGraphicsItem.GraphicsItemFlags.ItemIsSelectable) @@ -23,17 +23,17 @@ class BeePixmapItemTestCase(BeeTestCase): def test_set_scale(self): item = BeePixmapItem(QtGui.QImage()) item.setScale(3) - assert item.scale_factor == 3 + assert item.scale() == 3 def test_set_scale_ignores_zero(self): item = BeePixmapItem(QtGui.QImage()) item.setScale(0) - assert item.scale_factor == 1 + assert item.scale() == 1 def test_set_scale_ignores_negative(self): item = BeePixmapItem(QtGui.QImage()) item.setScale(-0.1) - assert item.scale_factor == 1 + assert item.scale() == 1 def test_set_pos_center(self): item = BeePixmapItem(QtGui.QImage())