if (!m_properties.contains("name")) m_properties.insert("name", url.fileName());
m_thumbProd = new KThumb(clipManager, url, m_id, m_properties.value("file_hash"));
- if (m_clipType & (AV | AUDIO | PLAYLIST)) getAudioThumbs();
+
+ // Setup timer to trigger audio thumbs creation
+ m_audioTimer.setSingleShot(true);
+ m_audioTimer.setInterval(800);
+ connect(&m_audioTimer, SIGNAL(timeout()), m_thumbProd, SLOT(slotCreateAudioThumbs()));
+
}
DocClipBase::~DocClipBase()
{
+ m_audioTimer.stop();
delete m_thumbProd;
qDeleteAll(m_toDeleteProducers);
m_toDeleteProducers.clear();
}
+bool DocClipBase::hasAudioThumb() const
+{
+ if (m_clipType == AUDIO || m_clipType == AV || m_clipType == PLAYLIST) return true;
+ return false;
+}
+
void DocClipBase::slotClearAudioCache()
{
m_audioFrameCache.clear();
m_thumbProd->setProducer(producer);
}
else m_thumbProd->setProducer(producer);
+ getAudioThumbs();
}
bool updated = false;
if (id.contains('_')) {
return m_properties;
}
+QMap <QString, QString> DocClipBase::currentProperties(QMap <QString, QString> props)
+{
+ QMap <QString, QString> currentProps;
+ QMap<QString, QString>::const_iterator i = props.constBegin();
+ while (i != props.constEnd()) {
+ currentProps.insert(i.key(), m_properties.value(i.key()));
+ ++i;
+ }
+ return currentProps;
+}
+
bool DocClipBase::getAudioThumbs()
{
if (m_thumbProd == NULL || isPlaceHolder() || !KdenliveSettings::audiothumbnails()) return false;
if (m_audioThumbCreated) {
return false;
}
- QTimer::singleShot(800, m_thumbProd, SLOT(slotCreateAudioThumbs()));
+ m_audioTimer.start();
return true;
}