21 #include <QApplication>
22 #include <QMouseEvent>
23 #include <QTouchEvent>
30 using std::shared_ptr;
41 setFocusPolicy(Qt::ClickFocus);
42 setAttribute(Qt::WA_AcceptTouchEvents,
true);
43 setMouseTracking(
true);
66 const vector< shared_ptr<TraceTreeItem> > trace_tree_items(
69 const bool any_row_items_selected = any_of(
70 trace_tree_items.begin(), trace_tree_items.end(),
71 [](
const shared_ptr<TraceTreeItem> &r) {
return r->selected(); });
73 const bool any_time_items_selected = any_of(
items.begin(),
items.end(),
74 [](
const shared_ptr<TimeItem> &i) {
return i->selected(); });
76 if (any_row_items_selected && !any_time_items_selected) {
79 for (shared_ptr<TraceTreeItem> r : trace_tree_items)
82 item_owner = r->owner();
83 else if (item_owner != r->owner())
88 }
else if (any_time_items_selected && !any_row_items_selected) {
104 bool item_dragged =
false;
107 const vector< shared_ptr<RowItem> > row_items(
109 for (shared_ptr<RowItem> r : row_items)
121 const vector< shared_ptr<TraceTreeItem> > trace_tree_items(
123 for (shared_ptr<TraceTreeItem> i : trace_tree_items)
125 item_owner = i->owner();
129 for (shared_ptr<TraceTreeItem> i : trace_tree_items)
130 i->animate_to_layout_v_offset();
135 for (
auto &i :
items)
163 const bool ctrl_pressed =
164 QApplication::keyboardModifiers() & Qt::ControlModifier;
180 bool item_dragged =
false;
182 for (
auto &i :
items)
200 const bool ctrl_pressed =
201 QApplication::keyboardModifiers() & Qt::ControlModifier;
204 const shared_ptr<ViewItem> mouse_over =
207 for (
auto &i :
items)
214 for (shared_ptr<ViewItem> i : items)
234 switch (event->type()) {
235 case QEvent::TouchBegin:
236 case QEvent::TouchUpdate:
237 case QEvent::TouchEnd:
238 if (
touch_event(static_cast<QTouchEvent *>(event)))
246 return QWidget::event(event);
256 if (event->button() & Qt::LeftButton)
263 if (event->button() & Qt::LeftButton)
277 else if (e->buttons() & Qt::LeftButton) {
280 QApplication::startDragDistance())
void restack_all_trace_tree_items()
std::vector< std::shared_ptr< T > > list_by_type()
virtual void restack_items()
std::vector< std::shared_ptr< TimeItem > > time_items() const