From c492d50d507e33daf4af4f76be91ce6c26331741 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Sun, 1 Mar 2009 21:28:53 -0500 Subject: Use KIO in sound searching as well --- sigmodr/widgets/SoundUI.cpp | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) (limited to 'sigmodr/widgets/SoundUI.cpp') diff --git a/sigmodr/widgets/SoundUI.cpp b/sigmodr/widgets/SoundUI.cpp index 891b0d07..a2980ffd 100644 --- a/sigmodr/widgets/SoundUI.cpp +++ b/sigmodr/widgets/SoundUI.cpp @@ -29,6 +29,7 @@ #include #include #include +#include // Phonon includes #include @@ -123,13 +124,44 @@ void SoundUI::Private::nameChanged(const QString& name) void SoundUI::Private::browse() { - QFile file(KFileDialog::getOpenFileName(KUrl("kfiledialog:///audio"), "audio/*|Audio files", NULL)); - if (file.open(QIODevice::ReadOnly)) + KFileDialog* dialog = new KFileDialog(KUrl("kfiledialog:///audio"), "audio/*|Audio Files", NULL); + dialog->setCaption("Use Audio File"); + dialog->setOperationMode(KFileDialog::Opening); + if (dialog->exec() == QDialog::Accepted) { - m_sound->setData(file.readAll()); - file.close(); - resetAudioData(); + KUrl url = dialog->selectedFile(); + if (url.isValid()) + { + QString path; + bool load = true; + bool removeTempFile = false; + if (url.isLocalFile()) + path = url.path(); + else + { + if (KIO::NetAccess::download(url, path, NULL)) + removeTempFile = true; + else + { + KMessageBox::error(NULL, KIO::NetAccess::lastErrorString(), "KIO Error"); + load = false; + } + } + if (load) + { + QFile file(url.path()); + file.open(QIODevice::ReadOnly); + m_sound->setData(file.readAll()); + file.close(); + resetAudioData(); + } + if (removeTempFile) + KIO::NetAccess::removeTempFile(path); + } + else + KMessageBox::error(NULL, "The URL is not valid", "Malformed URL"); } + delete dialog; } void SoundUI::Private::stateChanged(Phonon::State newState) -- cgit