#include <QVBoxLayout>
-Monitor::Monitor(QString name, MonitorManager *manager, QString profile, QWidget *parent) :
- AbstractMonitor(parent),
+Monitor::Monitor(Kdenlive::MONITORID id, MonitorManager *manager, QString profile, QWidget *parent) :
+ AbstractMonitor(id, parent),
render(NULL),
- m_name(name),
m_monitorManager(manager),
m_currentClip(NULL),
m_ruler(new SmallRuler(m_monitorManager)),
m_length(0),
m_dragStarted(false),
m_monitorRefresh(NULL),
+ m_contextMenu(NULL),
m_effectWidget(NULL),
m_selectedClip(NULL),
m_loopClipTransition(true),
// Monitor ruler
layout->addWidget(m_ruler);
// Tool bar buttons
- m_toolbar = new QToolBar(name, this);
+ m_toolbar = new QToolBar(this);
m_toolbar->setIconSize(QSize(s, s));
m_playIcon = KIcon("media-playback-start");
m_pauseIcon = KIcon("media-playback-pause");
- if (name != "chapter") {
+ if (id != Kdenlive::dvdMonitor) {
m_toolbar->addAction(KIcon("kdenlive-zone-start"), i18n("Set zone start"), this, SLOT(slotSetZoneStart()));
m_toolbar->addAction(KIcon("kdenlive-zone-end"), i18n("Set zone end"), this, SLOT(slotSetZoneEnd()));
} else {
playButton->setDefaultAction(m_playAction);
- if (name != "chapter") {
+ if (id != Kdenlive::dvdMonitor) {
QToolButton *configButton = new QToolButton(m_toolbar);
m_configMenu = new QMenu(i18n("Misc..."), this);
configButton->setIcon(KIcon("system-run"));
configButton->setPopupMode(QToolButton::QToolButton::InstantPopup);
m_toolbar->addWidget(configButton);
- if (name == Kdenlive::clipMonitor) {
+ if (id == Kdenlive::clipMonitor) {
m_markerMenu = new QMenu(i18n("Go to marker..."), this);
m_markerMenu->setEnabled(false);
m_configMenu->addMenu(m_markerMenu);
m_monitorRefresh = new MonitorRefresh;
lay->addWidget(m_monitorRefresh);
m_videoBox->setLayout(lay);
- render = new Render(m_name, (int) m_monitorRefresh->winId(), profile, this);
+ render = new Render(m_id, (int) m_monitorRefresh->winId(), profile, this);
m_monitorRefresh->setRenderer(render);
}
#ifdef USE_OPENGL
connect(render, SIGNAL(rendererStopped(int)), this, SLOT(rendererStopped(int)));
connect(render, SIGNAL(rendererPosition(int)), this, SLOT(seekCursor(int)));
- if (name != Kdenlive::clipMonitor) {
+ if (id != Kdenlive::clipMonitor) {
connect(render, SIGNAL(rendererPosition(int)), this, SIGNAL(renderPosition(int)));
connect(render, SIGNAL(durationChanged(int)), this, SIGNAL(durationChanged(int)));
connect(m_ruler, SIGNAL(zoneChanged(QPoint)), this, SIGNAL(zoneUpdated(QPoint)));
if (m_monitorRefresh) m_monitorRefresh->show();
- if (name == Kdenlive::projectMonitor) {
+ if (id == Kdenlive::projectMonitor) {
m_effectWidget = new MonitorEditWidget(render, m_videoBox);
m_toolbar->addAction(m_effectWidget->getVisibilityAction());
lay->addWidget(m_effectWidget);
return m_videoBox;
}
-const QString Monitor::name() const
-{
- return m_name;
-}
-
#ifdef USE_OPENGL
bool Monitor::createOpenGlWidget(QWidget *parent, const QString profile)
{
- render = new Render(m_name, 0, profile, this);
+ render = new Render(id(), 0, profile, this);
m_glWidget = new VideoGLWidget(parent);
if (m_glWidget == NULL) {
// Creation failed, we are in trouble...
}
//TODO: add save zone to timeline monitor when fixed
- if (m_name == Kdenlive::clipMonitor) {
+ if (m_id == Kdenlive::clipMonitor) {
m_contextMenu->addMenu(m_markerMenu);
m_contextMenu->addAction(KIcon("document-save"), i18n("Save zone"), this, SLOT(slotSaveZone()));
QAction *extractZone = m_configMenu->addAction(KIcon("document-new"), i18n("Extract Zone"), this, SLOT(slotExtractCurrentZone()));
QAction *extractFrame = m_configMenu->addAction(KIcon("document-new"), i18n("Extract frame"), this, SLOT(slotExtractCurrentFrame()));
m_contextMenu->addAction(extractFrame);
- if (m_name != Kdenlive::clipMonitor) {
+ if (m_id != Kdenlive::clipMonitor) {
QAction *splitView = m_contextMenu->addAction(KIcon("view-split-left-right"), i18n("Split view"), render, SLOT(slotSplitView(bool)));
splitView->setCheckable(true);
m_configMenu->addAction(splitView);
m_dragStarted = true;
m_DragStartPosition = event->pos();
}
- } else if (!m_effectWidget || !m_effectWidget->isVisible()) {
+ } else if (m_contextMenu && (!m_effectWidget || !m_effectWidget->isVisible())) {
m_contextMenu->popup(event->globalPos());
}
}
bool Monitor::isActive() const
{
- return m_monitorManager->isActive(m_name);
+ return m_monitorManager->isActive(m_id);
}
bool Monitor::activateMonitor()
{
- return m_monitorManager->activateMonitor(m_name);
+ return m_monitorManager->activateMonitor(m_id);
}
void Monitor::setTimePos(const QString &pos)
void Monitor::slotEffectScene(bool show)
{
- if (m_name == Kdenlive::projectMonitor) {
+ if (m_id == Kdenlive::projectMonitor) {
if (m_monitorRefresh) {
m_monitorRefresh->setVisible(!show);
} else {