m_dragStarted(false),
m_overlay(NULL)
{
- ui.setupUi(this);
+ 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);
- ui.ruler_frame->setLayout(layout);
+ m_ui.ruler_frame->setLayout(layout);
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
setMinimumHeight(200);
QToolBar *toolbar = new QToolBar(name, this);
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(m_timePos, SIGNAL(editingFinished()), this, SLOT(slotSeek()));
layout2->addWidget(toolbar);
- ui.button_frame->setLayout(layout2);
+ m_ui.button_frame->setLayout(layout2);
const int toolHeight = toolbar->height();
- ui.button_frame->setMinimumHeight(toolHeight);
+ m_ui.button_frame->setMinimumHeight(toolHeight);
//m_ruler->setPixelPerMark(3);
- QVBoxLayout *rendererBox = new QVBoxLayout(ui.video_frame);
+ QVBoxLayout *rendererBox = new QVBoxLayout(m_ui.video_frame);
rendererBox->setContentsMargins(0, 0, 0, 0);
- m_monitorRefresh = new MonitorRefresh(ui.video_frame);
+ 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);
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(ui.video_frame->winId(), -1);
+ //render->createVideoXWindow(m_ui.video_frame->winId(), -1);
m_length = 0;
if (name != "clip") {
connect(m_ruler, SIGNAL(zoneChanged(QPoint)), this, SLOT(setClipZone(QPoint)));
}
m_monitorRefresh->show();
- kDebug() << "/////// BUILDING MONITOR, ID: " << ui.video_frame->winId();
+ kDebug() << "/////// BUILDING MONITOR, ID: " << m_ui.video_frame->winId();
}
Monitor::~Monitor()
{
delete m_ruler;
delete m_timePos;
- if (m_overlay) delete m_overlay;
+ delete m_overlay;
delete m_monitorRefresh;
}
height = height * 0.8;
}
kDebug() << "// MONITOR; set SIZE: " << width << ", " << height;
- ui.video_frame->setFixedSize(width, height);
+ m_ui.video_frame->setFixedSize(width, height);
updateGeometry();
adjustSize();
- //ui.video_frame->setMinimumSize(0, 0);
+ //m_ui.video_frame->setMinimumSize(0, 0);
emit adjustMonitorSize();
}
height = height * 0.8;
}
kDebug() << "// MONITOR; set SIZE: " << width << ", " << height;
- ui.video_frame->setFixedSize(width, height);
+ m_ui.video_frame->setFixedSize(width, height);
updateGeometry();
adjustSize();
- //ui.video_frame->setMinimumSize(0, 0);
+ //m_ui.video_frame->setMinimumSize(0, 0);
emit adjustMonitorSize();
}
void Monitor::resetSize()
{
- ui.video_frame->setMinimumSize(0, 0);
+ m_ui.video_frame->setMinimumSize(0, 0);
}
DocClipBase *Monitor::activeClip()
void Monitor::mousePressEvent(QMouseEvent * event)
{
if (event->button() != Qt::RightButton) {
- if (ui.video_frame->underMouse()) {
+ if (m_ui.video_frame->underMouse()) {
m_dragStarted = true;
m_DragStartPosition = event->pos();
}
void Monitor::mouseReleaseEvent(QMouseEvent * event)
{
if (m_dragStarted) {
- if (ui.video_frame->underMouse()) {
+ if (m_ui.video_frame->underMouse()) {
slotPlay();
} else QWidget::mouseReleaseEvent(event);
m_dragStarted = false;
QPixmap frame = render->extractFrame(m_position);
QString outputFile = KFileDialog::getSaveFileName(KUrl(), "image/png");
if (!outputFile.isEmpty()) {
- if (QFile::exists(outputFile) && KMessageBox::questionYesNo(this, i18n("File already exists.\nDo you want to overwrite it ?")) == KMessageBox::No) return;
+ if (QFile::exists(outputFile) && KMessageBox::questionYesNo(this, i18n("File already exists.\nDo you want to overwrite it?")) == KMessageBox::No) return;
frame.save(outputFile);
}
}
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();
render->play(0);
if (m_position < 1) return;
- m_position -= diff;
- m_position = qMax(m_position, 0);
+ /*
+ * freebsd needs this hack to upgrade m_position value:
+ * http://www.kdenlive.org/mantis/view.php?id=491
+ */
+ int position = m_position - diff;
+ m_position = qMax(position, 0);
render->seekToFrame(m_position);
emit renderPosition(m_position);
m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(m_position));
void Monitor::initMonitor()
{
- kDebug() << "/////// INITING MONITOR, ID: " << ui.video_frame->winId();
+ kDebug() << "/////// INITING MONITOR, ID: " << m_ui.video_frame->winId();
}
// virtual
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_overlay = new Overlay(m_monitorRefresh);
m_overlay->raise();
m_overlay->setHidden(true);
- } else if (m_overlay) {
+ } else {
delete m_overlay;
m_overlay = NULL;
}