summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-09-07 15:07:02 +0000
committerCarl Hetherington <carl@carlh.net>2011-09-07 15:07:02 +0000
commitf744c8ac933bfad11f9e54edfdacc5fb89ced119 (patch)
tree5b8034bde4eaebfeb7819c7410f447c52ff904c5
parent44b7830064d732cff4f0e55babcc47fccda2245e (diff)
Put session-modified asterix in mixer window title as well
as editor (#4285). git-svn-id: svn://localhost/ardour2/branches/3.0@10065 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/mixer_ui.cc50
-rw-r--r--gtk2_ardour/mixer_ui.h2
2 files changed, 40 insertions, 12 deletions
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc
index 644a51f880..f9106d9842 100644
--- a/gtk2_ardour/mixer_ui.cc
+++ b/gtk2_ardour/mixer_ui.cc
@@ -186,9 +186,7 @@ Mixer_UI::Mixer_UI ()
add (global_vpacker);
set_name ("MixerWindow");
- WindowTitle title(Glib::get_application_name());
- title += _("Mixer");
- set_title (title.get_string());
+ update_title ();
set_wmclass (X_("ardour_mixer"), PROGRAM_NAME);
@@ -479,11 +477,7 @@ Mixer_UI::set_session (Session* sess)
XMLNode* node = ARDOUR_UI::instance()->mixer_settings();
set_state (*node);
- WindowTitle title(_session->name());
- title += _("Mixer");
- title += Glib::get_application_name();
-
- set_title (title.get_string());
+ update_title ();
initial_track_display ();
@@ -492,6 +486,8 @@ Mixer_UI::set_session (Session* sess)
_session->route_group_removed.connect (_session_connections, invalidator (*this), boost::bind (&Mixer_UI::route_groups_changed, this), gui_context());
_session->route_groups_reordered.connect (_session_connections, invalidator (*this), boost::bind (&Mixer_UI::route_groups_changed, this), gui_context());
_session->config.ParameterChanged.connect (_session_connections, invalidator (*this), ui_bind (&Mixer_UI::parameter_changed, this, _1), gui_context());
+ _session->DirtyChanged.connect (_session_connections, invalidator (*this), boost::bind (&Mixer_UI::update_title, this), gui_context());
+ _session->StateSaved.connect (_session_connections, invalidator (*this), ui_bind (&Mixer_UI::update_title, this), gui_context());
Config->ParameterChanged.connect (*this, invalidator (*this), ui_bind (&Mixer_UI::parameter_changed, this, _1), gui_context ());
@@ -526,13 +522,12 @@ Mixer_UI::session_going_away ()
strips.clear ();
- WindowTitle title(Glib::get_application_name());
- title += _("Mixer");
- set_title (title.get_string());
-
stop_updating ();
SessionHandlePtr::session_going_away ();
+
+ _session = 0;
+ update_title ();
}
void
@@ -1677,3 +1672,34 @@ Mixer_UI::new_track_or_bus ()
ARDOUR_UI::instance()->add_route (this);
}
+
+void
+Mixer_UI::update_title ()
+{
+ if (_session) {
+ string n;
+
+ if (_session->snap_name() != _session->name()) {
+ n = _session->snap_name ();
+ } else {
+ n = _session->name ();
+ }
+
+ if (_session->dirty ()) {
+ n = "*" + n;
+ }
+
+ WindowTitle title (n);
+ title += _("Mixer");
+ title += Glib::get_application_name ();
+ set_title (title.get_string());
+
+ } else {
+
+ WindowTitle title (X_("Mixer"));
+ title += Glib::get_application_name ();
+ set_title (title.get_string());
+ }
+}
+
+
diff --git a/gtk2_ardour/mixer_ui.h b/gtk2_ardour/mixer_ui.h
index 915b084dfa..0f13d93bee 100644
--- a/gtk2_ardour/mixer_ui.h
+++ b/gtk2_ardour/mixer_ui.h
@@ -264,6 +264,8 @@ class Mixer_UI : public Gtk::Window, public PBD::ScopedConnectionList, public AR
*/
bool _in_group_rebuild_or_clear;
+ void update_title ();
+
friend class MixerGroupTabs;
};