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
This commit is contained in:
parent
68e69a8b29
commit
916202ea64
|
@ -45,6 +45,7 @@
|
||||||
#include "waveview.h"
|
#include "waveview.h"
|
||||||
#include "public_editor.h"
|
#include "public_editor.h"
|
||||||
#include "audio_region_editor.h"
|
#include "audio_region_editor.h"
|
||||||
|
#include "audio_streamview.h"
|
||||||
#include "region_gain_line.h"
|
#include "region_gain_line.h"
|
||||||
#include "control_point.h"
|
#include "control_point.h"
|
||||||
#include "ghostregion.h"
|
#include "ghostregion.h"
|
||||||
|
@ -307,6 +308,7 @@ AudioRegionView::fade_out_changed ()
|
||||||
{
|
{
|
||||||
reset_fade_out_shape ();
|
reset_fade_out_shape ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
AudioRegionView::fade_in_active_changed ()
|
AudioRegionView::fade_in_active_changed ()
|
||||||
{
|
{
|
||||||
|
@ -1524,6 +1526,7 @@ AudioRegionView::thaw_after_trim ()
|
||||||
{
|
{
|
||||||
RegionView::thaw_after_trim ();
|
RegionView::thaw_after_trim ();
|
||||||
unhide_envelope ();
|
unhide_envelope ();
|
||||||
|
drag_end ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1535,6 +1538,15 @@ AudioRegionView::redraw_start_xfade ()
|
||||||
return;
|
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);
|
redraw_start_xfade_to (ar, ar->fade_in()->back()->when);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1631,6 +1643,15 @@ AudioRegionView::redraw_end_xfade ()
|
||||||
return;
|
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);
|
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
|
void
|
||||||
AudioRegionView::drag_start ()
|
AudioRegionView::hide_xfades ()
|
||||||
{
|
{
|
||||||
TimeAxisViewItem::drag_start ();
|
|
||||||
|
|
||||||
if (start_xfade_in) {
|
if (start_xfade_in) {
|
||||||
start_xfade_in->hide();
|
start_xfade_in->hide();
|
||||||
}
|
}
|
||||||
|
@ -1747,10 +1766,8 @@ AudioRegionView::drag_start ()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
AudioRegionView::drag_end ()
|
AudioRegionView::show_xfades ()
|
||||||
{
|
{
|
||||||
TimeAxisViewItem::drag_end ();
|
|
||||||
|
|
||||||
if (start_xfade_in) {
|
if (start_xfade_in) {
|
||||||
start_xfade_in->show();
|
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 */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -124,6 +124,9 @@ class AudioRegionView : public RegionView
|
||||||
void redraw_end_xfade_to (boost::shared_ptr<ARDOUR::AudioRegion>, framecnt_t);
|
void redraw_end_xfade_to (boost::shared_ptr<ARDOUR::AudioRegion>, framecnt_t);
|
||||||
void redraw_start_xfade ();
|
void redraw_start_xfade ();
|
||||||
void redraw_end_xfade ();
|
void redraw_end_xfade ();
|
||||||
|
|
||||||
|
void hide_xfades ();
|
||||||
|
void show_xfades ();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
|
|
@ -532,6 +532,23 @@ AudioStreamView::hide_all_fades ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
AudioStreamView::hide_xfades_with (boost::shared_ptr<AudioRegion> ar)
|
||||||
|
{
|
||||||
|
for (list<RegionView*>::iterator i = region_views.begin(); i != region_views.end(); ++i) {
|
||||||
|
AudioRegionView* const arv = dynamic_cast<AudioRegionView*>(*i);
|
||||||
|
if (arv) {
|
||||||
|
switch (arv->region()->coverage (ar->position(), ar->last_frame())) {
|
||||||
|
case Evoral::OverlapNone:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
arv->hide_xfades ();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
AudioStreamView::color_handler ()
|
AudioStreamView::color_handler ()
|
||||||
{
|
{
|
||||||
|
|
|
@ -61,6 +61,8 @@ class AudioStreamView : public StreamView
|
||||||
void show_all_fades ();
|
void show_all_fades ();
|
||||||
void hide_all_fades ();
|
void hide_all_fades ();
|
||||||
|
|
||||||
|
void hide_xfades_with (boost::shared_ptr<ARDOUR::AudioRegion> ar);
|
||||||
|
|
||||||
RegionView* create_region_view (boost::shared_ptr<ARDOUR::Region>, bool, bool);
|
RegionView* create_region_view (boost::shared_ptr<ARDOUR::Region>, bool, bool);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user