#include <QSpinBox>
#include <QListWidget>
#include <QDomDocument>
+#include <QApplication>
#include <KDebug>
#include "kdenlivesettings.h"
-#include <KGlobalSettings>
-#include <KMessageBox>
-#include <KFileDialog>
#include <kio/job.h>
-#include <KIO/NetAccess>
-#include <Solid/Networking>
-#include <KRun>
-
-#ifdef USE_NEPOMUK
-#include <Nepomuk/Variant>
-#include <Nepomuk/Resource>
-#include <Nepomuk/ResourceManager>
-#include <Soprano/Vocabulary/NAO>
-#include <Nepomuk/Vocabulary/NIE>
-#include <Nepomuk/Vocabulary/NDO>
-#endif
+#include <KLocalizedString>
#ifdef USE_QJSON
#include <qjson/parser.h>
serviceType = FREESOUND;
hasPreview = true;
hasMetadata = true;
- //connect(m_previewProcess, SIGNAL(stateChanged(QProcess::ProcessState)), this, SLOT(slotPreviewStatusChanged(QProcess::ProcessState)));
}
FreeSound::~FreeSound()
{
- if (m_previewProcess) delete m_previewProcess;
+ delete m_previewProcess;
}
-void FreeSound::slotStartSearch(const QString searchText, int page)
+void FreeSound::slotStartSearch(const QString &searchText, int page)
{
m_listWidget->clear();
QString uri = "http://www.freesound.org/api/sounds/search/?q=";
uri.append(searchText);
- if (page > 1) uri.append("&p=" + QString::number(page));
+ if (page > 1)
+ uri.append("&p=" + QString::number(page));
uri.append("&api_key=a1772c8236e945a4bee30a64058dabf8");
KJob* resolveJob = KIO::storedGet( KUrl(uri), KIO::NoReload, KIO::HideProgressInfo );
- connect( resolveJob, SIGNAL( result( KJob* ) ), this, SLOT( slotShowResults( KJob* ) ) );
+ connect( resolveJob, SIGNAL(result(KJob*)), this, SLOT(slotShowResults(KJob*)) );
}
#endif
m_listWidget->blockSignals(false);
m_listWidget->setCurrentRow(0);
+ emit searchDone();
}
QString extraInfoUrl = item->data(infoData).toString();
if (!extraInfoUrl.isEmpty()) {
KJob* resolveJob = KIO::storedGet( KUrl(extraInfoUrl), KIO::NoReload, KIO::HideProgressInfo );
- connect( resolveJob, SIGNAL( result( KJob* ) ), this, SLOT( slotParseResults( KJob* ) ) );
+ connect( resolveJob, SIGNAL(result(KJob*)), this, SLOT(slotParseResults(KJob*)) );
}
- info.imagePreview = item->data(imageRole).toString();
+ emit gotThumb(item->data(imageRole).toString());
return info;
}
KIO::StoredTransferJob* storedQueryJob = static_cast<KIO::StoredTransferJob*>( job );
QJson::Parser parser;
bool ok;
+ QString html = QString("<style type=\"text/css\">tr.cellone {background-color: %1;}</style>").arg(qApp->palette().alternateBase().color().name());
+
QVariant data = parser.parse(storedQueryJob->data(), &ok);
if (data.canConvert(QVariant::Map)) {
QMap <QString, QVariant> infos = data.toMap();
//if (m_currentId != infos.value("id").toInt()) return;
- if (infos.contains("samplerate"))
- m_metaInfo.insert(i18n("Samplerate"), QString::number(infos.value("samplerate").toDouble()));
- if (infos.contains("channels"))
- m_metaInfo.insert(i18n("Channels"), QString::number(infos.value("channels").toInt()));
+
+ html += "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"2\">";
+
+ if (m_metaInfo.contains(i18n("Duration"))) {
+ html += "<tr>";
+ html += "<td>" + i18n("Duration") + "</td><td>" + m_metaInfo.value(i18n("Duration")) + "</td></tr>";
+ m_metaInfo.remove(i18n("Duration"));
+ }
+
+ if (infos.contains("samplerate")) {
+ html += "<tr class=\"cellone\">";
+ html += "<td>" + i18n("Samplerate") + "</td><td>" + QString::number(infos.value("samplerate").toDouble()) + "</td></tr>";
+ }
+ if (infos.contains("channels")) {
+ html += "<tr>";
+ html += "<td>" + i18n("Channels") + "</td><td>" + QString::number(infos.value("channels").toInt()) + "</td></tr>";
+ }
if (infos.contains("filesize")) {
+ html += "<tr class=\"cellone\">";
KIO::filesize_t fSize = infos.value("filesize").toDouble();
- m_metaInfo.insert(i18n("File size"), KIO::convertSize(fSize));
- }
- if (infos.contains("description")) {
- m_metaInfo.insert("description", infos.value("description").toString());
+ html += "<td>" + i18n("File size") + "</td><td>" + KIO::convertSize(fSize) + "</td></tr>";
}
if (infos.contains("license")) {
m_metaInfo.insert("license", infos.value("license").toString());
}
+ html +="</table>";
+ if (infos.contains("description")) {
+ m_metaInfo.insert("description", infos.value("description").toString());
+ }
}
+ emit gotMetaInfo(html);
emit gotMetaInfo(m_metaInfo);
#endif
}
bool FreeSound::startItemPreview(QListWidgetItem *item)
{
- if (!item) return false;
- QString url = item->data(previewRole).toString();
- if (url.isEmpty()) return false;
+ if (!item)
+ return false;
+ const QString url = item->data(previewRole).toString();
+ if (url.isEmpty())
+ return false;
if (m_previewProcess && m_previewProcess->state() != QProcess::NotRunning) {
m_previewProcess->close();
}
- m_previewProcess->start("ffplay", QStringList() << url << "-nodisp");
+ m_previewProcess->start(KdenliveSettings::ffplaypath(), QStringList() << url << "-nodisp");
return true;
}
-void FreeSound::stopItemPreview(QListWidgetItem *item)
+void FreeSound::stopItemPreview(QListWidgetItem */*item*/)
{
if (m_previewProcess && m_previewProcess->state() != QProcess::NotRunning) {
m_previewProcess->close();
QString FreeSound::getExtension(QListWidgetItem *item)
{
- if (!item) return QString();
+ if (!item)
+ return QString();
return QString("*.") + item->text().section('.', -1);
}
QString FreeSound::getDefaultDownloadName(QListWidgetItem *item)
{
- if (!item) return QString();
+ if (!item)
+ return QString();
return item->text();
}
+
+#include "freesound.moc"