Added synchronisation between multiple views of the track title
This commit is contained in:
parent
d3b6a7a07f
commit
3ad2230864
4 changed files with 40 additions and 1 deletions
|
|
@ -53,6 +53,7 @@ void
|
|||
Track::set_name(const string &name)
|
||||
{
|
||||
this->name = name;
|
||||
nameChangedSignal.emit(name);
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
@ -74,6 +75,12 @@ Track::find_descendant_track_parent(
|
|||
return shared_ptr<ParentTrack>();
|
||||
}
|
||||
|
||||
sigc::signal<void, std::string>
|
||||
Track::signal_name_changed() const
|
||||
{
|
||||
return nameChangedSignal;
|
||||
}
|
||||
|
||||
string
|
||||
Track::print_branch_recursive(const unsigned int indentation)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -79,7 +79,17 @@ public:
|
|||
**/
|
||||
virtual boost::shared_ptr<ParentTrack>
|
||||
find_descendant_track_parent(boost::shared_ptr<Track> child);
|
||||
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* A signal which fires when the name changes.
|
||||
* @return Returns the signal. The signal sends the new name for the
|
||||
* track.
|
||||
**/
|
||||
sigc::signal<void, std::string> signal_name_changed() const;
|
||||
|
||||
public:
|
||||
/**
|
||||
* A debugging helper function that prints this track, and all it's
|
||||
* child tracks in a human-readable form.
|
||||
|
|
@ -109,6 +119,11 @@ private:
|
|||
* The name of this track.
|
||||
**/
|
||||
std::string name;
|
||||
|
||||
/**
|
||||
* A signal which fires when the name changes.
|
||||
**/
|
||||
sigc::signal<void, std::string> nameChangedSignal;
|
||||
|
||||
protected:
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -89,6 +89,11 @@ Track::Track(TimelineWidget &timeline_widget,
|
|||
mem_fun(timelineWidget, &TimelineWidget::on_add_track_command) ) );
|
||||
context_list.push_back( Menu_Helpers::MenuElem(_("_Remove Track"),
|
||||
mem_fun(this, &Track::on_remove_track) ) );
|
||||
|
||||
// Connect to the model
|
||||
model_track->signal_name_changed().connect(sigc::mem_fun(this,
|
||||
&Track::on_name_changed));
|
||||
|
||||
}
|
||||
|
||||
Gtk::Widget&
|
||||
|
|
@ -247,6 +252,13 @@ Track::on_set_name()
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
Track::on_name_changed(std::string new_name)
|
||||
{
|
||||
if(new_name != titleMenuButton.get_label())
|
||||
update_name();
|
||||
}
|
||||
|
||||
void
|
||||
Track::on_remove_track()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -135,6 +135,11 @@ private:
|
|||
|
||||
//----- Event Handlers -----//
|
||||
void on_set_name();
|
||||
|
||||
/**
|
||||
* Event handler for when the track name changes
|
||||
**/
|
||||
void on_name_changed(std::string new_name);
|
||||
|
||||
void on_remove_track();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue