is no longer supported. Construct the item without a scene and then call
QGraphicsScene::addItem() to add the item to the scene.
+* QAbstractItemView and derived classes only emit the clicked() signal on left click now,
+ instead of on all mouse clicks.
+
QtNetwork
---------
* QHostAddress::isLoopback() API added. Returns true if the address is
/*!
\fn void QAbstractItemView::clicked(const QModelIndex &index)
- This signal is emitted when a mouse button is clicked. The item
+ This signal is emitted when a mouse button is left-clicked. The item
the mouse was clicked on is specified by \a index. The signal is
only emitted when the index is valid.
setState(NoState);
if (click) {
- emit clicked(index);
+ if (event->button() == Qt::LeftButton)
+ emit clicked(index);
if (edited)
return;
QStyleOptionViewItemV4 option = d->viewOptionsV4();
void QTBUG6407_extendedSelection();
void QTBUG6753_selectOnSelection();
void testDelegateDestroyEditor();
+ void testClickedSignal();
};
class MyAbstractItemDelegate : public QAbstractItemDelegate
QVERIFY(delegate.calledVirtualDtor);
}
+void tst_QAbstractItemView::testClickedSignal()
+{
+ QTableWidget view(5, 5);
+
+ view.show();
+ QApplication::setActiveWindow(&view);
+ QVERIFY(QTest::qWaitForWindowActive(&view));
+ QCOMPARE(static_cast<QWidget *>(&view), QApplication::activeWindow());
+
+ QModelIndex index49 = view.model()->index(49,0);
+ QPoint p = view.visualRect(index49).center();
+ QVERIFY(view.viewport()->rect().contains(p));
+
+ QSignalSpy clickedSpy(&view, SIGNAL(clicked(QModelIndex)));
+
+ QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, p);
+ QCOMPARE(clickedSpy.count(), 1);
+
+ QTest::mouseClick(view.viewport(), Qt::RightButton, 0, p);
+ // We expect that right-clicks do not cause the clicked() signal to
+ // be emitted.
+ QCOMPARE(clickedSpy.count(), 1);
+
+}
QTEST_MAIN(tst_QAbstractItemView)
#include "tst_qabstractitemview.moc"