+ // Expand item if desired - See Bug 295573
+ if (m_mouseDoubleClickAction != ActivateItemOnly) {
+ if (m_view && m_model && m_view->supportsItemExpanding() && m_model->isExpandable(index)) {
+ const bool expanded = m_model->isExpanded(index);
+ m_model->setExpanded(index, !expanded);
+ }
+ }
+
+ if (event->button() & Qt::RightButton) {
+ m_selectionManager->clearSelection();
+ if (index >= 0) {
+ m_selectionManager->setSelected(index);
+ emit itemContextMenuRequested(index, event->screenPos());
+ } else {
+ const QRectF headerBounds = m_view->headerBoundaries();
+ if (headerBounds.contains(event->pos())) {
+ emit headerContextMenuRequested(event->screenPos());
+ } else {
+ emit viewContextMenuRequested(event->screenPos());
+ }
+ }
+ return true;
+ }
+
+ bool emitItemActivated = !(m_view->style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick) || m_singleClickActivationEnforced) &&