]> git.sesse.net Git - kdenlive/commitdiff
Fix intro movie in dvd wizard
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Fri, 2 Nov 2012 18:25:36 +0000 (19:25 +0100)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Fri, 2 Nov 2012 18:25:36 +0000 (19:25 +0100)
src/dvdwizard.cpp
src/dvdwizardmenu.cpp
src/dvdwizardvob.cpp
src/dvdwizardvob.h
src/widgets/dvdwizardvob_ui.ui

index 028b18fc882a09e3b55fa31f8b5f7299427ac9f4..8d46cb9d61c63f19a6384af5997cb704c3dd8423 100644 (file)
@@ -537,7 +537,7 @@ void DvdWizard::generateDvd()
     auth.appendChild(vmgm);
 
     if (m_pageMenu->createMenu() && !m_pageVob->introMovie().isEmpty()) {
-        // intro movie
+        // Use first movie in list as intro movie
         QDomElement menus = dvddoc.createElement("menus");
         vmgm.appendChild(menus);
         QDomElement pgc = dvddoc.createElement("pgc");
@@ -614,16 +614,17 @@ void DvdWizard::generateDvd()
            break;
        case NTSC:
            video.setAttribute("format", "ntsc");
+           video.setAttribute("aspect", "4:3");
            break;
        default:
            video.setAttribute("format", "pal");
+           video.setAttribute("aspect", "4:3");
            break;
     }
 
-    QStringList voburls = m_pageVob->selectedUrls();
-
     QDomElement pgc2;
-
+    // Get list of clips
+    QStringList voburls = m_pageVob->selectedUrls();
 
     for (int i = 0; i < voburls.count(); i++) {
         if (!voburls.at(i).isEmpty()) {
@@ -931,7 +932,6 @@ void DvdWizard::slotSave()
     dvdproject.setAttribute("profile", m_pageVob->dvdProfile());
     dvdproject.setAttribute("tmp_folder", m_status.tmp_folder->url().path());
     dvdproject.setAttribute("iso_image", m_status.iso_image->url().path());
-
     dvdproject.setAttribute("intro_movie", m_pageVob->introMovie());
 
     doc.appendChild(dvdproject);
@@ -974,7 +974,11 @@ void DvdWizard::slotLoad()
 
     m_status.tmp_folder->setUrl(KUrl(dvdproject.attribute("tmp_folder")));
     m_status.iso_image->setUrl(KUrl(dvdproject.attribute("iso_image")));
-    m_pageVob->setIntroMovie(dvdproject.attribute("intro_movie"));
+    QString intro = dvdproject.attribute("intro_movie");
+    if (!intro.isEmpty()) {
+       m_pageVob->slotAddVobFile(KUrl(intro));
+       m_pageVob->setUseIntroMovie(true);
+    }
 
     QDomNodeList vobs = doc.elementsByTagName("vob");
     m_pageVob->clear();
index ca8af2a85828e827c21055a67007aef84ccd351b..b922bf9c4e374c02bee6880da8ceb4983a9b2b15 100644 (file)
@@ -453,8 +453,9 @@ void DvdWizardMenu::buildImage()
     } else if (m_view.background_list->currentIndex() == 2) {
         // video background
         m_movieLength = -1;
-       Mlt::Profile profile;
-       profile.set_explicit(false);
+       QString profileName = DvdWizardVob::getDvdProfile(m_format);
+       Mlt::Profile profile(profileName.toUtf8().constData());
+       profile.set_explicit(true);
        Mlt::Producer *producer = new Mlt::Producer(profile, m_view.background_image->url().path().toUtf8().data());
        if (producer && producer->is_valid()) {
            pix = QPixmap::fromImage(KThumb::getFrame(producer, 0, m_finalSize.width(), m_width, m_height));
index 4f058e2bae874700f4e18acd3cefb29c394fbc3b..dc268ab866c0471b07dc032884e9f866fce8fac7 100644 (file)
@@ -69,8 +69,6 @@ DvdWizardVob::DvdWizardVob(QWidget *parent) :
         m_installCheck(true)
 {
     m_view.setupUi(this);
-    m_view.intro_vob->setEnabled(false);
-    m_view.intro_vob->setFilter("video/mpeg");
     m_view.button_add->setIcon(KIcon("list-add"));
     m_view.button_delete->setIcon(KIcon("list-remove"));
     m_view.button_up->setIcon(KIcon("go-up"));
@@ -84,8 +82,6 @@ DvdWizardVob::DvdWizardVob(QWidget *parent) :
 
     connect(m_vobList, SIGNAL(addClips(QList<QUrl>)), this, SLOT(slotAddVobList(QList<QUrl>)));
     connect(m_vobList, SIGNAL(addNewClip()), this, SLOT(slotAddVobFile()));
-    
-    connect(m_view.use_intro, SIGNAL(toggled(bool)), m_view.intro_vob, SLOT(setEnabled(bool)));
     connect(m_view.button_add, SIGNAL(clicked()), this, SLOT(slotAddVobFile()));
     connect(m_view.button_delete, SIGNAL(clicked()), this, SLOT(slotDeleteVobFile()));
     connect(m_view.button_up, SIGNAL(clicked()), this, SLOT(slotItemUp()));
@@ -306,7 +302,12 @@ QStringList DvdWizardVob::selectedUrls() const
     QStringList result;
     QString path;
     int max = m_vobList->topLevelItemCount();
-    for (int i = 0; i < max; i++) {
+    int i = 0;
+    if (m_view.use_intro->isChecked()) {
+       // First movie is only for intro
+       i = 1;
+    }
+    for (; i < max; i++) {
         QTreeWidgetItem *item = m_vobList->topLevelItem(i);
         if (item) result.append(item->text(0));
     }
@@ -359,20 +360,18 @@ int DvdWizardVob::duration(int ix) const
     return result;
 }
 
-
-QString DvdWizardVob::introMovie() const
+const QString DvdWizardVob::introMovie() const
 {
-    if (!m_view.use_intro->isChecked()) return QString();
-    return m_view.intro_vob->url().path();
+    QString url;
+    if (m_view.use_intro->isChecked() && m_vobList->topLevelItemCount() > 0) url = m_vobList->topLevelItem(0)->text(0);
+    return url;
 }
 
-void DvdWizardVob::setIntroMovie(const QString& path)
+void DvdWizardVob::setUseIntroMovie(bool use)
 {
-    m_view.intro_vob->setUrl(KUrl(path));
-    m_view.use_intro->setChecked(path.isEmpty() == false);
+    m_view.use_intro->setChecked(use);
 }
 
-
 void DvdWizardVob::slotCheckVobList()
 {
     emit completeChanged();
index 6f3ad2a48a5866c08af05cc4cc62a524a6a27db5..a33b562c65a5c2de2098023dd184c4a59c29a385 100644 (file)
@@ -107,7 +107,6 @@ public:
     virtual bool isComplete() const;
     QStringList selectedUrls() const;
     void setUrl(const QString &url);
-    QString introMovie() const;
     DVDFORMAT dvdFormat() const;
     const QString dvdProfile() const;
     int duration(int ix) const;
@@ -115,8 +114,9 @@ public:
     QStringList chapters() const;
     void setProfile(const QString& profile);
     void clear();
+    const QString introMovie() const;
+    void setUseIntroMovie(bool use);
     void updateChapters(QMap <QString, QString> chaptersdata);
-    void setIntroMovie(const QString& path);
     static QString getDvdProfile(DVDFORMAT format);
 
 private:
index 804d84a0ffff4978791f369948959066ec589731..9e409b24e4b925c214d9a6df37d82f423f8827a3 100644 (file)
@@ -6,67 +6,43 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>404</width>
-    <height>261</height>
+    <width>459</width>
+    <height>240</height>
    </rect>
   </property>
   <layout class="QGridLayout" name="gridLayout_2">
    <property name="margin">
     <number>0</number>
    </property>
-   <item row="0" column="2" colspan="6">
-    <widget class="KComboBox" name="dvd_profile"/>
-   </item>
-   <item row="2" column="0" colspan="7">
-    <widget class="QFrame" name="list_frame">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="minimumSize">
-      <size>
-       <width>0</width>
-       <height>20</height>
-      </size>
-     </property>
-     <property name="frameShape">
-      <enum>QFrame::NoFrame</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Raised</enum>
-     </property>
-    </widget>
-   </item>
-   <item row="4" column="4">
-    <widget class="QToolButton" name="button_down">
+   <item row="3" column="2">
+    <widget class="QPushButton" name="button_delete">
      <property name="text">
-      <string>...</string>
+      <string>Remove file</string>
      </property>
     </widget>
    </item>
-   <item row="6" column="0" colspan="8">
-    <widget class="QLabel" name="error_message">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
+   <item row="3" column="5">
+    <widget class="QCheckBox" name="use_intro">
      <property name="text">
-      <string/>
+      <string>Use first movie as Intro</string>
      </property>
     </widget>
    </item>
-   <item row="5" column="0" colspan="8">
+   <item row="4" column="0" colspan="9">
     <widget class="QGroupBox" name="size_box">
      <property name="title">
       <string/>
      </property>
     </widget>
    </item>
-   <item row="4" column="5">
+   <item row="0" column="0" colspan="2">
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>DVD format</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="6">
     <spacer name="horizontalSpacer">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
     </spacer>
    </item>
-   <item row="4" column="3">
-    <widget class="QToolButton" name="button_up">
+   <item row="3" column="7">
+    <widget class="QToolButton" name="button_transcode">
      <property name="text">
       <string>...</string>
      </property>
     </widget>
    </item>
-   <item row="1" column="0" colspan="2">
-    <widget class="QCheckBox" name="use_intro">
-     <property name="text">
-      <string>Intro movie</string>
-     </property>
-    </widget>
+   <item row="0" column="2" colspan="7">
+    <widget class="KComboBox" name="dvd_profile"/>
    </item>
-   <item row="4" column="1">
+   <item row="3" column="1">
     <widget class="QPushButton" name="button_add">
      <property name="text">
       <string>Add movie file</string>
      </property>
     </widget>
    </item>
-   <item row="4" column="6">
-    <widget class="QToolButton" name="button_transcode">
-     <property name="text">
-      <string>...</string>
+   <item row="5" column="0" colspan="9">
+    <widget class="QLabel" name="error_message">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
      </property>
-    </widget>
-   </item>
-   <item row="0" column="0" colspan="2">
-    <widget class="QLabel" name="label">
      <property name="text">
-      <string>DVD format</string>
+      <string/>
      </property>
     </widget>
    </item>
-   <item row="1" column="2" colspan="6">
-    <widget class="KUrlRequester" name="intro_vob">
+   <item row="1" column="0" colspan="8">
+    <widget class="QFrame" name="list_frame">
      <property name="sizePolicy">
-      <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+      <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
+     <property name="minimumSize">
+      <size>
+       <width>0</width>
+       <height>20</height>
+      </size>
+     </property>
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Raised</enum>
+     </property>
     </widget>
    </item>
-   <item row="4" column="2">
-    <widget class="QPushButton" name="button_delete">
+   <item row="3" column="3">
+    <widget class="QToolButton" name="button_up">
      <property name="text">
-      <string>Remove file</string>
+      <string>...</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="4">
+    <widget class="QToolButton" name="button_down">
+     <property name="text">
+      <string>...</string>
      </property>
     </widget>
    </item>
    <extends>QComboBox</extends>
    <header>kcombobox.h</header>
   </customwidget>
-  <customwidget>
-   <class>KUrlRequester</class>
-   <extends>QFrame</extends>
-   <header>kurlrequester.h</header>
-  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>