Correct downsampling and better layout
This commit is contained in:
1 parent
0d741c401b
commit
30db44eaa0
13 files changed
+1511
-252
No files matched your search
@@ -54,6 +54,53 @@ void RowSet::set_row_count(int rows) {
|
||||
rebuild_all();
|
||||
}
|
||||
|
||||
void RowSet::carry_row(Row& dst, const Row& src) {
|
||||
dst.signal_name = src.signal_name;
|
||||
dst.name = src.name;
|
||||
dst.channel = src.channel;
|
||||
dst.color_index = src.color_index;
|
||||
dst.cursors_visible = src.cursors_visible;
|
||||
dst.cursor_a_x = src.cursor_a_x;
|
||||
dst.cursor_b_x = src.cursor_b_x;
|
||||
dst.ruler_y = src.ruler_y;
|
||||
// The slot's series stays where it is, but what it is bound to belonged to the row
|
||||
// this state came *from*. `bind()` re-resolves every slot next frame; clearing it here
|
||||
// is what stops the frame in between from drawing the moved row's data under the new
|
||||
// row's legend.
|
||||
for (SlotSeries& s : dst.slots) s.bind(nullptr);
|
||||
}
|
||||
|
||||
void RowSet::clear_row(Row& r) {
|
||||
r.signal_name = {};
|
||||
r.name = {};
|
||||
r.channel = {-1, -1, -1, -1};
|
||||
r.color_index = {0, 1, 2, 3};
|
||||
r.cursors_visible = false;
|
||||
r.cursor_a_x = 0.0;
|
||||
r.cursor_b_x = 0.0;
|
||||
r.ruler_y = 0.0;
|
||||
for (SlotSeries& s : r.slots) s.bind(nullptr);
|
||||
}
|
||||
|
||||
bool RowSet::insert_row(int at) {
|
||||
if (rows_ >= kMaxRows) return false;
|
||||
const int pos = std::clamp(at, 0, rows_);
|
||||
for (int i = rows_; i > pos; --i) carry_row(row(i), row(i - 1));
|
||||
clear_row(row(pos));
|
||||
++rows_;
|
||||
rebuild_all();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool RowSet::remove_row(int at) {
|
||||
if (rows_ <= 1 || at < 0 || at >= rows_) return false;
|
||||
for (int i = at; i + 1 < rows_; ++i) carry_row(row(i), row(i + 1));
|
||||
--rows_;
|
||||
clear_row(row(rows_));
|
||||
rebuild_all();
|
||||
return true;
|
||||
}
|
||||
|
||||
void RowSet::install(Row& r, int /*row_index*/, plot::Plot& p) {
|
||||
r.plot = &p;
|
||||
r.axis_x = r.plot->add_x_axis(
|
||||
|
||||
Reference in new issue
Block a user