+
+ if (r->muted()) {
+ have_muted = true;
+ } else {
+ have_unmuted = true;
+ }
+
+ if (r->opaque()) {
+ have_opaque = true;
+ } else {
+ have_non_opaque = true;
+ }
+
+ if (!r->at_natural_position()) {
+ have_not_at_natural_position = true;
+ }
+
+ if (ar) {
+ /* its a bit unfortunate that "envelope visible" is a view-only
+ property. we have to find the regionview to able to check
+ its current setting.
+ */
+
+ have_envelope_invisible = true;
+
+ if (*i) {
+ AudioRegionView* arv = dynamic_cast<AudioRegionView*> (*i);
+ if (arv && arv->envelope_visible()) {
+ have_envelope_visible = true;
+ }
+ }
+
+ if (ar->envelope_active()) {
+ have_envelope_active = true;
+ } else {
+ have_envelope_inactive = true;
+ }
+
+ if (ar->scale_amplitude() != 1) {
+ have_non_unity_scale_amplitude = true;
+ }
+ }
+ }
+
+ if (rs.size() > 1) {
+ _region_actions->get_action("show-region-list-editor")->set_sensitive (false);
+ _region_actions->get_action("show-region-properties")->set_sensitive (false);
+ _region_actions->get_action("rename-region")->set_sensitive (false);
+ } else if (rs.size() == 1) {
+ _region_actions->get_action("add-range-markers-from-region")->set_sensitive (false);
+ _region_actions->get_action("close-region-gaps")->set_sensitive (false);
+ }
+
+ if (!have_midi) {
+ _region_actions->get_action("show-region-list-editor")->set_sensitive (false);
+ _region_actions->get_action("quantize-region")->set_sensitive (false);
+ _region_actions->get_action("fork-region")->set_sensitive (false);
+ }
+
+ if (_edit_point == EditAtMouse) {
+ _region_actions->get_action("set-region-sync-position")->set_sensitive (false);
+ _region_actions->get_action("trim-front")->set_sensitive (false);
+ _region_actions->get_action("trim-back")->set_sensitive (false);
+ _region_actions->get_action("split-region")->set_sensitive (false);
+ _region_actions->get_action("place-transient")->set_sensitive (false);
+ }
+
+ if (have_audio) {
+
+ if (have_envelope_visible && !have_envelope_invisible) {
+ Glib::RefPtr<ToggleAction>::cast_dynamic (_region_actions->get_action("toggle-region-gain-envelope-visible"))->set_active ();
+ } else if (have_envelope_visible && have_envelope_invisible) {
+// _region_actions->get_action("toggle-region-gain-envelope-visible")->set_inconsistent ();
+ }
+
+ if (have_envelope_active && !have_envelope_inactive) {
+ Glib::RefPtr<ToggleAction>::cast_dynamic (_region_actions->get_action("toggle-region-gain-envelope-active"))->set_active ();
+ } else if (have_envelope_active && have_envelope_inactive) {
+// _region_actions->get_action("toggle-region-gain-envelope-active")->set_inconsistent ();
+ }
+
+ } else {
+
+ _region_actions->get_action("analyze-region")->set_sensitive (false);
+ _region_actions->get_action("reset-region-gain-envelopes")->set_sensitive (false);
+ _region_actions->get_action("toggle-region-gain-envelope-visible")->set_sensitive (false);
+ _region_actions->get_action("toggle-region-gain-envelope-active")->set_sensitive (false);
+
+ }
+
+ if (!have_non_unity_scale_amplitude || !have_audio) {
+ _region_actions->get_action("reset-region-scale-amplitude")->set_sensitive (false);
+ }
+
+ Glib::RefPtr<ToggleAction>::cast_dynamic (_region_actions->get_action("toggle-region-lock"))->set_active (have_locked && !have_unlocked);
+ if (have_locked && have_unlocked) {
+// _region_actions->get_action("toggle-region-lock")->set_inconsistent ();