70 bool doubleClickHappened =
false;
71 bool clickSelected =
false;
77 void mousePressEvent(QMouseEvent *event)
override {
78 clickSelected = selectionModel()->isSelected(indexAt(event->pos()));
79 QTreeView::mousePressEvent(event);
86 void mouseReleaseEvent(QMouseEvent *event)
override {
87 doubleClickHappened =
false;
89 QTime dieTime = QTime::currentTime().addMSecs(200);
90 while (QTime::currentTime() < dieTime)
91 QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
93 if (!doubleClickHappened && clickSelected) {
94 QModelIndex item = indexAt(event->pos());
95 bool selected = selectionModel()->isSelected(indexAt(event->pos()));
96 if ((item.row() == -1 && item.column() == -1) || selected) {
98 const QModelIndex index;
99 selectionModel()->setCurrentIndex(index, QItemSelectionModel::Select);
102 QTreeView::mouseReleaseEvent(event);
105 QTreeView::mouseReleaseEvent(event);
107 clickSelected =
false;
114 void mouseDoubleClickEvent(QMouseEvent *event)
override {
115 doubleClickHappened =
true;
116 QTreeView::mouseDoubleClickEvent(event);