Fix crash for range-export and cleanup code

ExportTimespanSelectorMultiple has one extra column at the start:
"selected". There are a total of 6 columns (0..5).

However ExportTimespanSelectorSingle lacks that column.
Selection is not needed and there are only 5 columns.

This lead to a copy/paste off-by one issue for
set_sort_column() w/ range_view.get_column(5) == NULL
when exporting ranges with a single range
This commit is contained in:
Robin Gareus 2019-10-15 22:45:28 +02:00
parent 9fa7e919a7
commit 4bf079810f
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
1 changed files with 24 additions and 24 deletions

View File

@ -392,8 +392,8 @@ ExportTimespanSelectorSingle::ExportTimespanSelectorSingle (ARDOUR::Session * se
range_id (range_id)
{
range_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_NEVER);
range_view.append_column_editable (_("RT"), range_cols.realtime);
range_view.append_column_editable (_("Range"), range_cols.name);
range_view.append_column_editable (_("RT"), range_cols.realtime); // 0
range_view.append_column_editable (_("Range"), range_cols.name); // 1
if (Gtk::CellRendererToggle * renderer = dynamic_cast<Gtk::CellRendererToggle *> (range_view.get_column_cell_renderer (0))) {
renderer->signal_toggled().connect (sigc::hide (sigc::mem_fun (*this, &ExportTimespanSelectorSingle::update_timespans)));
@ -406,22 +406,22 @@ ExportTimespanSelectorSingle::ExportTimespanSelectorSingle (ARDOUR::Session * se
Gtk::CellRendererText * label_render = Gtk::manage (new Gtk::CellRendererText());
Gtk::TreeView::Column * label_col = Gtk::manage (new Gtk::TreeView::Column (_("Time Span"), *label_render));
label_col->add_attribute (label_render->property_markup(), range_cols.label);
range_view.append_column (*label_col);
range_view.append_column (*label_col); // 2
range_view.append_column (_("Length"), range_cols.length);
range_view.append_column (_("Creation Date"), range_cols.date);
range_view.append_column (_("Length"), range_cols.length); // 3
range_view.append_column (_("Creation Date"), range_cols.date); // 4
Gtk::TreeViewColumn* range_col = range_view.get_column(2); // range name column
range_col->set_sort_column(4); // set sort name
Gtk::TreeViewColumn* range_col = range_view.get_column (1); // "Range"
range_col->set_sort_column (range_cols.name);
Gtk::TreeViewColumn* time_span_col = range_view.get_column(3); // time span column
time_span_col->set_sort_column(9); //set sort start
Gtk::TreeViewColumn* time_span_col = range_view.get_column (2); // "Time Span"
time_span_col->set_sort_column (range_cols.start);
Gtk::TreeViewColumn* date_col = range_view.get_column(5); // date column
date_col->set_sort_column(7); // set sort as the timestamp
Gtk::TreeViewColumn* length_col = range_view.get_column (3); // "Length"
length_col->set_sort_column (range_cols.length_actual);
Gtk::TreeViewColumn* length_col = range_view.get_column(4); // length column
length_col->set_sort_column(8); //set sort length_actual
Gtk::TreeViewColumn* date_col = range_view.get_column (4); // "Creation Date"
date_col->set_sort_column (range_cols.timestamp);
}
void
@ -520,22 +520,22 @@ ExportTimespanSelectorMultiple::ExportTimespanSelectorMultiple (ARDOUR::Session
Gtk::CellRendererText * label_render = Gtk::manage (new Gtk::CellRendererText());
Gtk::TreeView::Column * label_col = Gtk::manage (new Gtk::TreeView::Column (_("Time Span"), *label_render));
label_col->add_attribute (label_render->property_markup(), range_cols.label);
range_view.append_column (*label_col);
range_view.append_column (*label_col); // 3
range_view.append_column (_("Length"), range_cols.length);
range_view.append_column (_("Creation Date"), range_cols.date);
range_view.append_column (_("Length"), range_cols.length); // 4
range_view.append_column (_("Creation Date"), range_cols.date); // 5
Gtk::TreeViewColumn* range_col = range_view.get_column(2); // range name column
range_col->set_sort_column(4); // set sort name
Gtk::TreeViewColumn* range_col = range_view.get_column (2); // "Range"
range_col->set_sort_column (range_cols.name);
Gtk::TreeViewColumn* time_span_col = range_view.get_column(3); // time span column
time_span_col->set_sort_column(9); //set sort start
Gtk::TreeViewColumn* time_span_col = range_view.get_column (3); // "Time Span"
time_span_col->set_sort_column (range_cols.start);
Gtk::TreeViewColumn* date_col = range_view.get_column(5); // date column
date_col->set_sort_column(7); // set sort as the timestamp
Gtk::TreeViewColumn* length_col = range_view.get_column (4); // "Length"
length_col->set_sort_column (range_cols.length_actual);
Gtk::TreeViewColumn* length_col = range_view.get_column(4); // length column
length_col->set_sort_column(8); //set sort length_actual
Gtk::TreeViewColumn* date_col = range_view.get_column (5); // "Creation Date"
date_col->set_sort_column (range_cols.timestamp);
}
void