: SessionHandlePtr (0) /* explicitly set below */
, location(0)
, item_table (1, 6, false)
- , start_clock (X_("locationstart"), true, X_("LocationEditRowClock"), true, false)
- , end_clock (X_("locationend"), true, X_("LocationEditRowClock"), true, false)
- , length_clock (X_("locationlength"), true, X_("LocationEditRowClock"), true, false, true)
+ , start_clock (X_("locationstart"), true, "", true, false)
+ , end_clock (X_("locationend"), true, "", true, false)
+ , length_clock (X_("locationlength"), true, "", true, false, true)
, cd_check_button (_("CD"))
, hide_check_button (_("Hide"))
, lock_check_button (_("Lock"))
start_go_button.signal_clicked().connect(sigc::bind (sigc::mem_fun (*this, &LocationEditRow::go_button_pressed), LocStart));
start_to_playhead_button->signal_clicked().connect (sigc::bind (sigc::mem_fun (*this, &LocationEditRow::to_playhead_button_pressed), LocStart));
start_clock.ValueChanged.connect (sigc::bind (sigc::mem_fun (*this, &LocationEditRow::clock_changed), LocStart));
- start_clock.ChangeAborted.connect (sigc::bind (sigc::mem_fun (*this, &LocationEditRow::change_aborted), LocStart));
end_hbox.pack_start (end_go_button, false, false);
end_hbox.pack_start (end_clock, false, false);
end_go_button.signal_clicked().connect(sigc::bind (sigc::mem_fun (*this, &LocationEditRow::go_button_pressed), LocEnd));
end_to_playhead_button->signal_clicked().connect (sigc::bind (sigc::mem_fun (*this, &LocationEditRow::to_playhead_button_pressed), LocEnd));
end_clock.ValueChanged.connect (sigc::bind (sigc::mem_fun (*this, &LocationEditRow::clock_changed), LocEnd));
- end_clock.ChangeAborted.connect (sigc::bind (sigc::mem_fun (*this, &LocationEditRow::change_aborted), LocEnd));
length_clock.ValueChanged.connect (sigc::bind ( sigc::mem_fun(*this, &LocationEditRow::clock_changed), LocLength));
- length_clock.ChangeAborted.connect (sigc::bind (sigc::mem_fun (*this, &LocationEditRow::change_aborted), LocLength));
cd_check_button.signal_toggled().connect(sigc::mem_fun(*this, &LocationEditRow::cd_toggled));
hide_check_button.signal_toggled().connect(sigc::mem_fun(*this, &LocationEditRow::hide_toggled));
start_clock.set_session (_session);
end_clock.set_session (_session);
length_clock.set_session (_session);
-
}
void
}
}
-void
-LocationEditRow::change_aborted (LocationPart /*part*/)
-{
- if (i_am_the_modifier || !location) return;
-
- set_location(location);
-}
-
void
LocationEditRow::cd_toggled ()
{
}
void
-LocationEditRow::end_changed (ARDOUR::Location *loc)
+LocationEditRow::end_changed (ARDOUR::Location *)
{
ENSURE_GUI_THREAD (*this, &LocationEditRow::end_changed, loc)
i_am_the_modifier = 0;
_clock_group = new ClockGroup;
- _clock_group->set_clock_mode (AudioClock::Frames);
VBox* vbox = manage (new VBox);
_session->locations()->StateChanged.connect (_session_connections, invalidator (*this), boost::bind (&LocationUI::refresh_location_list, this), gui_context());
_session->locations()->added.connect (_session_connections, invalidator (*this), ui_bind (&LocationUI::location_added, this, _1), gui_context());
_session->locations()->removed.connect (_session_connections, invalidator (*this), ui_bind (&LocationUI::location_removed, this, _1), gui_context());
+ _clock_group->set_clock_mode (clock_mode_from_session_instant_xml ());
}
loop_edit_row.set_session (s);
SessionHandlePtr::session_going_away ();
}
+XMLNode &
+LocationUI::get_state () const
+{
+ XMLNode* node = new XMLNode (X_("LocationUI"));
+ node->add_property (X_("clock-mode"), enum_2_string (_clock_group->clock_mode ()));
+ return *node;
+}
+
+AudioClock::Mode
+LocationUI::clock_mode_from_session_instant_xml () const
+{
+ XMLNode* node = _session->instant_xml (X_("LocationUI"));
+ if (!node) {
+ return AudioClock::Frames;
+ }
+
+ XMLProperty* p = node->property (X_("clock-mode"));
+ if (!p) {
+ return AudioClock::Frames;
+ }
+
+ return (AudioClock::Mode) string_2_enum (p->value (), AudioClock::Mode);
+}
+
/*------------------------*/
LocationUIWindow::LocationUIWindow ()
- : ArdourDialog (_("Locations"))
+ : ArdourWindow (_("Locations"))
{
set_wmclass(X_("ardour_locations"), PROGRAM_NAME);
set_name ("LocationWindow");
- get_vbox()->pack_start (_ui);
+ add (_ui);
}
LocationUIWindow::~LocationUIWindow()
void
LocationUIWindow::on_map ()
{
- ArdourDialog::on_map ();
+ ArdourWindow::on_map ();
_ui.refresh_location_list();
}
void
LocationUIWindow::set_session (Session *s)
{
- ArdourDialog::set_session (s);
+ ArdourWindow::set_session (s);
_ui.set_session (s);
}
void
LocationUIWindow::session_going_away ()
{
- ArdourDialog::session_going_away ();
+ ArdourWindow::session_going_away ();
hide_all();
}