update();
}
-void Header::signals_updated()
-{
- for (shared_ptr<RowItem> r : _view) {
- assert(r);
- connect(r.get(), SIGNAL(appearance_changed()),
- this, SLOT(on_trace_changed()));
- }
-}
-
void Header::show_popup(const shared_ptr<RowItem> &item)
{
using pv::widgets::Popup;
if (!p)
return;
- const QPoint pt(width() - BaselineOffset, item->get_y());
+ const QPoint pt(width() - BaselineOffset, item->get_visual_y());
p->set_position(mapToGlobal(pt), Popup::Right);
p->show();
}
stable_sort(row_items.begin(), row_items.end(),
[](const shared_ptr<RowItem> &a, const shared_ptr<RowItem> &b) {
- return a->v_offset() < b->v_offset(); });
+ return a->visual_v_offset() < b->visual_v_offset(); });
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
for (auto &r : _view)
r->drag_release();
- if (!_dragging)
+ if (_dragging)
+ _view.restack_all_row_items();
+ else
{
if (!ctrl_pressed) {
for (shared_ptr<RowItem> r : _view)
for (std::shared_ptr<RowItem> r : _view)
if (r->dragging()) {
- r->set_v_offset(r->drag_point().y() + delta);
+ r->force_to_v_offset(r->drag_point().y() + delta);
// Ensure the trace is selected
r->select();
}
+ item_owner->restack_items();
+ for (const auto &r : *item_owner)
+ r->animate_to_layout_v_offset();
signals_moved();
update();
update();
}
-void Header::on_trace_changed()
-{
- update();
- geometry_updated();
-}
-
} // namespace view
} // namespace pv