diff options
author | Robin Gareus <robin@gareus.org> | 2019-10-15 22:45:28 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2019-10-15 22:45:28 +0200 |
commit | 4bf079810fbba53e6056017692d7f437fb2275f7 (patch) | |
tree | 4d9470b4279d17c2ffc8f8f1a348cecfeb4eddce /gtk2_ardour/export_timespan_selector.cc | |
parent | 9fa7e919a7b4a52020358da45bcbdab67720d1b0 (diff) |
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
Diffstat (limited to 'gtk2_ardour/export_timespan_selector.cc')
-rw-r--r-- | gtk2_ardour/export_timespan_selector.cc | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/gtk2_ardour/export_timespan_selector.cc b/gtk2_ardour/export_timespan_selector.cc index ef2dcd0a2a..0f4bcd170c 100644 --- a/gtk2_ardour/export_timespan_selector.cc +++ b/gtk2_ardour/export_timespan_selector.cc @@ -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 |