From b53f2b4f5472ae05643a6d11611b20cbaf35c389 Mon Sep 17 00:00:00 2001 From: saker Date: Sat, 13 Jan 2024 22:12:24 -0500 Subject: [PATCH] Fix AFP playback indicator not shown when dragging and dropping samples (#7064) The issue occurred because `AudioFileProcessorWaveView::updateSampleRange` was not being called in `AudioFileProcessorWaveView::dropEvent`. --- .../AudioFileProcessor/AudioFileProcessor.cpp | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/plugins/AudioFileProcessor/AudioFileProcessor.cpp b/plugins/AudioFileProcessor/AudioFileProcessor.cpp index 86b922fc421..f50a6df6894 100644 --- a/plugins/AudioFileProcessor/AudioFileProcessor.cpp +++ b/plugins/AudioFileProcessor/AudioFileProcessor.cpp @@ -611,29 +611,26 @@ void AudioFileProcessorView::newWaveView() void AudioFileProcessorView::dropEvent( QDropEvent * _de ) { - QString type = StringPairDrag::decodeKey( _de ); - QString value = StringPairDrag::decodeValue( _de ); - if( type == "samplefile" ) + const auto type = StringPairDrag::decodeKey(_de); + const auto value = StringPairDrag::decodeValue(_de); + + if (type == "samplefile") { castModel()->setAudioFile(value); } + else if (type == QString("clip_%1").arg(static_cast(Track::Type::Sample))) { - castModel()->setAudioFile( value ); - _de->accept(); - newWaveView(); - return; + DataFile dataFile(value.toUtf8()); + castModel()->setAudioFile(dataFile.content().firstChild().toElement().attribute("src")); } - else if( type == QString( "clip_%1" ).arg( static_cast(Track::Type::Sample) ) ) + else { - DataFile dataFile( value.toUtf8() ); - castModel()->setAudioFile( dataFile.content().firstChild().toElement().attribute( "src" ) ); - _de->accept(); + _de->ignore(); return; } - _de->ignore(); + m_waveView->updateSampleRange(); + Engine::getSong()->setModified(); + _de->accept(); } - - - void AudioFileProcessorView::paintEvent( QPaintEvent * ) { QPainter p( this );