Skip to content

Commit 437172a

Browse files
authored
Stop sample previews on mouse release or browser focus loss (#5764)
Stop previews on mouse up and focus loss.
1 parent a6e3958 commit 437172a

File tree

2 files changed

+13
-16
lines changed

2 files changed

+13
-16
lines changed

include/FileBrowser.h

+1
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ class FileBrowserTreeWidget : public QTreeWidget
108108
void keyPressEvent( QKeyEvent * ke ) override;
109109
void keyReleaseEvent( QKeyEvent * ke ) override;
110110
void hideEvent( QHideEvent * he ) override;
111+
void focusOutEvent( QFocusEvent * fe ) override;
111112

112113

113114
private:

src/gui/FileBrowser.cpp

+12-16
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,16 @@ void FileBrowserTreeWidget::hideEvent(QHideEvent* he)
433433

434434

435435

436+
void FileBrowserTreeWidget::focusOutEvent(QFocusEvent* fe)
437+
{
438+
// Cancel previews when the user clicks outside the browser
439+
stopPreview();
440+
QTreeWidget::focusOutEvent(fe);
441+
}
442+
443+
444+
445+
436446
void FileBrowserTreeWidget::contextMenuEvent(QContextMenuEvent * e )
437447
{
438448
FileItem * file = dynamic_cast<FileItem *>( itemAt( e->pos() ) );
@@ -674,22 +684,8 @@ void FileBrowserTreeWidget::mouseReleaseEvent(QMouseEvent * me )
674684

675685
QMutexLocker previewLocker(&m_pphMutex);
676686

677-
if (m_previewPlayHandle != nullptr)
678-
{
679-
// If less than 3 seconds remain of the sample, we don't
680-
// stop them if the user releases mouse-button...
681-
if (m_previewPlayHandle->type() == PlayHandle::TypeSamplePlayHandle)
682-
{
683-
SamplePlayHandle* s = dynamic_cast<SamplePlayHandle*>(m_previewPlayHandle);
684-
auto second = static_cast<f_cnt_t>(Engine::mixer()->processingSampleRate());
685-
if (s && s->totalFrames() - s->framesDone() <= second * 3)
686-
{
687-
s->setDoneMayReturnTrue(true);
688-
}
689-
else { stopPreview(); }
690-
}
691-
else { stopPreview(); }
692-
}
687+
//TODO: User setting to allow samples to play until completion instead
688+
if (m_previewPlayHandle != nullptr) { stopPreview(); }
693689
}
694690

695691

0 commit comments

Comments
 (0)