]> git.sesse.net Git - kdenlive/commitdiff
Fix Dvd wizard monitor layout and loading issues
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 30 Dec 2012 22:54:17 +0000 (23:54 +0100)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 30 Dec 2012 22:54:17 +0000 (23:54 +0100)
src/dvdwizard.cpp
src/dvdwizard.h
src/dvdwizardchapters.cpp
src/dvdwizardchapters.h
src/mainwindow.cpp
src/monitor.cpp
src/renderer.cpp
src/renderer.h
src/widgets/dvdwizardchapters_ui.ui

index a5421b38affcf33253117c796084448b4e9e1e43..6af065e54d5343cd89c4014a0e9c27e49debaa67 100644 (file)
@@ -40,7 +40,7 @@
 #include <QGridLayout>
 
 
-DvdWizard::DvdWizard(const QString &url, QWidget *parent) :
+DvdWizard::DvdWizard(MonitorManager *manager, const QString &url, QWidget *parent) :
         QWizard(parent),
         m_dvdauthor(NULL),
         m_mkiso(NULL),
@@ -54,7 +54,7 @@ DvdWizard::DvdWizard(const QString &url, QWidget *parent) :
     if (!url.isEmpty()) m_pageVob->setUrl(url);
 
 
-    m_pageChapters = new DvdWizardChapters(m_pageVob->dvdFormat(), this);
+    m_pageChapters = new DvdWizardChapters(manager, m_pageVob->dvdFormat(), this);
     m_pageChapters->setTitle(i18n("DVD Chapters"));
     addPage(m_pageChapters);
 
index 8ec8a6f23f44226299bd07208b3a1e15bb2980f5..b1f2e25b32f421db83bb4a5c06214f99753e3926 100644 (file)
@@ -41,7 +41,7 @@ class DvdWizard : public QWizard
 {
     Q_OBJECT
 public:
-    explicit DvdWizard(const QString &url = QString(), QWidget * parent = 0);
+    explicit DvdWizard(MonitorManager *manager, const QString &url = QString(), QWidget * parent = 0);
     virtual ~DvdWizard();
     void processSpumux();
 
index ebd9d38e838a1d9dd36743c4213b9750affbe3b5..12dee110cf591118b411b52558229d73a3b99db2 100644 (file)
 
 #include <QFile>
 
-DvdWizardChapters::DvdWizardChapters(DVDFORMAT format, QWidget *parent) :
+DvdWizardChapters::DvdWizardChapters(MonitorManager *manager, DVDFORMAT format, QWidget *parent) :
         QWizardPage(parent),
         m_format(format),
-        m_monitor(NULL)
+        m_monitor(NULL),
+        m_manager(manager)
 
 {
     m_view.setupUi(this);
@@ -39,9 +40,9 @@ DvdWizardChapters::DvdWizardChapters(DVDFORMAT format, QWidget *parent) :
 
     if (m_format == PAL || m_format == PAL_WIDE) m_tc.setFormat(25);
     else m_tc.setFormat(30000.0 / 1001);
+    show();
+    setVobFiles(format, QStringList(), QStringList(), QStringList());
 
-    m_manager = new MonitorManager(this);
-    m_manager->resetProfiles(m_tc);
     //m_view.monitor_frame->setVisible(false);
 }
 
@@ -51,7 +52,6 @@ DvdWizardChapters::~DvdWizardChapters()
         m_monitor->stop();
         delete m_monitor;
     }
-    delete m_manager;
 }
 
 // virtual
@@ -143,16 +143,17 @@ void DvdWizardChapters::setVobFiles(DVDFORMAT format, const QStringList &movies,
     } else {
         m_tc.setFormat(30000.0 / 1001);
     }
-    m_manager->resetProfiles(m_tc);
     if (m_monitor == NULL) {
         m_monitor = new Monitor(Kdenlive::dvdMonitor, m_manager, profile, this);
         //m_monitor->start();
-        QVBoxLayout *vbox = new QVBoxLayout;
+        /*QVBoxLayout *vbox = new QVBoxLayout;
         vbox->addWidget(m_monitor);
-        m_view.monitor_frame->setLayout(vbox);
-        /*updateGeometry();
-        m_view.monitor_frame->adjustSize();*/
+        m_view.monitor_frame->setLayout(vbox);*/
+       QVBoxLayout *lay = static_cast<QVBoxLayout *> (layout());
+       m_monitor->setSizePolicy(QSizePolicy ( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));
+       lay->insertWidget(0, m_monitor, 10);
     } else m_monitor->resetProfile(profile);
+    m_manager->activateMonitor(Kdenlive::dvdMonitor);
 
     m_view.vob_list->blockSignals(true);
     m_view.vob_list->clear();
index d8afa4e9d9cc6ad484809d6c42f23da223dda796..245755d9a18fd03bd029a197f93abf9e54f850fb 100644 (file)
@@ -35,7 +35,7 @@ class DvdWizardChapters : public QWizardPage
     Q_OBJECT
 
 public:
-    explicit DvdWizardChapters(DVDFORMAT format, QWidget * parent = 0);
+    explicit DvdWizardChapters(MonitorManager *manager, DVDFORMAT format, QWidget * parent = 0);
     virtual ~DvdWizardChapters();
     virtual bool isComplete() const;
     void changeProfile(DVDFORMAT format);
@@ -51,8 +51,8 @@ public:
 private:
     Ui::DvdWizardChapters_UI m_view;
     DVDFORMAT m_format;
-    MonitorManager *m_manager;
     Monitor *m_monitor;
+    MonitorManager *m_manager;
     Timecode m_tc;
 
 
index 88d8fa7f26ea0421dc825f9b0dce15e90d0524de..c41f2ed903e8b94a38e5d95b9a170d0965bd1b35 100644 (file)
@@ -3903,11 +3903,9 @@ void MainWindow::slotUpdateClipType(QAction *action)
 void MainWindow::slotDvdWizard(const QString &url)
 {
     // We must stop the monitors since we create a new on in the dvd wizard
-    m_clipMonitor->stop();
-    m_projectMonitor->stop();
-    QPointer<DvdWizard> w = new DvdWizard(url, this);
+    m_monitorManager->activateMonitor(Kdenlive::dvdMonitor);
+    QPointer<DvdWizard> w = new DvdWizard(m_monitorManager, url, this);
     w->exec();
-    m_projectMonitor->start();
     delete w;
 }
 
index d0f24fcf284a8444f049f7444fc96e54cad168d2..aa3076b8d1deb6944f7f649fd43aec87389dfc68 100644 (file)
@@ -893,14 +893,7 @@ void Monitor::slotOpenFile(const QString &file)
 {
     if (render == NULL) return;
     slotActivateMonitor();
-    QDomDocument doc;
-    QDomElement mlt = doc.createElement("mlt");
-    doc.appendChild(mlt);
-    QDomElement prod = doc.createElement("producer");
-    mlt.appendChild(prod);
-    prod.setAttribute("mlt_service", "avformat");
-    prod.setAttribute("resource", file);
-    render->setSceneList(doc, 0);
+    render->loadUrl(file);
 }
 
 void Monitor::slotSaveZone()
index a821dbbfc5505d1952f45333a13bd95a11c6381b..79873c2ba5eb1e28fd9400409d9268c3a62485b4 100644 (file)
@@ -1141,6 +1141,12 @@ void Render::initSceneList()
 }
 #endif
 
+void Render::loadUrl(const QString &url)
+{
+    Mlt::Producer *producer = new Mlt::Producer(*m_mltProfile, url.toUtf8().constData());
+    setProducer(producer, 0);
+}
+
 int Render::setProducer(Mlt::Producer *producer, int position)
 {
     m_refreshTimer.stop();
index 3d05de8e24eaa1b3627dea7a1090c7b852768606..28e317c6981dad5382b76b115c1601814ec64fa0 100644 (file)
@@ -333,6 +333,9 @@ Q_OBJECT public:
     int requestedSeekPosition;
     /** @brief Get current seek pos requested of current producer pos if not seeking */
     int getCurrentSeekPosition() const;
+    /** @brief Create a producer from url and load it in the monitor  */
+    void loadUrl(const QString &url);
+    
     QSemaphore showFrameSemaphore;
     bool externalConsumer;
 
index 52671e214c84d1805259f58688cf4aa82b08c534..20234d441b25b8ca08762d8fbea7ce4111acf5cc 100644 (file)
@@ -6,68 +6,32 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>254</width>
-    <height>283</height>
+    <width>247</width>
+    <height>182</height>
    </rect>
   </property>
-  <layout class="QGridLayout" name="gridLayout">
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>-1</number>
+   </property>
    <property name="margin">
     <number>0</number>
    </property>
-   <item row="1" column="0">
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>Movie file</string>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="1" colspan="4">
-    <widget class="KComboBox" name="vob_list"/>
-   </item>
-   <item row="3" column="0" colspan="2">
-    <widget class="QPushButton" name="button_add">
-     <property name="text">
-      <string>Add chapter</string>
-     </property>
-    </widget>
-   </item>
-   <item row="3" column="2">
-    <widget class="QPushButton" name="button_delete">
-     <property name="text">
-      <string>Remove chapter</string>
-     </property>
-    </widget>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_2">
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Movie file</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="KComboBox" name="vob_list"/>
+     </item>
+    </layout>
    </item>
-   <item row="3" column="3">
-    <spacer name="horizontalSpacer">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>79</width>
-       <height>22</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item row="0" column="0" colspan="4">
-    <widget class="QFrame" name="monitor_frame">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="frameShape">
-      <enum>QFrame::StyledPanel</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Raised</enum>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="0" colspan="5">
+   <item>
     <widget class="QListWidget" name="chapters_list">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Maximum">
      </property>
     </widget>
    </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QPushButton" name="button_add">
+       <property name="text">
+        <string>Add chapter</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="button_delete">
+       <property name="text">
+        <string>Remove chapter</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>79</width>
+         <height>22</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
   </layout>
  </widget>
  <customwidgets>