svn path=/trunk/kdenlive/; revision=3593
setBrush(QColor(colour.left(7)));
} else if (m_clipType == IMAGE || m_clipType == TEXT) {
setBrush(QColor(141, 166, 215));
setBrush(QColor(colour.left(7)));
} else if (m_clipType == IMAGE || m_clipType == TEXT) {
setBrush(QColor(141, 166, 215));
- m_startPix = KThumb::getImage(KUrl(clip->getProperty("resource")), (int)(KdenliveSettings::trackheight() * KdenliveSettings::project_display_ratio()), KdenliveSettings::trackheight());
+ //m_startPix = KThumb::getImage(KUrl(clip->getProperty("resource")), (int)(KdenliveSettings::trackheight() * KdenliveSettings::project_display_ratio()), KdenliveSettings::trackheight());
} else if (m_clipType == AUDIO) {
setBrush(QColor(141, 215, 166));
connect(clip, SIGNAL(gotAudioData()), this, SLOT(slotGotAudioData()));
} else if (m_clipType == AUDIO) {
setBrush(QColor(141, 215, 166));
connect(clip, SIGNAL(gotAudioData()), this, SLOT(slotGotAudioData()));
ClipItem *ClipItem::clone(ItemInfo info) const
{
ClipItem *duplicate = new ClipItem(m_clip, info, m_fps, m_speed);
ClipItem *ClipItem::clone(ItemInfo info) const
{
ClipItem *duplicate = new ClipItem(m_clip, info, m_fps, m_speed);
- if (info.cropStart == m_cropStart) duplicate->slotSetStartThumb(m_startPix);
- if (info.cropStart + (info.endPos - info.startPos) == m_cropStart + m_cropDuration) duplicate->slotSetEndThumb(m_endPix);
- kDebug() << "// CLoning clip: " << (info.cropStart + (info.endPos - info.startPos)).frames(m_fps) << ", CURRENT end: " << (cropStart() + duration()).frames(m_fps);
+ if (m_clipType == IMAGE || m_clipType == TEXT) duplicate->slotSetStartThumb(m_startPix);
+ else {
+ if (info.cropStart == m_cropStart) duplicate->slotSetStartThumb(m_startPix);
+ if (info.cropStart + (info.endPos - info.startPos) == m_cropStart + m_cropDuration) duplicate->slotSetEndThumb(m_endPix);
+ }
+ //kDebug() << "// CLoning clip: " << (info.cropStart + (info.endPos - info.startPos)).frames(m_fps) << ", CURRENT end: " << (cropStart() + duration()).frames(m_fps);
duplicate->setEffectList(m_effectList.clone());
duplicate->setVideoOnly(m_videoOnly);
duplicate->setAudioOnly(m_audioOnly);
duplicate->setEffectList(m_effectList.clone());
duplicate->setVideoOnly(m_videoOnly);
duplicate->setAudioOnly(m_audioOnly);
return effectAt(m_selectedEffect);
}
return effectAt(m_selectedEffect);
}
-void ClipItem::resetThumbs()
+void ClipItem::resetThumbs(bool clearExistingThumbs)
- m_startPix = QPixmap();
- m_endPix = QPixmap();
+ if (clearExistingThumbs) {
+ m_startPix = QPixmap();
+ m_endPix = QPixmap();
+ m_audioThumbCachePic.clear();
+ }
- m_audioThumbCachePic.clear();
QString colour = m_clip->getProperty("colour");
colour = colour.replace(0, 2, "#");
setBrush(QColor(colour.left(7)));
QString colour = m_clip->getProperty("colour");
colour = colour.replace(0, 2, "#");
setBrush(QColor(colour.left(7)));
+ } else resetThumbs(checkDuration);
}
void ClipItem::slotFetchThumbs()
{
}
void ClipItem::slotFetchThumbs()
{
+ if (m_clipType == IMAGE || m_clipType == TEXT) {
+ if (m_startPix.isNull()) {
+ m_startPix = KThumb::getImage(KUrl(m_clip->getProperty("resource")), (int)(KdenliveSettings::trackheight() * KdenliveSettings::project_display_ratio()), KdenliveSettings::trackheight());
+ update();
+ }
+ return;
+ }
+
if (m_endPix.isNull() && m_startPix.isNull()) {
m_startThumbRequested = true;
m_endThumbRequested = true;
if (m_endPix.isNull() && m_startPix.isNull()) {
m_startThumbRequested = true;
m_endThumbRequested = true;
void flashClip();
void addTransition(Transition*);
/** regenerate audio and video thumbnails */
void flashClip();
void addTransition(Transition*);
/** regenerate audio and video thumbnails */
+ void resetThumbs(bool clearExistingThumbs);
/** update clip properties from base clip */
void refreshClip(bool checkDuration);
/** Returns a list of times for this clip's markers */
/** update clip properties from base clip */
void refreshClip(bool checkDuration);
/** Returns a list of times for this clip's markers */
item = (ClipItem*) itemList.at(i);
item->setRect(0, 0, item->rect().width(), m_tracksHeight - 1);
item->setPos((qreal) item->startPos().frames(m_document->fps()), (qreal) item->track() * m_tracksHeight + 1);
item = (ClipItem*) itemList.at(i);
item->setRect(0, 0, item->rect().width(), m_tracksHeight - 1);
item->setPos((qreal) item->startPos().frames(m_document->fps()), (qreal) item->track() * m_tracksHeight + 1);
+ item->resetThumbs(true);
} else if (itemList.at(i)->type() == TRANSITIONWIDGET) {
transitionitem = (Transition*) itemList.at(i);
transitionitem->setRect(0, 0, transitionitem->rect().width(), m_tracksHeight / 3 * 2 - 1);
} else if (itemList.at(i)->type() == TRANSITIONWIDGET) {
transitionitem = (Transition*) itemList.at(i);
transitionitem->setRect(0, 0, transitionitem->rect().width(), m_tracksHeight / 3 * 2 - 1);
}
m_document->setModified(true);
m_document->renderer()->doRefresh();
}
m_document->setModified(true);
m_document->renderer()->doRefresh();
+ m_waitingThumbs.append(item);
+ m_thumbsTimer.start();
}
void CustomTrackView::slotUpdateClip(const QString &clipId)
}
void CustomTrackView::slotUpdateClip(const QString &clipId)
bool success = m_document->renderer()->mltResizeClipCrop(clipinfo, end.cropStart - start.cropStart);
if (success) {
item->setCropStart(end.cropStart);
bool success = m_document->renderer()->mltResizeClipCrop(clipinfo, end.cropStart - start.cropStart);
if (success) {
item->setCropStart(end.cropStart);
+ item->resetThumbs(true);
}
}
m_document->renderer()->doRefresh();
}
}
m_document->renderer()->doRefresh();
for (int i = 0; i < itemList.count(); i++) {
if (itemList.at(i)->type() == AVWIDGET) {
item = static_cast <ClipItem *>(itemList.at(i));
for (int i = 0; i < itemList.count(); i++) {
if (itemList.at(i)->type() == AVWIDGET) {
item = static_cast <ClipItem *>(itemList.at(i));
- if (item->clipType() != COLOR) {
+ if (item->clipType() != COLOR && item->clipType() != AUDIO) {
// Check if we have a cached thumbnail
// Check if we have a cached thumbnail
- if (item->clipType() == IMAGE || item->clipType() == TEXT || item->clipType() == AUDIO) {
+ if (item->clipType() == IMAGE || item->clipType() == TEXT) {
QString thumb = thumbBase + item->baseClip()->getClipHash() + "_0.png";
if (QFile::exists(thumb)) {
QPixmap pix(thumb);
item->slotSetStartThumb(pix);
QString thumb = thumbBase + item->baseClip()->getClipHash() + "_0.png";
if (QFile::exists(thumb)) {
QPixmap pix(thumb);
item->slotSetStartThumb(pix);
- item->slotSetEndThumb(pix);
}
} else {
QString startThumb = thumbBase + item->baseClip()->getClipHash() + '_';
}
} else {
QString startThumb = thumbBase + item->baseClip()->getClipHash() + '_';