name_label.set_size_request (80, -1);
if (!name_label.get_parent()) {
- item_table.attach (name_label, 1, 2, 0, 1, FILL, Gtk::FILL, 4, 0);
+ item_table.attach (name_label, 1, 2, 0, 1, FILL, FILL, 4, 0);
}
name_label.show();
name_entry.show();
if (!cd_check_button.get_parent()) {
- item_table.attach (cd_check_button, 5, 6, 0, 1, FILL, Gtk::FILL, 4, 0);
+ item_table.attach (cd_check_button, 5, 6, 0, 1, FILL, FILL, 4, 0);
}
if (!remove_button.get_parent()) {
- item_table.attach (remove_button, 7, 8, 0, 1, FILL, Gtk::FILL, 4, 0);
+ item_table.attach (remove_button, 7, 8, 0, 1, FILL, FILL, 4, 0);
}
/* XXX i can't find a way to hide the button without messing up
}
start_clock.set (location->start(), true);
-
+
if (!location->is_mark()) {
if (!end_hbox.get_parent()) {
}
+ start_clock.set_sensitive (!location->locked());
+ end_clock.set_sensitive (!location->locked());
+ length_clock.set_sensitive (!location->locked());
+
start_changed_connection = location->start_changed.connect (mem_fun(*this, &LocationEditRow::start_changed));
end_changed_connection = location->end_changed.connect (mem_fun(*this, &LocationEditRow::end_changed));
name_changed_connection = location->name_changed.connect (mem_fun(*this, &LocationEditRow::name_changed));
return;
}
- if (cd_check_button.get_active() == location->is_cd_marker()) {
- return;
- }
+ //if (cd_check_button.get_active() == location->is_cd_marker()) {
+ // return;
+ //}
if (cd_check_button.get_active()) {
if (location->start() <= session->current_start_frame()) {
end_clock.set (location->end());
length_clock.set (location->length());
+ start_clock.set_sensitive (!location->locked());
+ end_clock.set_sensitive (!location->locked());
+ length_clock.set_sensitive (!location->locked());
+
i_am_the_modifier--;
}
{
}
+void LocationUI::on_show()
+{
+ ArdourDialog::on_show();
+ refresh_location_list();
+}
gint LocationUI::do_location_remove (ARDOUR::Location *loc)
else if (location->is_auto_punch()) {
punch_edit_row.set_session (session);
punch_edit_row.set_location (location);
+ punch_edit_row.show_all();
}
else if (location->is_auto_loop()) {
loop_edit_row.set_session (session);
loop_edit_row.set_location (location);
+ loop_edit_row.show_all();
}
else {
erow = manage (new LocationEditRow(session, location));
ENSURE_GUI_THREAD(mem_fun(*this, &LocationUI::refresh_location_list));
using namespace Box_Helpers;
+ // this is just too expensive to do when window is not shown
+ if (!is_visible()) return;
+
BoxList & loc_children = location_rows.children();
BoxList & range_children = range_rows.children();