Monitor::Monitor(QString name, MonitorManager *manager, QWidget *parent) :
QWidget(parent),
render(NULL),
- m_monitorManager(manager),
m_name(name),
- m_isActive(false),
+ m_monitorManager(manager),
m_currentClip(NULL),
- m_dragStarted(false),
- m_overlay(NULL)
+ m_ruler(new SmallRuler()),
+ m_overlay(NULL),
+ m_isActive(false),
+ m_scale(1),
+ m_length(0),
+ m_position(-1),
+ m_dragStarted(false)
{
m_ui.setupUi(this);
- m_scale = 1;
- m_ruler = new SmallRuler();
QVBoxLayout *layout = new QVBoxLayout;
layout->setContentsMargins(0, 0, 0, 0);
layout->addWidget(m_ruler);
m_playIcon = KIcon("media-playback-start");
m_pauseIcon = KIcon("media-playback-pause");
- toolbar->addAction(KIcon("kdenlive-zone-start"), i18n("Set zone start"), this, SLOT(slotSetZoneStart()));
- toolbar->addAction(KIcon("kdenlive-zone-end"), i18n("Set zone end"), this, SLOT(slotSetZoneEnd()));
+ if (name != "chapter") {
+ toolbar->addAction(KIcon("kdenlive-zone-start"), i18n("Set zone start"), this, SLOT(slotSetZoneStart()));
+ toolbar->addAction(KIcon("kdenlive-zone-end"), i18n("Set zone end"), this, SLOT(slotSetZoneEnd()));
+ } else m_ruler->setZone(-3, -2);
toolbar->addAction(KIcon("media-seek-backward"), i18n("Rewind"), this, SLOT(slotRewind()));
toolbar->addAction(KIcon("media-skip-backward"), i18n("Rewind 1 frame"), this, SLOT(slotRewindOneFrame()));
playButton->setDefaultAction(m_playAction);
- QToolButton *configButton = new QToolButton(toolbar);
- m_configMenu = new QMenu(i18n("Misc..."), this);
- configButton->setIcon(KIcon("system-run"));
- configButton->setMenu(m_configMenu);
- configButton->setPopupMode(QToolButton::QToolButton::InstantPopup);
- toolbar->addWidget(configButton);
+ if (name != "chapter") {
+ QToolButton *configButton = new QToolButton(toolbar);
+ m_configMenu = new QMenu(i18n("Misc..."), this);
+ configButton->setIcon(KIcon("system-run"));
+ configButton->setMenu(m_configMenu);
+ configButton->setPopupMode(QToolButton::QToolButton::InstantPopup);
+ toolbar->addWidget(configButton);
+ m_configMenu->addAction(KIcon("transform-scale"), i18n("Resize (100%)"), this, SLOT(slotSetSizeOneToOne()));
+ m_configMenu->addAction(KIcon("transform-scale"), i18n("Resize (50%)"), this, SLOT(slotSetSizeOneToTwo()));
+ }
QWidget *spacer = new QWidget(this);
spacer->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
connect(render, SIGNAL(rendererPosition(int)), this, SLOT(seekCursor(int)));
connect(render, SIGNAL(rendererStopped(int)), this, SLOT(rendererStopped(int)));
- m_configMenu->addSeparator();
- m_configMenu->addAction(KIcon("transform-scale"), i18n("Resize (100%)"), this, SLOT(slotSetSizeOneToOne()));
- m_configMenu->addAction(KIcon("transform-scale"), i18n("Resize (50%)"), this, SLOT(slotSetSizeOneToTwo()));
//render->createVideoXWindow(m_ui.video_frame->winId(), -1);
- m_length = 0;
if (name != "clip") {
connect(render, SIGNAL(rendererPosition(int)), this, SIGNAL(renderPosition(int)));
if (!m_isActive) m_monitorManager->switchMonitors(); //m_monitorManager->activateMonitor(m_name);
}
+void Monitor::setTimePos(const QString &pos)
+{
+ m_timePos->setText(pos);
+ slotSeek();
+}
+
void Monitor::slotSeek()
{
const int frames = m_monitorManager->timecode().getFrameCount(m_timePos->text(), m_monitorManager->timecode().fps());
activateMonitor();
if (render == NULL) return;
m_position = pos;
- checkOverlay();
render->seekToFrame(pos);
emit renderPosition(m_position);
- m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(m_position));
}
void Monitor::checkOverlay()
m_position = 0;
render->seekToFrame(m_position);
emit renderPosition(m_position);
- m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(m_position));
}
void Monitor::slotEnd()
m_position = render->getLength();
render->seekToFrame(m_position);
emit renderPosition(m_position);
- m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(m_position));
}
void Monitor::slotZoneStart()
m_position = m_ruler->zone().x();
render->seekToFrame(m_position);
emit renderPosition(m_position);
- m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(m_position));
}
void Monitor::slotZoneEnd()
m_position = m_ruler->zone().y();
render->seekToFrame(m_position);
emit renderPosition(m_position);
- m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(m_position));
}
void Monitor::slotRewind(double speed)
m_position = qMax(position, 0);
render->seekToFrame(m_position);
emit renderPosition(m_position);
- m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(m_position));
- checkOverlay();
}
void Monitor::slotForwardOneFrame(int diff)
m_position = qMin(m_position, m_length);
render->seekToFrame(m_position);
emit renderPosition(m_position);
- m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(m_position));
- checkOverlay();
}
void Monitor::seekCursor(int pos)
//int rulerPos = (int)(pos * m_scale);
m_ruler->slotNewValue(pos);
m_position = pos;
- //checkOverlay();
+ checkOverlay();
m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(pos));
m_playAction->setChecked(false);
m_playAction->setIcon(m_playIcon);
if (render == NULL) return;
activateMonitor();
QDomDocument doc;
- QDomElement westley = doc.createElement("westley");
- doc.appendChild(westley);
+ QDomElement mlt = doc.createElement("mlt");
+ doc.appendChild(mlt);
QDomElement prod = doc.createElement("producer");
- westley.appendChild(prod);
+ mlt.appendChild(prod);
prod.setAttribute("mlt_service", "avformat");
prod.setAttribute("resource", file);
render->setSceneList(doc, 0);
m_renderer(NULL)
{
setAttribute(Qt::WA_PaintOnScreen);
- setAttribute(Qt::WA_OpaquePaintEvent); //setAttribute(Qt::WA_NoSystemBackground);
+ setAttribute(Qt::WA_OpaquePaintEvent);
+ //setAttribute(Qt::WA_NoSystemBackground);
}
void MonitorRefresh::setRenderer(Render* render)