toolbar->addWidget(spacer);
m_timePos = new KRestrictedLine(this);
m_timePos->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::MinimumExpanding);
- m_timePos->setInputMask("99:99:99:99");
+ m_frametimecode = KdenliveSettings::frametimecode();
+ if (m_frametimecode) m_timePos->setInputMask("999999999");
+ else m_timePos->setInputMask("99:99:99:99");
toolbar->addWidget(m_timePos);
connect(m_timePos, SIGNAL(editingFinished()), this, SLOT(slotSeek()));
QVBoxLayout *rendererBox = new QVBoxLayout(m_ui.video_frame);
rendererBox->setContentsMargins(0, 0, 0, 0);
+#ifdef Q_WS_MAC
+ m_glWidget = new VideoGLWidget(m_ui.video_frame);
+ rendererBox->addWidget(m_glWidget);
+ render = new Render(m_name, (int) m_ui.video_frame->winId(), -1, this);
+ m_glWidget->setImageAspectRatio(render->dar());
+ m_glWidget->setBackgroundColor(KdenliveSettings::window_background());
+ m_glWidget->resize(m_ui.video_frame->size());
+ connect(render, SIGNAL(showImageSignal(QImage)), m_glWidget, SLOT(showImage(QImage)));
+ m_monitorRefresh = 0;
+#else
m_monitorRefresh = new MonitorRefresh(m_ui.video_frame);
rendererBox->addWidget(m_monitorRefresh);
render = new Render(m_name, (int) m_monitorRefresh->winId(), -1, this);
m_monitorRefresh->setRenderer(render);
+#endif
connect(m_ruler, SIGNAL(seekRenderer(int)), this, SLOT(slotSeek(int)));
connect(render, SIGNAL(durationChanged(int)), this, SLOT(adjustRulerSize(int)));
} else {
connect(m_ruler, SIGNAL(zoneChanged(QPoint)), this, SLOT(setClipZone(QPoint)));
}
+#ifndef Q_WS_MAC
m_monitorRefresh->show();
+#endif
kDebug() << "/////// BUILDING MONITOR, ID: " << m_ui.video_frame->winId();
}
delete m_timePos;
delete m_overlay;
delete m_monitorRefresh;
+ delete render;
}
QString Monitor::name() const
void Monitor::setTimePos(const QString &pos)
{
- m_timePos->setText(pos);
+ if (m_frametimecode) {
+ int frames = m_monitorManager->timecode().getFrameCount(pos);
+ m_timePos->setText(QString::number(frames));
+ } else m_timePos->setText(pos);
slotSeek();
}
void Monitor::slotSeek()
{
- const int frames = m_monitorManager->timecode().getFrameCount(m_timePos->text(), m_monitorManager->timecode().fps());
+ int frames;
+ if (m_frametimecode) frames = m_timePos->text().toInt();
+ else frames = m_monitorManager->timecode().getFrameCount(m_timePos->text());
slotSeek(frames);
}
{
activateMonitor();
checkOverlay();
- m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(pos));
+ if (m_frametimecode) m_timePos->setText(QString::number(pos));
+ else m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(pos));
m_ruler->slotNewValue(pos);
}
}
m_ruler->slotNewValue(pos);
checkOverlay();
- m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(pos));
+ if (m_frametimecode) m_timePos->setText(QString::number(pos));
+ else m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(pos));
m_playAction->setChecked(false);
m_playAction->setIcon(m_playIcon);
}
KdenliveSettings::setDisplayMonitorInfo(show);
if (show) {
if (m_overlay) return;
+#ifndef Q_WS_MAC
m_overlay = new Overlay(m_monitorRefresh);
m_overlay->raise();
m_overlay->setHidden(true);
+#else
+ m_overlay = new Overlay(m_glWidget);
+#endif
} else {
delete m_overlay;
m_overlay = NULL;
}
}
+void Monitor::updateTimecodeFormat()
+{
+ m_frametimecode = KdenliveSettings::frametimecode();
+ if (m_frametimecode) {
+ int frames = m_monitorManager->timecode().getFrameCount(m_timePos->text());
+ m_timePos->setInputMask("999999999");
+ m_timePos->setText(QString::number(frames));
+ } else {
+ int pos = m_timePos->text().toInt();
+ m_timePos->setInputMask("99:99:99:99");
+ m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(pos));
+ }
+}
+
MonitorRefresh::MonitorRefresh(QWidget* parent) : \
QWidget(parent),