summaryrefslogtreecommitdiff
path: root/gtk2_ardour/audio_region_view.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-05-10 13:48:23 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-05-10 13:48:23 +0000
commit916202ea649fbc430b63afa3e93efde20c52de8a (patch)
tree6f1492838124ed6851822cacef68569999385466 /gtk2_ardour/audio_region_view.cc
parent68e69a8b29b49ea71846768a54e29a08d13bf5ad (diff)
a number of tweaks to make xfade GUI stuff better in several different ways, notable during region trims and region drags
git-svn-id: svn://localhost/ardour2/branches/3.0@12240 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/audio_region_view.cc')
-rw-r--r--gtk2_ardour/audio_region_view.cc51
1 files changed, 45 insertions, 6 deletions
diff --git a/gtk2_ardour/audio_region_view.cc b/gtk2_ardour/audio_region_view.cc
index bf2a39a791..edfd481636 100644
--- a/gtk2_ardour/audio_region_view.cc
+++ b/gtk2_ardour/audio_region_view.cc
@@ -45,6 +45,7 @@
#include "waveview.h"
#include "public_editor.h"
#include "audio_region_editor.h"
+#include "audio_streamview.h"
#include "region_gain_line.h"
#include "control_point.h"
#include "ghostregion.h"
@@ -307,6 +308,7 @@ AudioRegionView::fade_out_changed ()
{
reset_fade_out_shape ();
}
+
void
AudioRegionView::fade_in_active_changed ()
{
@@ -1524,6 +1526,7 @@ AudioRegionView::thaw_after_trim ()
{
RegionView::thaw_after_trim ();
unhide_envelope ();
+ drag_end ();
}
void
@@ -1535,6 +1538,15 @@ AudioRegionView::redraw_start_xfade ()
return;
}
+ if (!ar->fade_in_is_xfade()) {
+ if (start_xfade_in) {
+ start_xfade_in->hide ();
+ start_xfade_out->hide ();
+ start_xfade_rect->hide ();
+ }
+ return;
+ }
+
redraw_start_xfade_to (ar, ar->fade_in()->back()->when);
}
@@ -1631,6 +1643,15 @@ AudioRegionView::redraw_end_xfade ()
return;
}
+ if (!ar->fade_out_is_xfade()) {
+ if (end_xfade_in) {
+ end_xfade_in->hide ();
+ end_xfade_out->hide ();
+ end_xfade_rect->hide ();
+ }
+ return;
+ }
+
redraw_end_xfade_to (ar, ar->fade_out()->back()->when);
}
@@ -1722,10 +1743,8 @@ AudioRegionView::redraw_end_xfade_to (boost::shared_ptr<AudioRegion> ar, framecn
}
void
-AudioRegionView::drag_start ()
+AudioRegionView::hide_xfades ()
{
- TimeAxisViewItem::drag_start ();
-
if (start_xfade_in) {
start_xfade_in->hide();
}
@@ -1747,10 +1766,8 @@ AudioRegionView::drag_start ()
}
void
-AudioRegionView::drag_end ()
+AudioRegionView::show_xfades ()
{
- TimeAxisViewItem::drag_end ();
-
if (start_xfade_in) {
start_xfade_in->show();
}
@@ -1771,3 +1788,25 @@ AudioRegionView::drag_end ()
}
}
+void
+AudioRegionView::drag_start ()
+{
+ TimeAxisViewItem::drag_start ();
+ AudioTimeAxisView* atav = dynamic_cast<AudioTimeAxisView*> (&trackview);
+
+ if (atav) {
+ AudioStreamView* av = atav->audio_view();
+ if (av) {
+ /* this will hide our xfades too */
+ av->hide_xfades_with (audio_region());
+ }
+ }
+}
+
+void
+AudioRegionView::drag_end ()
+{
+ TimeAxisViewItem::drag_end ();
+ /* fades will be redrawn if they changed */
+}
+