QGV: fix items not to be selected on right mouse button release
Task-number: QTBUG-30990 Change-Id: I421d9169b592da2b468eceb9df4f3f7c6a06e8d6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
This commit is contained in:
parent
3f1519d40a
commit
0b862e0677
@ -7186,7 +7186,7 @@ void QGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
||||
*/
|
||||
void QGraphicsItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
if (flags() & ItemIsSelectable) {
|
||||
if (event->button() == Qt::LeftButton && (flags() & ItemIsSelectable)) {
|
||||
bool multiSelect = (event->modifiers() & Qt::ControlModifier) != 0;
|
||||
if (event->scenePos() == event->buttonDownScenePos(Qt::LeftButton)) {
|
||||
// The item didn't move
|
||||
|
@ -470,6 +470,7 @@ private slots:
|
||||
void QTBUG_13473_sceneposchange();
|
||||
void QTBUG_16374_crashInDestructor();
|
||||
void QTBUG_20699_focusScopeCrash();
|
||||
void QTBUG_30990_rightClickSelection();
|
||||
|
||||
private:
|
||||
QList<QGraphicsItem *> paintedItems;
|
||||
@ -11468,5 +11469,32 @@ void tst_QGraphicsItem::QTBUG_20699_focusScopeCrash()
|
||||
fs.setFocus();
|
||||
}
|
||||
|
||||
void tst_QGraphicsItem::QTBUG_30990_rightClickSelection()
|
||||
{
|
||||
QGraphicsScene scene;
|
||||
QGraphicsItem *item1 = scene.addRect(10, 10, 10, 10);
|
||||
item1->setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable);
|
||||
QGraphicsItem *item2 = scene.addRect(100, 100, 10, 10);
|
||||
item2->setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable);
|
||||
|
||||
// right mouse press & release over an item should not make it selected
|
||||
sendMousePress(&scene, item1->boundingRect().center(), Qt::RightButton);
|
||||
QVERIFY(!item1->isSelected());
|
||||
sendMouseRelease(&scene, item1->boundingRect().center(), Qt::RightButton);
|
||||
QVERIFY(!item1->isSelected());
|
||||
|
||||
// right mouse press over one item, moving over another item,
|
||||
// and then releasing should make neither of the items selected
|
||||
sendMousePress(&scene, item1->boundingRect().center(), Qt::RightButton);
|
||||
QVERIFY(!item1->isSelected());
|
||||
QVERIFY(!item2->isSelected());
|
||||
sendMouseMove(&scene, item2->boundingRect().center(), Qt::RightButton);
|
||||
QVERIFY(!item1->isSelected());
|
||||
QVERIFY(!item2->isSelected());
|
||||
sendMouseRelease(&scene, item2->boundingRect().center(), Qt::RightButton);
|
||||
QVERIFY(!item1->isSelected());
|
||||
QVERIFY(!item2->isSelected());
|
||||
}
|
||||
|
||||
QTEST_MAIN(tst_QGraphicsItem)
|
||||
#include "tst_qgraphicsitem.moc"
|
||||
|
Loading…
Reference in New Issue
Block a user