-void Header::mouseLeftPressEvent(QMouseEvent *event)
-{
- const bool ctrl_pressed =
- QApplication::keyboardModifiers() & Qt::ControlModifier;
-
- // Clear selection if control is not pressed and this item is unselected
- const shared_ptr<RowItem> mouse_over =
- get_mouse_over_row_item(event->pos());
- if (!ctrl_pressed && (!mouse_over || !mouse_over->selected()))
- for (shared_ptr<RowItem> r : _view)
- r->select(false);
-
- // Set the signal selection state if the item has been clicked
- if (mouse_over) {
- if (ctrl_pressed)
- mouse_over->select(!mouse_over->selected());
- else
- mouse_over->select(true);
- }
-
- // Save the offsets of any signals which will be dragged
- _mouse_down_point = event->pos();
- for (const shared_ptr<RowItem> r : _view)
- if (r->selected())
- r->drag();
-
- selection_changed();
- update();
-}
-
-void Header::mousePressEvent(QMouseEvent *event)
-{
- assert(event);
- if (event->button() & Qt::LeftButton)
- mouseLeftPressEvent(event);
-}
-
-void Header::mouseLeftReleaseEvent(QMouseEvent *event)