From 2b032b3bb1b418cdea28e8d9741065d9d42f258d Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Fri, 30 Dec 2011 10:40:32 +0100 Subject: [PATCH] Add autoplay to freesound widget --- src/utils/freesound.cpp | 8 +++++--- src/utils/freesound.h | 2 +- src/widgets/freesound_ui.ui | 9 ++++++++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/utils/freesound.cpp b/src/utils/freesound.cpp index 9a81e9e0..d2039be5 100644 --- a/src/utils/freesound.cpp +++ b/src/utils/freesound.cpp @@ -194,6 +194,7 @@ void FreeSound::slotShowResults() void FreeSound::slotUpdateCurrentSound() { + if (!sound_autoplay->isChecked()) slotPlaySound(false); m_currentPreview.clear(); m_currentUrl.clear(); QListWidgetItem *item = search_results->currentItem(); @@ -203,6 +204,7 @@ void FreeSound::slotUpdateCurrentSound() } m_currentPreview = item->data(previewRole).toString(); m_currentUrl = item->data(downloadRole).toString(); + if (sound_autoplay->isChecked()) slotPlaySound(true); button_preview->setEnabled(!m_currentPreview.isEmpty()); sound_box->setEnabled(true); sound_name->setText(item->text()); @@ -232,12 +234,12 @@ void FreeSound::slotUpdateCurrentSound() } -void FreeSound::slotPlaySound() +void FreeSound::slotPlaySound(bool play) { if (m_currentPreview.isEmpty()) return; - if (m_previewProcess && m_previewProcess->state() != QProcess::NotRunning) { + if (!play || (m_previewProcess && m_previewProcess->state() != QProcess::NotRunning)) { m_previewProcess->close(); - return; + if (!play) return; } m_previewProcess->start("ffplay", QStringList() << m_currentPreview << "-nodisp"); } diff --git a/src/utils/freesound.h b/src/utils/freesound.h index 940220e1..ca397b0f 100644 --- a/src/utils/freesound.h +++ b/src/utils/freesound.h @@ -45,7 +45,7 @@ private slots: void slotDataIsHere(KIO::Job *,const QByteArray & data ); void slotShowResults(); void slotUpdateCurrentSound(); - void slotPlaySound(); + void slotPlaySound(bool play = true); void slotPreviewStatusChanged(QProcess::ProcessState state); void slotSaveSound(); void slotOpenUrl(const QString &url); diff --git a/src/widgets/freesound_ui.ui b/src/widgets/freesound_ui.ui index 5c62926a..15e5cbcf 100644 --- a/src/widgets/freesound_ui.ui +++ b/src/widgets/freesound_ui.ui @@ -88,7 +88,7 @@ - + Import @@ -142,6 +142,13 @@ + + + + Auto play + + + -- 2.39.2