m_thumbsMutex.lock();
for (int i = 0; i < m_clipList.count(); i++) {
DocClipBase *clip = m_clipList.at(i);
- if (clip->clipType() & (AUDIO | AV | PLAYLIST) && !clip->audioThumbCreated())
+ if (clip->hasAudioThumb() && !clip->audioThumbCreated())
m_audioThumbsQueue.append(m_clipList.at(i)->getId());
}
m_thumbsMutex.unlock();
- if (!m_audioThumbsThread.isRunning()) m_audioThumbsThread = QtConcurrent::run(this, &ClipManager::slotGetAudioThumbs);
+ if (!m_audioThumbsThread.isRunning() && !m_audioThumbsQueue.isEmpty()) {
+ m_audioThumbsThread = QtConcurrent::run(this, &ClipManager::slotGetAudioThumbs);
+ }
}
void ClipManager::askForAudioThumb(const QString &id)
{
DocClipBase *clip = getClipById(id);
- if (clip && KdenliveSettings::audiothumbnails() && (clip->clipType() & (AUDIO | AV | PLAYLIST))) {
+ if (clip && KdenliveSettings::audiothumbnails() && (clip->hasAudioThumb())) {
m_thumbsMutex.lock();
if (!m_audioThumbsQueue.contains(id)) m_audioThumbsQueue.append(id);
m_thumbsMutex.unlock();
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();
}
DocClipBase::~DocClipBase()
}
+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('_')) {
/** Returns the internal unique id of the clip. */
const QString &getId() const;
+ bool hasAudioThumb() const;
//KThumb *thumbCreator;
bool audioThumbCreated() const;
/*void getClipMainThumb();*/
}
item->setProperties(properties, metadata);
clip->setProducer(producer, replace);
- clip->getAudioThumbs();
// Proxy stuff
QString size = properties.value("frame_size");