Fix fit item when multi selection active

This commit is contained in:
Rebecca Breu 2021-04-15 20:51:43 +02:00
parent c591c18168
commit eb41300172
2 changed files with 25 additions and 0 deletions

View file

@ -129,6 +129,8 @@ class BeeGraphicsScene(QtWidgets.QGraphicsScene):
item = self.itemAt(event.scenePos(), self.views()[0].transform())
if item:
self.move_active = False
if not item.isSelected():
item.setSelected(True)
self.views()[0].fit_rect(
self.itemsBoundingRect(selection_only=True),
toggle_item=item)

View file

@ -195,6 +195,29 @@ class BeeGraphicsSceneTestCase(BeeTestCase):
QtCore.QRectF(30, 40, 100, 100), toggle_item=item)
mouse_mock.assert_not_called()
@patch('PyQt6.QtWidgets.QGraphicsScene.mouseDoubleClickEvent')
def test_mouse_doubleclick_event_when_item_not_selected(
self, mouse_mock):
event = MagicMock()
self.scene.move_active = True
item = BeePixmapItem(QtGui.QImage())
self.scene.addItem(item)
item.setPos(30, 40)
item.setSelected(False)
self.scene.itemAt = MagicMock(return_value=item)
with patch('beeref.items.BeePixmapItem.width',
new_callable=PropertyMock, return_value=100):
with patch('beeref.items.BeePixmapItem.height',
new_callable=PropertyMock, return_value=100):
self.scene.mouseDoubleClickEvent(event)
assert self.scene.move_active is False
self.view.fit_rect.assert_called_once_with(
QtCore.QRectF(30, 40, 100, 100), toggle_item=item)
mouse_mock.assert_not_called()
assert item.isSelected() is True
@patch('PyQt6.QtWidgets.QGraphicsScene.mouseDoubleClickEvent')
def test_mouse_doubleclick_event_when_not_over_item(self, mouse_mock):
event = MagicMock()