svn path=/branches/KDE4/; revision=2370
painter->fillPath(resultClipPath, paintColor);
painter->setClipPath(resultClipPath, Qt::IntersectClip);
painter->fillPath(resultClipPath, paintColor);
painter->setClipPath(resultClipPath, Qt::IntersectClip);
- if (!m_startPix.isNull() && KdenliveSettings::videothumbnails()) {
- if (m_clipType == IMAGE) {
+ if (KdenliveSettings::videothumbnails()) {
+ if (m_clipType == IMAGE && !m_startPix.isNull()) {
painter->drawPixmap(QPointF(itemWidth - m_startPix.width(), 0), m_startPix);
QLine l(itemWidth - m_startPix.width(), 0, itemWidth - m_startPix.width(), itemHeight);
painter->drawLine(l);
painter->drawPixmap(QPointF(itemWidth - m_startPix.width(), 0), m_startPix);
QLine l(itemWidth - m_startPix.width(), 0, itemWidth - m_startPix.width(), itemHeight);
painter->drawLine(l);
+ }
+ else if (!m_endPix.isNull()) {
painter->drawPixmap(QPointF(itemWidth - m_endPix.width(), 0), m_endPix);
QLine l(itemWidth - m_endPix.width(), 0, itemWidth - m_endPix.width(), itemHeight);
painter->drawLine(l);
}
painter->drawPixmap(QPointF(itemWidth - m_endPix.width(), 0), m_endPix);
QLine l(itemWidth - m_endPix.width(), 0, itemWidth - m_endPix.width(), itemHeight);
painter->drawLine(l);
}
-
- painter->drawPixmap(QPointF(0, 0), m_startPix);
- QLine l2(m_startPix.width(), 0, 0 + m_startPix.width(), itemHeight);
- painter->drawLine(l2);
+ if (!m_startPix.isNull()) {
+ painter->drawPixmap(QPointF(0, 0), m_startPix);
+ QLine l2(m_startPix.width(), 0, 0 + m_startPix.width(), itemHeight);
+ painter->drawLine(l2);
+ }
}
// draw audio thumbnails
}
// draw audio thumbnails
if (m_tool == RAZORTOOL) {
// razor tool over a clip, display current frame in monitor
if (!m_blockRefresh && item->type() == AVWIDGET) {
if (m_tool == RAZORTOOL) {
// razor tool over a clip, display current frame in monitor
if (!m_blockRefresh && item->type() == AVWIDGET) {
- emit showClipFrame(((ClipItem *) item)->baseClip(), mapToScene(event->pos()).x() / m_scale - (clip->startPos() - clip->cropStart()).frames(m_document->fps()));
+ //TODO: solve crash when showing frame when moving razor over clip
+ //emit showClipFrame(((ClipItem *) item)->baseClip(), mapToScene(event->pos()).x() / m_scale - (clip->startPos() - clip->cropStart()).frames(m_document->fps()));
}
event->accept();
return;
}
event->accept();
return;
//static
QPixmap KThumb::getFrame(Mlt::Producer *producer, int framepos, int width, int height) {
//static
QPixmap KThumb::getFrame(Mlt::Producer *producer, int framepos, int width, int height) {
- kDebug() << "//REQUESTING FRAME: " << framepos;
- if (producer == NULL) return QPixmap();
+ if (producer == NULL) {
+ QPixmap p(width, height);
+ p.fill(Qt::red);
+ return p;
+ }
+
producer->seek(framepos);
Mlt::Frame *frame = producer->get_frame();
if (!frame) {
kDebug() << "///// BROKEN FRAME";
producer->seek(framepos);
Mlt::Frame *frame = producer->get_frame();
if (!frame) {
kDebug() << "///// BROKEN FRAME";
+ QPixmap p(width, height);
+ p.fill(Qt::red);
+ return p;
- kDebug() << "///// FRAME exists";
mlt_image_format format = mlt_image_yuv422;
int frame_width = 0;
int frame_height = 0;
frame->set("normalised_height", height);
frame->set("normalised_width", width);
QPixmap pix(width, height);
mlt_image_format format = mlt_image_yuv422;
int frame_width = 0;
int frame_height = 0;
frame->set("normalised_height", height);
frame->set("normalised_width", width);
QPixmap pix(width, height);
- kDebug() << "///// FRAME exists 2";
uint8_t *data = frame->get_image(format, frame_width, frame_height, 0);
uint8_t *data = frame->get_image(format, frame_width, frame_height, 0);
- kDebug() << "///// FRAME exists 2a";
uint8_t *new_image = (uint8_t *)mlt_pool_alloc(frame_width * (frame_height + 1) * 4);
uint8_t *new_image = (uint8_t *)mlt_pool_alloc(frame_width * (frame_height + 1) * 4);
- kDebug() << "///// FRAME exists 2b";
mlt_convert_yuv422_to_rgb24a((uint8_t *)data, new_image, frame_width * frame_height);
mlt_convert_yuv422_to_rgb24a((uint8_t *)data, new_image, frame_width * frame_height);
- kDebug() << "///// FRAME exists 2c";
QImage image((uchar *)new_image, frame_width, frame_height, QImage::Format_ARGB32);
QImage image((uchar *)new_image, frame_width, frame_height, QImage::Format_ARGB32);
- kDebug() << "///// FRAME exists 3";
if (!image.isNull()) {
pix = pix.fromImage(image.rgbSwapped());
} else
if (!image.isNull()) {
pix = pix.fromImage(image.rgbSwapped());
} else
mlt_pool_release(new_image);
delete frame;
mlt_pool_release(new_image);
delete frame;
- kDebug() << "//REQUESTING FRAME " << framepos << " OVER";
tabifyDockWidget(projectListDock, effectStackDock);
tabifyDockWidget(projectListDock, transitionConfigDock);
//tabifyDockWidget(projectListDock, undoViewDock);
tabifyDockWidget(projectListDock, effectStackDock);
tabifyDockWidget(projectListDock, transitionConfigDock);
//tabifyDockWidget(projectListDock, undoViewDock);
- projectListDock->raise();
tabifyDockWidget(clipMonitorDock, projectMonitorDock);
tabifyDockWidget(clipMonitorDock, recMonitorDock);
tabifyDockWidget(clipMonitorDock, projectMonitorDock);
tabifyDockWidget(clipMonitorDock, recMonitorDock);
} else newFile();
activateShuttleDevice();
} else newFile();
activateShuttleDevice();
+ projectListDock->raise();
}
void MainWindow::queryQuit() {
}
void MainWindow::queryQuit() {