X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmarkerdialog.cpp;h=fd1abcefd35a32388a3a53c43f04c84d9fca9834;hb=f4462e7ecb75f64e524746e3bb7c62a5e973d965;hp=e1e8283da04985235fb42ed4e906561ba1bf5752;hpb=dab27793766c4e894a800b4be1dc59894bb9edc1;p=kdenlive diff --git a/src/markerdialog.cpp b/src/markerdialog.cpp index e1e8283d..fd1abcef 100644 --- a/src/markerdialog.cpp +++ b/src/markerdialog.cpp @@ -26,11 +26,12 @@ #include -MarkerDialog::MarkerDialog(DocClipBase *clip, CommentedTime t, Timecode tc, const QString &caption, QWidget * parent) : - QDialog(parent), - m_producer(NULL), - m_profile(NULL), - m_clip(clip) +MarkerDialog::MarkerDialog(DocClipBase *clip, const CommentedTime &t, const Timecode &tc, const QString &caption, QWidget * parent) + : QDialog(parent) + , m_producer(NULL) + , m_profile(NULL) + , m_clip(clip) + , m_dar(4.0 / 3.0) { setFont(KGlobalSettings::toolBarFont()); setupUi(this); @@ -38,9 +39,9 @@ MarkerDialog::MarkerDialog(DocClipBase *clip, CommentedTime t, Timecode tc, cons // Set up categories for (int i = 0; i < 5; ++i) { - marker_type->insertItem(i, i18n("Category %1", i)); - marker_type->setItemData(i, CommentedTime::markerColor(i), Qt::DecorationRole); - } + marker_type->insertItem(i, i18n("Category %1", i)); + marker_type->setItemData(i, CommentedTime::markerColor(i), Qt::DecorationRole); + } marker_type->setCurrentIndex(t.markerType()); m_in = new TimecodeDisplay(tc, this); @@ -64,11 +65,11 @@ MarkerDialog::MarkerDialog(DocClipBase *clip, CommentedTime t, Timecode tc, cons //char *tmp = doc.toString().toUtf8().data(); m_producer = new Mlt::Producer(*m_profile, "xml-string", doc.toString().toUtf8().data()); //delete[] tmp; - int width = 100.0 * m_dar; + int width = Kdenlive::DefaultThumbHeight * m_dar; if (width % 2 == 1) width++; QPixmap p(width, 100); QString colour = clip->getProperty("colour"); - int swidth = (int) (100.0 * m_profile->width() / m_profile->height() + 0.5); + int swidth = (int) (Kdenlive::DefaultThumbHeight * m_profile->width() / m_profile->height() + 0.5); switch (m_clip->clipType()) { case VIDEO: @@ -76,14 +77,17 @@ MarkerDialog::MarkerDialog(DocClipBase *clip, CommentedTime t, Timecode tc, cons case SLIDESHOW: case PLAYLIST: connect(this, SIGNAL(updateThumb()), m_previewTimer, SLOT(start())); + break; case IMAGE: case TEXT: - p = QPixmap::fromImage(KThumb::getFrame(m_producer, m_in->getValue(), swidth, width, 100)); + m_image = KThumb::getFrame(m_producer, m_in->getValue(), swidth, width, Kdenlive::DefaultThumbHeight); + p = QPixmap::fromImage(m_image); break; case COLOR: colour = colour.replace(0, 2, "#"); p.fill(QColor(colour.left(7))); break; + //UNKNOWN, AUDIO, VIRTUAL: default: p.fill(Qt::black); } @@ -96,8 +100,8 @@ MarkerDialog::MarkerDialog(DocClipBase *clip, CommentedTime t, Timecode tc, cons connect(m_in, SIGNAL(timeCodeEditingFinished()), this, SIGNAL(updateThumb())); } else { clip_thumb->setHidden(true); - label_category->setHidden(true); - marker_type->setHidden(true); + label_category->setHidden(true); + marker_type->setHidden(true); } marker_comment->setText(t.comment()); @@ -120,14 +124,22 @@ void MarkerDialog::slotUpdateThumb() int pos = m_in->getValue(); int width = 100.0 * m_dar; int swidth = (int) (100.0 * m_profile->width() / m_profile->height() + 0.5); - if (width % 2 == 1) width++; - QPixmap p = QPixmap::fromImage(KThumb::getFrame(m_producer, pos, swidth, width, 100)); + if (width % 2 == 1) + width++; + + m_image = KThumb::getFrame(m_producer, pos, swidth, width, 100); + const QPixmap p = QPixmap::fromImage(m_image); if (!p.isNull()) clip_thumb->setPixmap(p); else kDebug() << "!!!!!!!!!!! ERROR CREATING THUMB"; } +QImage MarkerDialog::markerImage() const +{ + return m_image; +} + CommentedTime MarkerDialog::newMarker() { KdenliveSettings::setDefault_marker_type(marker_type->currentIndex());