6 #include "tablewidgetmouseaware.h" 11 TableWidgetMouseAware::TableWidgetMouseAware(QWidget* parent)
12 : QTableWidget(parent)
14 bEmitSignalsEvenIfIndexIsInvalid =
false;
17 void TableWidgetMouseAware::mouseReleaseEvent(QMouseEvent* event)
19 QModelIndex index = indexAt(event->pos());
20 switch (event->button())
23 if (bEmitSignalsEvenIfIndexIsInvalid || index.isValid())
25 emit middleMouseClick(index, event->pos());
30 if (bEmitSignalsEvenIfIndexIsInvalid || index.isValid())
32 emit rightMouseClick(index, event->pos());
37 QTableView::mouseReleaseEvent(event);
42 void TableWidgetMouseAware::mouseDoubleClickEvent(QMouseEvent* event)
44 if (event->button() != Qt::LeftButton)
46 QTableView::mouseDoubleClickEvent(event);
50 QModelIndex index = indexAt(event->pos());
51 if (bEmitSignalsEvenIfIndexIsInvalid || index.isValid())
53 emit leftMouseDoubleClicked(index, event->pos());
60 QItemSelectionModel* pSelectionModel = this->selectionModel();
62 QList<int> rowIndices;
63 QModelIndexList rows = pSelectionModel->selectedRows();
64 foreach(
const QModelIndex& index, rows)
66 rowIndices << index.row();