From 2ab823a1179756a6f3b37848e422c94fe93e4740 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Sun, 10 Mar 2013 12:48:52 +0100 Subject: [PATCH] Move mlt interlace and rescale into main menu --- src/kdenliveui.rc | 4 ++- src/mainwindow.cpp | 65 ++++++++++++++++++++++++++++++++++++++++++++ src/mainwindow.h | 4 +++ src/monitor.cpp | 67 ---------------------------------------------- src/monitor.h | 2 -- 5 files changed, 72 insertions(+), 70 deletions(-) diff --git a/src/kdenliveui.rc b/src/kdenliveui.rc index 87aeff61..5019601e 100644 --- a/src/kdenliveui.rc +++ b/src/kdenliveui.rc @@ -1,6 +1,6 @@ - + Extra Toolbar @@ -158,6 +158,8 @@ + + diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 517f31c2..bae50b8f 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1334,6 +1334,30 @@ void MainWindow::setupActions() fullMon->setText(i18n("Switch monitor fullscreen")); fullMon->setIcon(KIcon("view-fullscreen")); connect(fullMon, SIGNAL(triggered(bool)), m_monitorManager, SLOT(slotSwitchFullscreen())); + + KSelectAction *interlace = new KSelectAction(i18n("Deinterlacer"), this); + interlace->addAction(i18n("One Field (fast)")); + interlace->addAction(i18n("Linear Blend (fast)")); + interlace->addAction(i18n("YADIF - temporal only (good)")); + interlace->addAction(i18n("YADIF - temporal + spacial (best)")); + if (KdenliveSettings::mltdeinterlacer() == "linearblend") interlace->setCurrentItem(1); + else if (KdenliveSettings::mltdeinterlacer() == "yadif-temporal") interlace->setCurrentItem(2); + else if (KdenliveSettings::mltdeinterlacer() == "yadif") interlace->setCurrentItem(3); + else interlace->setCurrentItem(0); + collection.addAction("mlt_interlace", interlace); + connect(interlace, SIGNAL(triggered(int)), this, SLOT(slotSetDeinterlacer(int))); + + KSelectAction *interpol = new KSelectAction(i18n("Interpolation"), this); + interpol->addAction(i18n("Nearest Neighbor (fast)")); + interpol->addAction(i18n("Bilinear (good)")); + interpol->addAction(i18n("Bicubic (better)")); + interpol->addAction(i18n("Hyper/Lanczos (best)")); + if (KdenliveSettings::mltinterpolation() == "bilinear") interpol->setCurrentItem(1); + else if (KdenliveSettings::mltinterpolation() == "bicubic") interpol->setCurrentItem(2); + else if (KdenliveSettings::mltinterpolation() == "hyper") interpol->setCurrentItem(3); + else interpol->setCurrentItem(0); + collection.addAction("mlt_interpolation", interpol); + connect(interpol, SIGNAL(triggered(int)), this, SLOT(slotSetInterpolation(int))); KAction *insertTree = collection.addAction("insert_project_tree"); insertTree->setText(i18n("Insert zone in project tree")); @@ -4663,6 +4687,47 @@ void MainWindow::slotAlignPlayheadToMousePos() m_activeTimeline->projectView()->slotAlignPlayheadToMousePos(); } +void MainWindow::slotSetDeinterlacer(int ix) +{ + QString value; + switch (ix) { + + case 1: + value = "linearblend"; + break; + case 2: + value = "yadif-nospatial"; + break; + case 3: + value = "yadif"; + break; + default: + value = "onefield"; + } + KdenliveSettings::setMltdeinterlacer(value); + m_monitorManager->setConsumerProperty("deinterlace_method", value); +} + +void MainWindow::slotSetInterpolation(int ix) +{ + QString value; + switch (ix) { + case 1: + value = "bilinear"; + break; + case 2: + value = "bicubic"; + break; + case 3: + value = "hyper"; + break; + default: + value = "nearest"; + } + KdenliveSettings::setMltinterpolation(value); + m_monitorManager->setConsumerProperty("rescale", value); +} + #include "mainwindow.moc" #ifdef DEBUG_MAINW diff --git a/src/mainwindow.h b/src/mainwindow.h index acba2873..d4d76084 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -570,6 +570,10 @@ private slots: void slotProcessImportKeyframes(GRAPHICSRECTITEM type, const QString& data, int maximum); /** @brief Move playhead to mouse curser position if defined key is pressed */ void slotAlignPlayheadToMousePos(); + /** @brief Set MLT's consumer deinterlace method */ + void slotSetDeinterlacer(int ix); + /** @brief Set MLT's consumer interpolation method */ + void slotSetInterpolation(int ix); signals: Q_SCRIPTABLE void abortRenderJob(const QString &url); diff --git a/src/monitor.cpp b/src/monitor.cpp index 4c3fd13e..34f1c7bd 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -290,28 +290,6 @@ void Monitor::setupMenu(QMenu *goMenu, QAction *playZone, QAction *loopZone, QMe showTips->setCheckable(true); connect(showTips, SIGNAL(toggled(bool)), this, SLOT(slotSwitchMonitorInfo(bool))); showTips->setChecked(KdenliveSettings::displayMonitorInfo()); - - KSelectAction *interlace = new KSelectAction(i18n("Deinterlacer"), this); - interlace->addAction(i18n("One Field (fast)")); - interlace->addAction(i18n("Linear Blend (fast)")); - interlace->addAction(i18n("YADIF - temporal only (good)")); - interlace->addAction(i18n("YADIF - temporal + spacial (best)")); - if (KdenliveSettings::mltdeinterlacer() == "linearblend") interlace->setCurrentItem(1); - else if (KdenliveSettings::mltdeinterlacer() == "yadif-temporal") interlace->setCurrentItem(2); - else if (KdenliveSettings::mltdeinterlacer() == "yadif") interlace->setCurrentItem(3); - else interlace->setCurrentItem(0); - connect(interlace, SIGNAL(triggered(int)), this, SLOT(slotSetDeinterlacer(int))); - - KSelectAction *interpol = new KSelectAction(i18n("Interpolation"), this); - interpol->addAction(i18n("Nearest Neighbor (fast)")); - interpol->addAction(i18n("Bilinear (good)")); - interpol->addAction(i18n("Bicubic (better)")); - interpol->addAction(i18n("Hyper/Lanczos (best)")); - if (KdenliveSettings::mltinterpolation() == "bilinear") interpol->setCurrentItem(1); - else if (KdenliveSettings::mltinterpolation() == "bicubic") interpol->setCurrentItem(2); - else if (KdenliveSettings::mltinterpolation() == "hyper") interpol->setCurrentItem(3); - else interpol->setCurrentItem(0); - connect(interpol, SIGNAL(triggered(int)), this, SLOT(slotSetInterpolation(int))); QAction *dropFrames = m_contextMenu->addAction(KIcon(), i18n("Real time (drop frames)")); dropFrames->setCheckable(true); @@ -320,9 +298,6 @@ void Monitor::setupMenu(QMenu *goMenu, QAction *playZone, QAction *loopZone, QMe m_configMenu->addAction(showTips); m_configMenu->addAction(dropFrames); - m_configMenu->addAction(interlace); - m_configMenu->addAction(interpol); - } void Monitor::slotGoToMarker(QAction *action) @@ -1006,48 +981,6 @@ void Monitor::slotSwitchDropFrames(bool show) render->setDropFrames(show); } -void Monitor::slotSetDeinterlacer(int ix) -{ - QString value; - switch (ix) { - - case 1: - value = "linearblend"; - break; - case 2: - value = "yadif-nospatial"; - break; - case 3: - value = "yadif"; - break; - default: - value = "onefield"; - } - KdenliveSettings::setMltdeinterlacer(value); - m_monitorManager->setConsumerProperty("deinterlace_method", value); -} - -void Monitor::slotSetInterpolation(int ix) -{ - QString value; - switch (ix) { - case 1: - value = "bilinear"; - break; - case 2: - value = "bicubic"; - break; - case 3: - value = "hyper"; - break; - default: - value = "nearest"; - } - KdenliveSettings::setMltinterpolation(value); - m_monitorManager->setConsumerProperty("rescale", value); -} - - void Monitor::slotSwitchMonitorInfo(bool show) { KdenliveSettings::setDisplayMonitorInfo(show); diff --git a/src/monitor.h b/src/monitor.h index 1de74ffa..c7821273 100644 --- a/src/monitor.h +++ b/src/monitor.h @@ -170,8 +170,6 @@ private slots: void setClipZone(QPoint pos); void slotSwitchMonitorInfo(bool show); void slotSwitchDropFrames(bool show); - void slotSetDeinterlacer(int ix); - void slotSetInterpolation(int ix); void slotGoToMarker(QAction *action); void slotSetVolume(int volume); void slotShowVolume(); -- 2.39.2