mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-09 16:24:57 +01:00
allow mode changes in the time info box, all synced
git-svn-id: svn://localhost/ardour2/branches/3.0@9681 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
be1abb12ff
commit
f6e67fa3dd
3 changed files with 43 additions and 8 deletions
|
|
@ -917,8 +917,6 @@ AudioClock::button_press (GdkEventButton *ev, CairoCell* cell)
|
||||||
bool
|
bool
|
||||||
AudioClock::button_release (GdkEventButton *ev, CairoCell* cell)
|
AudioClock::button_release (GdkEventButton *ev, CairoCell* cell)
|
||||||
{
|
{
|
||||||
cerr << "button press, cell = " << cell << endl;
|
|
||||||
|
|
||||||
if (dragging) {
|
if (dragging) {
|
||||||
gdk_pointer_ungrab (GDK_CURRENT_TIME);
|
gdk_pointer_ungrab (GDK_CURRENT_TIME);
|
||||||
dragging = false;
|
dragging = false;
|
||||||
|
|
@ -950,7 +948,7 @@ AudioClock::button_release (GdkEventButton *ev, CairoCell* cell)
|
||||||
bool
|
bool
|
||||||
AudioClock::scroll (GdkEventScroll *ev, CairoCell* cell)
|
AudioClock::scroll (GdkEventScroll *ev, CairoCell* cell)
|
||||||
{
|
{
|
||||||
if (_session == 0) {
|
if (_session == 0 || !editable) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1745,11 +1743,9 @@ AudioClock::connect_signals ()
|
||||||
{
|
{
|
||||||
disconnect_signals ();
|
disconnect_signals ();
|
||||||
|
|
||||||
if (editable) {
|
scroll_connection = display->scroll.connect (sigc::mem_fun (*this, &AudioClock::scroll));
|
||||||
scroll_connection = display->scroll.connect (sigc::mem_fun (*this, &AudioClock::scroll));
|
button_press_connection = display->button_press.connect (sigc::mem_fun (*this, &AudioClock::button_press));
|
||||||
button_press_connection = display->button_press.connect (sigc::mem_fun (*this, &AudioClock::button_press));
|
button_release_connection = display->button_release.connect (sigc::mem_fun (*this, &AudioClock::button_release));
|
||||||
button_release_connection = display->button_release.connect (sigc::mem_fun (*this, &AudioClock::button_release));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,8 @@ using namespace ARDOUR;
|
||||||
|
|
||||||
TimeInfoBox::TimeInfoBox ()
|
TimeInfoBox::TimeInfoBox ()
|
||||||
: Table (4, 4)
|
: Table (4, 4)
|
||||||
|
, syncing_selection (false)
|
||||||
|
, syncing_punch (false)
|
||||||
{
|
{
|
||||||
selection_start = new AudioClock ("selection-start", false, "SelectionClockDisplay", false, false, false, false);
|
selection_start = new AudioClock ("selection-start", false, "SelectionClockDisplay", false, false, false, false);
|
||||||
selection_end = new AudioClock ("selection-end", false, "SelectionClockDisplay", false, false, false, false);
|
selection_end = new AudioClock ("selection-end", false, "SelectionClockDisplay", false, false, false, false);
|
||||||
|
|
@ -83,6 +85,7 @@ TimeInfoBox::TimeInfoBox ()
|
||||||
set_homogeneous (false);
|
set_homogeneous (false);
|
||||||
set_spacings (0);
|
set_spacings (0);
|
||||||
set_border_width (2);
|
set_border_width (2);
|
||||||
|
set_col_spacings (2);
|
||||||
|
|
||||||
/* a bit more spacing between the two "sides" */
|
/* a bit more spacing between the two "sides" */
|
||||||
set_col_spacing (1, 10);
|
set_col_spacing (1, 10);
|
||||||
|
|
@ -115,6 +118,13 @@ TimeInfoBox::TimeInfoBox ()
|
||||||
|
|
||||||
show_all ();
|
show_all ();
|
||||||
|
|
||||||
|
selection_start->mode_changed.connect (sigc::bind (sigc::mem_fun (*this, &TimeInfoBox::sync_selection_mode), selection_start));
|
||||||
|
selection_end->mode_changed.connect (sigc::bind (sigc::mem_fun (*this, &TimeInfoBox::sync_selection_mode), selection_start));
|
||||||
|
selection_length->mode_changed.connect (sigc::bind (sigc::mem_fun (*this, &TimeInfoBox::sync_selection_mode), selection_start));
|
||||||
|
|
||||||
|
punch_start->mode_changed.connect (sigc::bind (sigc::mem_fun (*this, &TimeInfoBox::sync_punch_mode), punch_start));
|
||||||
|
punch_end->mode_changed.connect (sigc::bind (sigc::mem_fun (*this, &TimeInfoBox::sync_punch_mode), punch_end));
|
||||||
|
|
||||||
Editor::instance().get_selection().TimeChanged.connect (sigc::mem_fun (*this, &TimeInfoBox::selection_changed));
|
Editor::instance().get_selection().TimeChanged.connect (sigc::mem_fun (*this, &TimeInfoBox::selection_changed));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -128,6 +138,30 @@ TimeInfoBox::~TimeInfoBox ()
|
||||||
delete punch_end;
|
delete punch_end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
TimeInfoBox::sync_selection_mode (AudioClock* src)
|
||||||
|
{
|
||||||
|
if (!syncing_selection) {
|
||||||
|
syncing_selection = true;
|
||||||
|
selection_start->set_mode (src->mode());
|
||||||
|
selection_end->set_mode (src->mode());
|
||||||
|
selection_length->set_mode (src->mode());
|
||||||
|
syncing_selection = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
TimeInfoBox::sync_punch_mode (AudioClock* src)
|
||||||
|
{
|
||||||
|
if (!syncing_punch) {
|
||||||
|
syncing_punch = true;
|
||||||
|
punch_start->set_mode (src->mode());
|
||||||
|
punch_end->set_mode (src->mode());
|
||||||
|
syncing_punch = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
TimeInfoBox::set_session (Session* s)
|
TimeInfoBox::set_session (Session* s)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,8 @@ class TimeInfoBox : public Gtk::Table, public ARDOUR::SessionHandlePtr
|
||||||
|
|
||||||
Gtk::Label selection_title;
|
Gtk::Label selection_title;
|
||||||
Gtk::Label punch_title;
|
Gtk::Label punch_title;
|
||||||
|
bool syncing_selection;
|
||||||
|
bool syncing_punch;
|
||||||
|
|
||||||
void punch_changed (ARDOUR::Location*);
|
void punch_changed (ARDOUR::Location*);
|
||||||
void punch_location_changed (ARDOUR::Location*);
|
void punch_location_changed (ARDOUR::Location*);
|
||||||
|
|
@ -67,6 +69,9 @@ class TimeInfoBox : public Gtk::Table, public ARDOUR::SessionHandlePtr
|
||||||
PBD::ScopedConnectionList punch_connections;
|
PBD::ScopedConnectionList punch_connections;
|
||||||
|
|
||||||
void selection_changed ();
|
void selection_changed ();
|
||||||
|
|
||||||
|
void sync_selection_mode (AudioClock*);
|
||||||
|
void sync_punch_mode (AudioClock*);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue