- 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));
- changed_connection = location->changed.connect (mem_fun(*this, &LocationEditRow::location_changed));
- flags_changed_connection = location->FlagsChanged.connect (mem_fun(*this, &LocationEditRow::flags_changed));
-
+ start_clock.set_sensitive (!location->locked());
+ end_clock.set_sensitive (!location->locked());
+ length_clock.set_sensitive (!location->locked());
+
+ location->start_changed.connect (connections, invalidator (*this), ui_bind (&LocationEditRow::start_changed, this, _1), gui_context());
+ location->end_changed.connect (connections, invalidator (*this), ui_bind (&LocationEditRow::end_changed, this, _1), gui_context());
+ location->name_changed.connect (connections, invalidator (*this), ui_bind (&LocationEditRow::name_changed, this, _1), gui_context());
+ location->changed.connect (connections, invalidator (*this), ui_bind (&LocationEditRow::location_changed, this, _1), gui_context());
+ location->FlagsChanged.connect (connections, invalidator (*this), ui_bind (&LocationEditRow::flags_changed, this, _1, _2), gui_context());