//if (!url.isEmpty() && QFile::exists(url.path()))
{
- m_thumbProd = new KThumb(clipManager, url, m_id);
+ m_thumbProd = new KThumb(clipManager, url, m_id, m_properties.value("file_hash"));
if (m_clipType == AV || m_clipType == AUDIO) slotCreateAudioTimer();
}
//kDebug() << "type is video" << (m_clipType == AV) << " " << m_clipType;
}*/
DocClipBase::~DocClipBase() {
- if (m_thumbProd) delete m_thumbProd;
+ if (m_thumbProd) {
+ delete m_thumbProd;
+ }
qDeleteAll(m_baseTrackProducers);
}
const GenTime &DocClipBase::maxDuration() const {
if (m_clipType == COLOR || m_clipType == IMAGE || m_clipType == TEXT || (m_clipType == SLIDESHOW && m_properties.value("loop") == "1")) {
- const GenTime dur(10000, KdenliveSettings::project_fps());
+ const GenTime dur(15000, KdenliveSettings::project_fps());
return dur;
}
return m_duration;
}
Mlt::Producer *DocClipBase::producer(int track) {
- for (int i = 0; i < m_baseTrackProducers.count(); i++) {
+ /*for (int i = 0; i < m_baseTrackProducers.count(); i++) {
if (m_baseTrackProducers.at(i)) kDebug() << "// PROD: " << i << ", ID: " << m_baseTrackProducers.at(i)->get("id");
- }
+ }*/
if (track == -1 || (m_clipType != AUDIO && m_clipType != AV)) {
if (m_baseTrackProducers.count() == 0) return NULL;
int i;
}
}
+QString DocClipBase::getClipHash() const {
+ QString hash;
+ if (m_clipType == SLIDESHOW) hash = QCryptographicHash::hash(m_properties.value("resource").toAscii().data(), QCryptographicHash::Md5).toHex();
+ else if (m_clipType == COLOR) hash = QCryptographicHash::hash(m_properties.value("colour").toAscii().data(), QCryptographicHash::Md5).toHex();
+ else hash = m_properties.value("file_hash");
+ return hash;
+}
+
+void DocClipBase::refreshThumbUrl() {
+ if (m_thumbProd) m_thumbProd->updateThumbUrl(m_properties.value("file_hash"));
+}
+
void DocClipBase::setProperty(const QString &key, const QString &value) {
m_properties.insert(key, value);
if (key == "resource") {
- m_thumbProd->updateClipUrl(KUrl(value));
getFileHash(value);
+ if (m_thumbProd) m_thumbProd->updateClipUrl(KUrl(value), m_properties.value("file_hash"));
} else if (key == "out") setDuration(GenTime(value.toInt(), KdenliveSettings::project_fps()));
//else if (key == "transparency") m_clipProducer->set("transparency", value.toInt());
else if (key == "colour") {
bool DocClipBase::slotGetAudioThumbs() {
if (m_thumbProd == NULL) return false;
+ if (!KdenliveSettings::audiothumbnails()) {
+ if (m_audioTimer != NULL) m_audioTimer->stop();
+ return false;
+ }
if (m_audioThumbCreated) {
if (m_audioTimer != NULL) m_audioTimer->stop();
return false;