23 #include "tablewidgetmouseaware.h" 25 #include <QMouseEvent> 26 #include <QModelIndex> 28 TableWidgetMouseAware::TableWidgetMouseAware(QWidget* parent)
29 : QTableWidget(parent)
31 bEmitSignalsEvenIfIndexIsInvalid =
false;
34 void TableWidgetMouseAware::mouseReleaseEvent(QMouseEvent* event)
36 QModelIndex index = indexAt(event->pos());
37 switch (event->button())
40 if (bEmitSignalsEvenIfIndexIsInvalid || index.isValid())
42 emit middleMouseClick(index, event->pos());
47 if (bEmitSignalsEvenIfIndexIsInvalid || index.isValid())
49 emit rightMouseClick(index, event->pos());
54 QTableView::mouseReleaseEvent(event);
59 void TableWidgetMouseAware::mouseDoubleClickEvent(QMouseEvent* event)
61 if (event->button() != Qt::LeftButton)
63 QTableView::mouseDoubleClickEvent(event);
67 QModelIndex index = indexAt(event->pos());
68 if (bEmitSignalsEvenIfIndexIsInvalid || index.isValid())
70 emit leftMouseDoubleClicked(index, event->pos());
77 QItemSelectionModel* pSelectionModel = this->selectionModel();
79 QList<int> rowIndices;
80 QModelIndexList rows = pSelectionModel->selectedRows();
81 foreach(
const QModelIndex& index, rows)
83 rowIndices << index.row();