summaryrefslogtreecommitdiff
path: root/gtk2_ardour/insert_remove_time_dialog.cc
diff options
context:
space:
mode:
authorColin Fletcher <colin.m.fletcher@googlemail.com>2015-06-16 11:23:50 +0100
committerColin Fletcher <colin.m.fletcher@googlemail.com>2015-06-17 17:15:21 +0100
commitb56bb944f6b48e8071f7b54bb60c777f5a66907d (patch)
tree709299b4e151ef5b68925791e5d9a19195ed77ea /gtk2_ardour/insert_remove_time_dialog.cc
parent721608aef31f1a57f806edfac93630c33845ba01 (diff)
Rename 'Cut time' to 'Remove time'
'Cut time' implies that the cut timeline items might end up on the clipboard to be pasted somewhere: this isn't the case at present, so rename the functions, class, &c. to say 'remove' rather than 'cut'. Rename insert_time_dialog.{cc|h} to insert_remove_time_dialog while we're at it.
Diffstat (limited to 'gtk2_ardour/insert_remove_time_dialog.cc')
-rw-r--r--gtk2_ardour/insert_remove_time_dialog.cc167
1 files changed, 167 insertions, 0 deletions
diff --git a/gtk2_ardour/insert_remove_time_dialog.cc b/gtk2_ardour/insert_remove_time_dialog.cc
new file mode 100644
index 0000000000..58345aed65
--- /dev/null
+++ b/gtk2_ardour/insert_remove_time_dialog.cc
@@ -0,0 +1,167 @@
+/*
+ Copyright (C) 2000-2010 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include <gtkmm/table.h>
+#include <gtkmm/comboboxtext.h>
+#include <gtkmm/stock.h>
+#include <gtkmm/alignment.h>
+#include "insert_remove_time_dialog.h"
+#include "audio_clock.h"
+#include "i18n.h"
+
+using namespace Gtk;
+using namespace Editing;
+
+InsertRemoveTimeDialog::InsertRemoveTimeDialog (PublicEditor& e, bool remove)
+ : ArdourDialog (remove ? _("Remove Time") : _("Insert Time"))
+ , _editor (e)
+ , _clock ("insertTimeClock", true, "", true, false, true, false)
+{
+ set_session (_editor.session ());
+
+ framepos_t const pos = _editor.get_preferred_edit_position (EDIT_IGNORE_MOUSE);
+
+ get_vbox()->set_border_width (12);
+ get_vbox()->set_spacing (4);
+
+ Table* table = manage (new Table (2, 2));
+ table->set_spacings (4);
+
+ Label* time_label = manage (new Label (remove ? _("Time to remove") : _("Time to insert:")));
+ time_label->set_alignment (1, 0.5);
+ table->attach (*time_label, 0, 1, 0, 1, FILL | EXPAND);
+ _clock.set (0);
+ _clock.set_session (_session);
+ _clock.set_bbt_reference (pos);
+ table->attach (_clock, 1, 2, 0, 1);
+
+ if (!remove) {
+ Label* intersected_label = manage (new Label (_("Intersected regions should:")));
+ intersected_label->set_alignment (1, 0.5);
+ table->attach (*intersected_label, 0, 1, 1, 2, FILL | EXPAND);
+ _intersected_combo.append_text (_("stay in position"));
+ _intersected_combo.append_text (_("move"));
+ _intersected_combo.append_text (_("be split"));
+ _intersected_combo.set_active (0);
+ table->attach (_intersected_combo, 1, 2, 1, 2);
+ }
+
+ get_vbox()->pack_start (*table);
+
+ _all_playlists.set_label (_("Apply to all the track's playlists"));
+ get_vbox()->pack_start (_all_playlists);
+
+ _move_glued.set_label (_("Move glued regions"));
+ get_vbox()->pack_start (_move_glued);
+ _move_markers.set_label (_("Move markers"));
+ get_vbox()->pack_start (_move_markers);
+ _move_markers.signal_toggled().connect (sigc::mem_fun (*this, &InsertRemoveTimeDialog::move_markers_toggled));
+ _move_glued_markers.set_label (_("Move glued markers"));
+ Alignment* indent = manage (new Alignment);
+ indent->set_padding (0, 0, 12, 0);
+ indent->add (_move_glued_markers);
+ get_vbox()->pack_start (*indent);
+ _move_locked_markers.set_label (_("Move locked markers"));
+ indent = manage (new Alignment);
+ indent->set_padding (0, 0, 12, 0);
+ indent->add (_move_locked_markers);
+ get_vbox()->pack_start (*indent);
+ tempo_label.set_markup (_("Move tempo and meter changes\n<i>(may cause oddities in the tempo map)</i>"));
+ HBox* tempo_box = manage (new HBox);
+ tempo_box->set_spacing (6);
+ tempo_box->pack_start (_move_tempos, false, false);
+ tempo_box->pack_start (tempo_label, false, false);
+ get_vbox()->pack_start (*tempo_box);
+
+ add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
+ add_button (remove ? _("Cut time") : _("Insert time"), Gtk::RESPONSE_OK);
+ show_all ();
+
+ move_markers_toggled ();
+}
+
+InsertTimeOption
+InsertRemoveTimeDialog::intersected_region_action ()
+{
+ /* only setting this to keep GCC quiet */
+ InsertTimeOption opt = LeaveIntersected;
+
+ switch (_intersected_combo.get_active_row_number ()) {
+ case 0:
+ opt = LeaveIntersected;
+ break;
+ case 1:
+ opt = MoveIntersected;
+ break;
+ case 2:
+ opt = SplitIntersected;
+ break;
+ }
+
+ return opt;
+}
+
+bool
+InsertRemoveTimeDialog::all_playlists () const
+{
+ return _all_playlists.get_active ();
+}
+
+bool
+InsertRemoveTimeDialog::move_glued () const
+{
+ return _move_glued.get_active ();
+}
+
+bool
+InsertRemoveTimeDialog::move_tempos () const
+{
+ return _move_tempos.get_active ();
+}
+
+bool
+InsertRemoveTimeDialog::move_markers () const
+{
+ return _move_markers.get_active ();
+}
+
+bool
+InsertRemoveTimeDialog::move_glued_markers () const
+{
+ return _move_glued_markers.get_active ();
+}
+
+bool
+InsertRemoveTimeDialog::move_locked_markers () const
+{
+ return _move_locked_markers.get_active ();
+}
+
+framepos_t
+InsertRemoveTimeDialog::distance () const
+{
+ return _clock.current_duration (_editor.get_preferred_edit_position ());
+}
+
+void
+InsertRemoveTimeDialog::move_markers_toggled ()
+{
+ _move_glued_markers.set_sensitive (_move_markers.get_active ());
+ _move_locked_markers.set_sensitive (_move_markers.get_active ());
+}