Fix update of range marker names. Fixes #3533.

git-svn-id: svn://localhost/ardour2/branches/3.0@8012 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2010-11-12 18:53:15 +00:00
parent 4527566217
commit af5bd3df30
4 changed files with 23 additions and 15 deletions

View File

@ -103,22 +103,22 @@ Editor::add_new_location (Location *location)
} else if (location->is_session_range()) {
// session range
lam->start = new Marker (*this, *marker_group, *cursor_group, color, _("start"), Marker::Start, location->start());
lam->end = new Marker (*this, *marker_group, *cursor_group, color, _("end"), Marker::End, location->end());
lam->start = new Marker (*this, *marker_group, *cursor_group, color, _("start"), Marker::SessionStart, location->start());
lam->end = new Marker (*this, *marker_group, *cursor_group, color, _("end"), Marker::SessionEnd, location->end());
} else {
// range marker
if (location->is_cd_marker() && ruler_cd_marker_action->get_active()) {
lam->start = new Marker (*this, *cd_marker_group, *cursor_group, color,
location->name(), Marker::Start, location->start());
location->name(), Marker::RangeStart, location->start());
lam->end = new Marker (*this, *cd_marker_group, *cursor_group, color,
location->name(), Marker::End, location->end());
location->name(), Marker::RangeEnd, location->end());
}
else {
lam->start = new Marker (*this, *range_marker_group, *cursor_group, color,
location->name(), Marker::Start, location->start());
location->name(), Marker::RangeStart, location->start());
lam->end = new Marker (*this, *range_marker_group, *cursor_group, color,
location->name(), Marker::End, location->end());
location->name(), Marker::RangeEnd, location->end());
}
}
@ -386,12 +386,12 @@ void
Editor::LocationMarkers::set_name (const string& str)
{
/* XXX: hack: don't change names of session start/end markers */
if (start->type() != Marker::Start) {
if (start->type() != Marker::SessionStart) {
start->set_name (str);
}
if (end && end->type() != Marker::End) {
if (end && end->type() != Marker::SessionEnd) {
end->set_name (str);
}
}

View File

@ -310,7 +310,10 @@ void
LocationEditRow::name_entry_changed ()
{
ENSURE_GUI_THREAD (*this, &LocationEditRow::name_entry_changed)
if (i_am_the_modifier || !location) return;
if (i_am_the_modifier || !location) {
return;
}
location->set_name (name_entry.get_text());
}

View File

@ -157,7 +157,9 @@ Marker::Marker (PublicEditor& ed, ArdourCanvas::Group& parent, ArdourCanvas::Gro
label_offset = 8.0;
break;
case Start:
case SessionStart:
case RangeStart:
points = new ArdourCanvas::Points ();
points->push_back (Gnome::Art::Point (0.0, 0.0));
points->push_back (Gnome::Art::Point (6.5, 6.5));
@ -168,7 +170,8 @@ Marker::Marker (PublicEditor& ed, ArdourCanvas::Group& parent, ArdourCanvas::Gro
label_offset = 13.0;
break;
case End:
case SessionEnd:
case RangeEnd:
points = new ArdourCanvas::Points ();
points->push_back (Gnome::Art::Point (6.5, 6.5));
points->push_back (Gnome::Art::Point (13.0, 0.0));
@ -356,7 +359,7 @@ Marker::set_name (const string& new_name)
name_pixbuf->property_pixbuf() = pixbuf_from_string(new_name, name_font, name_width, name_height, Gdk::Color ("#000000"));
if (_type == End || _type == LoopEnd || _type == PunchOut) {
if (_type == SessionEnd || _type == RangeEnd || _type == LoopEnd || _type == PunchOut) {
name_pixbuf->property_x() = - (name_width);
}
}

View File

@ -45,8 +45,10 @@ class Marker : public sigc::trackable
Mark,
Tempo,
Meter,
Start, ///< session start
End, ///< session end
SessionStart, ///< session start
SessionEnd, ///< session end
RangeStart,
RangeEnd,
LoopStart,
LoopEnd,
PunchIn,