gcc 4.3 compile fixes; new name-new-marker-at-creation option; make ferret region splits undoable
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3261 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
6962547e8d
commit
b235856e44
|
@ -17,6 +17,7 @@
|
|||
|
||||
*/
|
||||
|
||||
#include <cstring>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <list>
|
||||
|
|
|
@ -511,6 +511,7 @@
|
|||
<menuitem action='ShowTrackMeters'/>
|
||||
<menuitem action='DefaultNarrowMS'/>
|
||||
<menuitem action='link-region-and-track-selection'/>
|
||||
<menuitem action='NameNewMarkers'/>
|
||||
<menuitem action='RubberbandingSnapsToGrid'/>
|
||||
<menuitem action='AutoAnalyseAudio'/>
|
||||
</menu>
|
||||
|
|
|
@ -706,6 +706,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI
|
|||
void toggle_only_copy_imported_files ();
|
||||
void toggle_ShowTrackMeters ();
|
||||
void toggle_use_narrow_ms();
|
||||
void toggle_NameNewMarkers ();
|
||||
void toggle_rubberbanding_snaps_to_grid ();
|
||||
void toggle_auto_analyse_audio ();
|
||||
void toggle_TapeMachineMode();
|
||||
|
|
|
@ -456,6 +456,7 @@ ARDOUR_UI::install_actions ()
|
|||
ActionManager::register_toggle_action (option_actions, X_("AutoAnalyseAudio"), _("Auto-analyse new audio"), mem_fun (*this, &ARDOUR_UI::toggle_auto_analyse_audio));
|
||||
|
||||
ActionManager::register_toggle_action (option_actions, X_("DefaultNarrowMS"), _("Use narrow mixer strips"), mem_fun (*this, &ARDOUR_UI::toggle_use_narrow_ms));
|
||||
ActionManager::register_toggle_action (option_actions, X_("NameNewMarkers"), _("Name New Markers"), mem_fun (*this, &ARDOUR_UI::toggle_NameNewMarkers));
|
||||
|
||||
RadioAction::Group denormal_group;
|
||||
|
||||
|
|
|
@ -577,6 +577,12 @@ ARDOUR_UI::toggle_use_narrow_ms()
|
|||
ActionManager::toggle_config_state ("options", "DefaultNarrowMS", &Configuration::set_default_narrow_ms, &Configuration::get_default_narrow_ms);
|
||||
}
|
||||
|
||||
void
|
||||
ARDOUR_UI::toggle_NameNewMarkers()
|
||||
{
|
||||
ActionManager::toggle_config_state ("options", "NameNewMarkers", &Configuration::set_name_new_markers, &Configuration::get_name_new_markers);
|
||||
}
|
||||
|
||||
void
|
||||
ARDOUR_UI::toggle_rubberbanding_snaps_to_grid ()
|
||||
{
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
*/
|
||||
|
||||
#include <string>
|
||||
#include <cstring>
|
||||
|
||||
#include "editing.h"
|
||||
|
||||
|
|
|
@ -465,6 +465,7 @@ class Editor : public PublicEditor
|
|||
void hide_marker (ArdourCanvas::Item*, GdkEvent*);
|
||||
void clear_marker_display ();
|
||||
void mouse_add_new_marker (nframes_t where, bool is_cd=false, bool is_xrun=false);
|
||||
bool choose_new_marker_name(string &name);
|
||||
void update_cd_marker_display ();
|
||||
void ensure_cd_marker_updated (LocationMarkers * lam, ARDOUR::Location * location);
|
||||
|
||||
|
|
|
@ -404,6 +404,9 @@ Editor::mouse_add_new_marker (nframes_t where, bool is_cd, bool is_xrun)
|
|||
|
||||
if (session) {
|
||||
session->locations()->next_available_name(markername, markerprefix);
|
||||
if (!is_xrun && !choose_new_marker_name(markername)) {
|
||||
return;
|
||||
}
|
||||
Location *location = new Location (where, where, markername, (Location::Flags) flags);
|
||||
session->begin_reversible_command (_("add marker"));
|
||||
XMLNode &before = session->locations()->get_state();
|
||||
|
|
|
@ -1836,6 +1836,46 @@ Editor::temporal_zoom_to_frame (bool coarser, nframes_t frame)
|
|||
reposition_and_zoom (new_leftmost, new_fpu);
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
Editor::choose_new_marker_name(string &name) {
|
||||
|
||||
if (!Config->get_name_new_markers()) {
|
||||
/* don't prompt user for a new name */
|
||||
return true;
|
||||
}
|
||||
|
||||
ArdourPrompter dialog (true);
|
||||
|
||||
dialog.set_prompt (_("New Name:"));
|
||||
|
||||
WindowTitle title(Glib::get_application_name());
|
||||
title += _("Name New Location Marker");
|
||||
|
||||
dialog.set_title(title.get_string());
|
||||
|
||||
dialog.set_name ("MarkNameWindow");
|
||||
dialog.set_size_request (250, -1);
|
||||
dialog.set_position (Gtk::WIN_POS_MOUSE);
|
||||
|
||||
dialog.add_button (Stock::OK, RESPONSE_ACCEPT);
|
||||
dialog.set_initial_text (name);
|
||||
|
||||
dialog.show ();
|
||||
|
||||
switch (dialog.run ()) {
|
||||
case RESPONSE_ACCEPT:
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
dialog.get_result(name);
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Editor::add_location_from_selection ()
|
||||
{
|
||||
|
@ -1871,6 +1911,9 @@ Editor::add_location_mark (nframes64_t where)
|
|||
select_new_marker = true;
|
||||
|
||||
session->locations()->next_available_name(markername,"mark");
|
||||
if (!choose_new_marker_name(markername)) {
|
||||
return;
|
||||
}
|
||||
Location *location = new Location (where, where, markername, Location::IsMark);
|
||||
session->begin_reversible_command (_("add marker"));
|
||||
XMLNode &before = session->locations()->get_state();
|
||||
|
@ -2015,6 +2058,9 @@ Editor::set_mark ()
|
|||
}
|
||||
|
||||
session->locations()->next_available_name(markername,"mark");
|
||||
if (!choose_new_marker_name(markername)) {
|
||||
return;
|
||||
}
|
||||
session->locations()->add (new Location (pos, 0, markername, Location::IsMark), true);
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include <fft_result.h>
|
||||
#include <fft_graph.h>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
#include <cmath>
|
||||
|
||||
|
|
|
@ -600,6 +600,12 @@ LocationEditRow::flags_changed (ARDOUR::Location *loc, void *src)
|
|||
i_am_the_modifier--;
|
||||
}
|
||||
|
||||
void
|
||||
LocationEditRow::focus_name() {
|
||||
name_entry.grab_focus();
|
||||
}
|
||||
|
||||
|
||||
LocationUI::LocationUI ()
|
||||
: ArdourDialog ("locations dialog"),
|
||||
add_location_button (_("Add New Location")),
|
||||
|
@ -628,6 +634,8 @@ LocationUI::LocationUI ()
|
|||
location_rows_scroller.set_name ("LocationLocRowsScroller");
|
||||
location_rows_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
|
||||
location_rows_scroller.set_size_request (-1, 130);
|
||||
|
||||
newest_location = 0;
|
||||
|
||||
loc_frame_box.set_spacing (5);
|
||||
loc_frame_box.set_border_width (5);
|
||||
|
@ -789,6 +797,10 @@ LocationUI::map_locations (Locations::LocationList& locations)
|
|||
erow->remove_requested.connect (mem_fun(*this, &LocationUI::location_remove_requested));
|
||||
erow->redraw_ranges.connect (mem_fun(*this, &LocationUI::location_redraw_ranges));
|
||||
loc_children.push_back(Box_Helpers::Element(*erow, PACK_SHRINK, 1, PACK_START));
|
||||
if (location == newest_location) {
|
||||
newest_location = 0;
|
||||
erow->focus_name();
|
||||
}
|
||||
}
|
||||
else if (location->is_auto_punch()) {
|
||||
punch_edit_row.set_session (session);
|
||||
|
@ -820,6 +832,9 @@ LocationUI::add_new_location()
|
|||
nframes_t where = session->audible_frame();
|
||||
session->locations()->next_available_name(markername,"mark");
|
||||
Location *location = new Location (where, where, markername, Location::IsMark);
|
||||
if (Config->get_name_new_markers()) {
|
||||
newest_location = location;
|
||||
}
|
||||
session->begin_reversible_command (_("add marker"));
|
||||
XMLNode &before = session->locations()->get_state();
|
||||
session->locations()->add (location, true);
|
||||
|
|
|
@ -50,6 +50,7 @@ class LocationEditRow : public Gtk::HBox
|
|||
void set_session (ARDOUR::Session *);
|
||||
|
||||
void set_number (int);
|
||||
void focus_name();
|
||||
|
||||
sigc::signal<void,ARDOUR::Location*> remove_requested;
|
||||
sigc::signal<void> redraw_ranges;
|
||||
|
@ -149,6 +150,7 @@ class LocationUI : public ArdourDialog
|
|||
|
||||
private:
|
||||
ARDOUR::LocationStack* locations;
|
||||
ARDOUR::Location *newest_location;
|
||||
|
||||
void session_gone();
|
||||
|
||||
|
|
|
@ -277,6 +277,7 @@ RhythmFerret::do_split_action ()
|
|||
|
||||
i = tmp;
|
||||
}
|
||||
session->commit_reversible_command ();
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue