mirror of
https://github.com/rbreu/beeref.git
synced 2026-03-11 08:54:28 +00:00
Fix fit item when multi selection active
This commit is contained in:
parent
c591c18168
commit
eb41300172
2 changed files with 25 additions and 0 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Reference in a new issue