projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TraceTreeItemOwner: Make list_by_type return a vector instead of a set
[pulseview.git]
/
pv
/
view
/
view.cpp
diff --git
a/pv/view/view.cpp
b/pv/view/view.cpp
index 9de93f3479e5ea07697b2e57ee785b3bfbf81916..c0b3e251d964c5266d500db962ac2ebbc764b188 100644
(file)
--- a/
pv/view/view.cpp
+++ b/
pv/view/view.cpp
@@
-504,13
+504,13
@@
void View::update_viewport()
header_->update();
}
header_->update();
}
-void View::restack_all_
row
_items()
+void View::restack_all_
trace_tree
_items()
{
// Make a list of owners that is sorted from deepest first
const auto owners = list_row_item_owners();
{
// Make a list of owners that is sorted from deepest first
const auto owners = list_row_item_owners();
- vector<
Row
ItemOwner* > sorted_owners(owners.begin(), owners.end());
+ vector<
TraceTree
ItemOwner* > sorted_owners(owners.begin(), owners.end());
sort(sorted_owners.begin(), sorted_owners.end(),
sort(sorted_owners.begin(), sorted_owners.end(),
- [](const
RowItemOwner* a, const Row
ItemOwner *b) {
+ [](const
TraceTreeItemOwner* a, const TraceTree
ItemOwner *b) {
return a->depth() > b->depth(); });
// Restack the items recursively
return a->depth() > b->depth(); });
// Restack the items recursively
@@
-672,15
+672,15
@@
QRectF View::label_rect(const QRectF &rect)
return QRectF();
}
return QRectF();
}
-
Row
ItemOwner* View::find_prevalent_trace_group(
+
TraceTree
ItemOwner* View::find_prevalent_trace_group(
const shared_ptr<sigrok::ChannelGroup> &group,
const unordered_map<shared_ptr<sigrok::Channel>, shared_ptr<Signal> >
&signal_map)
{
assert(group);
const shared_ptr<sigrok::ChannelGroup> &group,
const unordered_map<shared_ptr<sigrok::Channel>, shared_ptr<Signal> >
&signal_map)
{
assert(group);
- unordered_set<
Row
ItemOwner*> owners;
- vector<
Row
ItemOwner*> owner_list;
+ unordered_set<
TraceTree
ItemOwner*> owners;
+ vector<
TraceTree
ItemOwner*> owner_list;
// Make a set and a list of all the owners
for (const auto &channel : group->channels()) {
// Make a set and a list of all the owners
for (const auto &channel : group->channels()) {
@@
-688,18
+688,18
@@
RowItemOwner* View::find_prevalent_trace_group(
if (iter == signal_map.end())
continue;
if (iter == signal_map.end())
continue;
-
Row
ItemOwner *const o = (*iter).second->owner();
+
TraceTree
ItemOwner *const o = (*iter).second->owner();
owner_list.push_back(o);
owners.insert(o);
}
// Iterate through the list of owners, and find the most prevalent
size_t max_prevalence = 0;
owner_list.push_back(o);
owners.insert(o);
}
// Iterate through the list of owners, and find the most prevalent
size_t max_prevalence = 0;
-
Row
ItemOwner *prevalent_owner = nullptr;
- for (
Row
ItemOwner *owner : owners) {
+
TraceTree
ItemOwner *prevalent_owner = nullptr;
+ for (
TraceTree
ItemOwner *owner : owners) {
const size_t prevalence = std::count_if(
owner_list.begin(), owner_list.end(),
const size_t prevalence = std::count_if(
owner_list.begin(), owner_list.end(),
- [&](
Row
ItemOwner *o) { return o == owner; });
+ [&](
TraceTree
ItemOwner *o) { return o == owner; });
if (prevalence > max_prevalence) {
max_prevalence = prevalence;
prevalent_owner = owner;
if (prevalence > max_prevalence) {
max_prevalence = prevalence;
prevalent_owner = owner;
@@
-825,8
+825,8
@@
void View::time_item_appearance_changed(bool label, bool content)
void View::extents_changed(bool horz, bool vert)
{
sticky_events_ |=
void View::extents_changed(bool horz, bool vert)
{
sticky_events_ |=
- (horz ?
Row
ItemHExtentsChanged : 0) |
- (vert ?
Row
ItemVExtentsChanged : 0);
+ (horz ?
TraceTree
ItemHExtentsChanged : 0) |
+ (vert ?
TraceTree
ItemVExtentsChanged : 0);
lazy_event_handler_.start();
}
lazy_event_handler_.start();
}
@@
-864,7
+864,7
@@
void View::v_scroll_value_changed()
void View::signals_changed()
{
void View::signals_changed()
{
- vector< shared_ptr<
Row
Item> > new_top_level_items;
+ vector< shared_ptr<
TraceTree
Item> > new_top_level_items;
const auto device = session_.device();
if (!device)
const auto device = session_.device();
if (!device)
@@
-875,7
+875,9
@@
void View::signals_changed()
// Make a list of traces that are being added, and a list of traces
// that are being removed
// Make a list of traces that are being added, and a list of traces
// that are being removed
- const set<shared_ptr<Trace>> prev_traces = list_by_type<Trace>();
+ const vector<shared_ptr<Trace>> prev_trace_list = list_by_type<Trace>();
+ const set<shared_ptr<Trace>> prev_traces(
+ prev_trace_list.begin(), prev_trace_list.end());
shared_lock<shared_mutex> lock(session_.signals_mutex());
const unordered_set< shared_ptr<Signal> > &sigs(session_.signals());
shared_lock<shared_mutex> lock(session_.signals_mutex());
const unordered_set< shared_ptr<Signal> > &sigs(session_.signals());
@@
-913,7
+915,7
@@
void View::signals_changed()
continue;
// Find best trace group to add to
continue;
// Find best trace group to add to
-
Row
ItemOwner *owner = find_prevalent_trace_group(
+
TraceTree
ItemOwner *owner = find_prevalent_trace_group(
group, signal_map);
// If there is no trace group, create one
group, signal_map);
// If there is no trace group, create one
@@
-963,7
+965,7
@@
void View::signals_changed()
// Remove any removed traces
for (shared_ptr<Trace> trace : remove_traces) {
// Remove any removed traces
for (shared_ptr<Trace> trace : remove_traces) {
-
Row
ItemOwner *const owner = trace->owner();
+
TraceTree
ItemOwner *const owner = trace->owner();
assert(owner);
owner->remove_child_item(trace);
}
assert(owner);
owner->remove_child_item(trace);
}
@@
-1044,10
+1046,10
@@
void View::perform_delayed_view_update()
void View::process_sticky_events()
{
void View::process_sticky_events()
{
- if (sticky_events_ &
Row
ItemHExtentsChanged)
+ if (sticky_events_ &
TraceTree
ItemHExtentsChanged)
update_layout();
update_layout();
- if (sticky_events_ &
Row
ItemVExtentsChanged) {
- restack_all_
row
_items();
+ if (sticky_events_ &
TraceTree
ItemVExtentsChanged) {
+ restack_all_
trace_tree
_items();
update_scroll();
}
update_scroll();
}
@@
-1057,7
+1059,7
@@
void View::process_sticky_events()
void View::on_hover_point_changed()
{
void View::on_hover_point_changed()
{
- for (shared_ptr<
Row
Item> r : *this)
+ for (shared_ptr<
TraceTree
Item> r : *this)
r->hover_point_changed();
}
r->hover_point_changed();
}