diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-11 21:03:35 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-11 21:03:35 +0000 |
commit | a56b852a2b325468f893758825d4d0a4c2bcd215 (patch) | |
tree | 8b199b19b71330ab34c278955c694d7b64f883fa | |
parent | 5c3ba06c8dc8f695f3bacf929e0b598cad83b04c (diff) |
fixes for region menus; fixes for new session dialog/Gnome VFS assertion
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2897 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | gtk2_ardour/editor.cc | 10 | ||||
-rw-r--r-- | gtk2_ardour/editor.h | 6 | ||||
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 25 | ||||
-rw-r--r-- | gtk2_ardour/new_session_dialog.cc | 21 |
4 files changed, 30 insertions, 32 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index a15c884bfe..ff49af5c61 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -1748,7 +1748,7 @@ Editor::add_region_context_items (AudioStreamView* sv, boost::shared_ptr<Region> sigc::connection fooc; items.push_back (CheckMenuElem (_("Lock"))); - region_lock_item = static_cast<CheckMenuItem*>(&items.back()); + CheckMenuItem* region_lock_item = static_cast<CheckMenuItem*>(&items.back()); fooc = region_lock_item->signal_activate().connect (mem_fun(*this, &Editor::toggle_region_lock)); if (region->locked()) { fooc.block (true); @@ -1756,7 +1756,7 @@ Editor::add_region_context_items (AudioStreamView* sv, boost::shared_ptr<Region> fooc.block (false); } items.push_back (CheckMenuElem (_("Mute"))); - region_mute_item = static_cast<CheckMenuItem*>(&items.back()); + CheckMenuItem* region_mute_item = static_cast<CheckMenuItem*>(&items.back()); fooc = region_mute_item->signal_activate().connect (mem_fun(*this, &Editor::toggle_region_mute)); if (region->muted()) { fooc.block (true); @@ -1766,7 +1766,7 @@ Editor::add_region_context_items (AudioStreamView* sv, boost::shared_ptr<Region> if (!Profile->get_sae()) { items.push_back (CheckMenuElem (_("Opaque"))); - region_opaque_item = static_cast<CheckMenuItem*>(&items.back()); + CheckMenuItem* region_opaque_item = static_cast<CheckMenuItem*>(&items.back()); fooc = region_opaque_item->signal_activate().connect (mem_fun(*this, &Editor::toggle_region_opaque)); if (region->opaque()) { fooc.block (true); @@ -1791,7 +1791,7 @@ Editor::add_region_context_items (AudioStreamView* sv, boost::shared_ptr<Region> items.push_back (MenuElem (_("Reset Envelope"), mem_fun(*this, &Editor::reset_region_gain_envelopes))); items.push_back (CheckMenuElem (_("Envelope Visible"))); - region_envelope_visible_item = static_cast<CheckMenuItem*> (&items.back()); + CheckMenuItem* region_envelope_visible_item = static_cast<CheckMenuItem*> (&items.back()); fooc = region_envelope_visible_item->signal_activate().connect (mem_fun(*this, &Editor::toggle_gain_envelope_visibility)); if (arv->envelope_visible()) { fooc.block (true); @@ -1800,7 +1800,7 @@ Editor::add_region_context_items (AudioStreamView* sv, boost::shared_ptr<Region> } items.push_back (CheckMenuElem (_("Envelope Active"))); - region_envelope_active_item = static_cast<CheckMenuItem*> (&items.back()); + CheckMenuItem* region_envelope_active_item = static_cast<CheckMenuItem*> (&items.back()); fooc = region_envelope_active_item->signal_activate().connect (mem_fun(*this, &Editor::toggle_gain_envelope_active)); if (ar->envelope_active()) { diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index a6c548507e..c0f532879b 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -2006,12 +2006,6 @@ class Editor : public PublicEditor void toggle_gain_envelope_active (); void reset_region_gain_envelopes (); - Gtk::CheckMenuItem* region_envelope_visible_item; - Gtk::CheckMenuItem* region_envelope_active_item; - Gtk::CheckMenuItem* region_mute_item; - Gtk::CheckMenuItem* region_lock_item; - Gtk::CheckMenuItem* region_opaque_item; - bool on_key_press_event (GdkEventKey*); bool on_key_release_event (GdkEventKey*); diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index e860ff185a..58c88ab3c6 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -4223,10 +4223,7 @@ Editor::toggle_gain_envelope_visibility () for (RegionSelection::iterator i = selection->regions.begin(); i != selection->regions.end(); ++i) { AudioRegionView* const arv = dynamic_cast<AudioRegionView*>(*i); if (arv) { - bool x = region_envelope_visible_item->get_active(); - if (x != arv->envelope_visible()) { - arv->set_envelope_visible (x); - } + arv->set_envelope_visible (!arv->envelope_visible()); } } } @@ -4237,10 +4234,7 @@ Editor::toggle_gain_envelope_active () for (RegionSelection::iterator i = selection->regions.begin(); i != selection->regions.end(); ++i) { AudioRegionView* const arv = dynamic_cast<AudioRegionView*>(*i); if (arv) { - bool x = region_envelope_active_item->get_active(); - if (x != arv->audio_region()->envelope_active()) { - arv->audio_region()->set_envelope_active (x); - } + arv->audio_region()->set_envelope_active (!arv->audio_region()->envelope_active()); } } } @@ -4251,10 +4245,7 @@ Editor::toggle_region_lock () for (RegionSelection::iterator i = selection->regions.begin(); i != selection->regions.end(); ++i) { AudioRegionView* const arv = dynamic_cast<AudioRegionView*>(*i); if (arv) { - bool x = region_lock_item->get_active(); - if (x != arv->audio_region()->locked()) { - arv->audio_region()->set_locked (x); - } + arv->audio_region()->set_locked (!arv->audio_region()->locked()); } } } @@ -4265,10 +4256,7 @@ Editor::toggle_region_mute () for (RegionSelection::iterator i = selection->regions.begin(); i != selection->regions.end(); ++i) { AudioRegionView* const arv = dynamic_cast<AudioRegionView*>(*i); if (arv) { - bool x = region_mute_item->get_active(); - if (x != arv->audio_region()->muted()) { - arv->audio_region()->set_muted (x); - } + arv->audio_region()->set_muted (!arv->audio_region()->muted()); } } } @@ -4279,10 +4267,7 @@ Editor::toggle_region_opaque () for (RegionSelection::iterator i = selection->regions.begin(); i != selection->regions.end(); ++i) { AudioRegionView* const arv = dynamic_cast<AudioRegionView*>(*i); if (arv) { - bool x = region_opaque_item->get_active(); - if (x != arv->audio_region()->opaque()) { - arv->audio_region()->set_opaque (x); - } + arv->audio_region()->set_opaque (!arv->audio_region()->opaque()); } } } diff --git a/gtk2_ardour/new_session_dialog.cc b/gtk2_ardour/new_session_dialog.cc index adc36df8b6..a5accb208e 100644 --- a/gtk2_ardour/new_session_dialog.cc +++ b/gtk2_ardour/new_session_dialog.cc @@ -539,7 +539,26 @@ NewSessionDialog::set_session_name (const Glib::ustring& name) void NewSessionDialog::set_session_folder(const Glib::ustring& dir) { - m_folder->set_current_folder (dir); + Glib::ustring realdir = dir; + + /* GtkFileChooser doesn't accept non-absolute pathnames without vomiting */ + + if (!Glib::path_is_absolute (realdir)) { + if (realdir.length() == 1 && realdir[0] == '.') { + realdir.replace (0, 1, Glib::get_current_dir()); + } else if (realdir.length() > 1 && realdir[0] == '.' && realdir[1] != '.') { + realdir.replace (0, 1, Glib::get_current_dir()); + } else if (realdir.length() == 2 && realdir[0] == '.' && realdir[1] == '.') { + realdir.replace (0, 2, Glib::path_get_dirname (Glib::get_current_dir())); + } else if (realdir.length() > 2 && realdir[0] == '.' && realdir[1] == '.') { + realdir.replace (0, 2, Glib::path_get_dirname (Glib::get_current_dir())); + } else { + error << string_compose (_("Non-absolute path \"%1\" not usable - ignored"), realdir) << endmsg; + return; + } + } + + m_folder->set_current_folder (realdir); } std::string |