]> git.sesse.net Git - kdenlive/commitdiff
Update DVD Wizard: support for 16:9 profiles and GUI improvements
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Wed, 20 May 2009 10:18:14 +0000 (10:18 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Wed, 20 May 2009 10:18:14 +0000 (10:18 +0000)
svn path=/trunk/kdenlive/; revision=3400

src/CMakeLists.txt
src/dvdwizard.cpp
src/dvdwizard.h
src/dvdwizardvob.cpp
src/dvdwizardvob.h
src/widgets/dvdwizardiso_ui.ui [deleted file]
src/widgets/dvdwizardstatus_ui.ui
src/widgets/dvdwizardvob_ui.ui

index 9b7f948d615c65d5d2a3b47531671bcf4543e3e1..4d94d276a7e47c097470ea79c7917c125884ee3f 100644 (file)
@@ -69,7 +69,6 @@ kde4_add_ui_files(kdenlive_UI
   widgets/addtrack_ui.ui
   widgets/dvdwizardvob_ui.ui
   widgets/dvdwizardmenu_ui.ui
-  widgets/dvdwizardiso_ui.ui
   widgets/dvdwizardstatus_ui.ui
   widgets/dvdwizardchapters_ui.ui
   widgets/missingclips_ui.ui
index d6228f4c514782d42ba3980dd5cb0d1a1446a4c6..938f8ca6c8c110f20d11b6dc1d4b7133b83dacd2 100644 (file)
@@ -62,24 +62,23 @@ DvdWizard::DvdWizard(const QString &url, const QString &profile, QWidget *parent
     m_pageMenu->setTitle(i18n("Create DVD Menu"));
     addPage(m_pageMenu);
 
-
-    QWizardPage *page3 = new QWizardPage;
-    page3->setTitle(i18n("DVD Image"));
-    m_iso.setupUi(page3);
-    m_iso.tmp_folder->setPath(KdenliveSettings::currenttmpfolder());
-    m_iso.iso_image->setPath(QDir::homePath() + "/untitled.iso");
-    m_iso.iso_image->setFilter("*.iso");
-    m_iso.iso_image->fileDialog()->setOperationMode(KFileDialog::Saving);
-    addPage(page3);
-
     QWizardPage *page4 = new QWizardPage;
     page4->setTitle(i18n("Creating DVD Image"));
     m_status.setupUi(page4);
     m_status.error_box->setHidden(true);
+    m_status.tmp_folder->setPath(KdenliveSettings::currenttmpfolder());
+    m_status.iso_image->setPath(QDir::homePath() + "/untitled.iso");
+    m_status.iso_image->setFilter("*.iso");
+    m_status.iso_image->fileDialog()->setOperationMode(KFileDialog::Saving);
+
     addPage(page4);
 
-    connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(slotPageChanged(int)));
 
+
+    connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(slotPageChanged(int)));
+    connect(m_status.button_start, SIGNAL(clicked()), this, SLOT(slotGenerate()));
+    connect(m_status.button_abort, SIGNAL(clicked()), this, SLOT(slotAbort()));
+    connect(m_status.button_save, SIGNAL(clicked()), this, SLOT(slotSave()));
     connect(m_status.button_preview, SIGNAL(clicked()), this, SLOT(slotPreview()));
 
     QString programName("k3b");
@@ -129,26 +128,6 @@ void DvdWizard::slotPageChanged(int page)
     } else if (page == 2) {
         m_pageMenu->setTargets(m_pageChapters->selectedTitles(), m_pageChapters->selectedTargets());
         m_pageMenu->changeProfile(m_pageVob->isPal());
-    } else if (page == 3) {
-        //m_pageMenu->buttonsInfo();
-    } else if (page == 4) {
-        // clear job icons
-        for (int i = 0; i < m_status.job_progress->count(); i++)
-            m_status.job_progress->item(i)->setIcon(KIcon());
-        QString warnMessage;
-        if (KIO::NetAccess::exists(KUrl(m_iso.tmp_folder->url().path() + "/DVD"), KIO::NetAccess::SourceSide, this))
-            warnMessage.append(i18n("Folder %1 already exists. Overwrite?" + '\n', m_iso.tmp_folder->url().path() + "/DVD"));
-        if (KIO::NetAccess::exists(KUrl(m_iso.iso_image->url().path()), KIO::NetAccess::SourceSide, this))
-            warnMessage.append(i18n("Image file %1 already exists. Overwrite?", m_iso.iso_image->url().path()));
-
-        if (!warnMessage.isEmpty() && KMessageBox::questionYesNo(this, warnMessage) == KMessageBox::No) {
-            back();
-        } else {
-            KIO::NetAccess::del(KUrl(m_iso.tmp_folder->url().path() + "/DVD"), this);
-            QTimer::singleShot(300, this, SLOT(generateDvd()));
-        }
-        m_status.button_preview->setEnabled(false);
-        m_status.button_burn->setEnabled(false);
     }
 }
 
@@ -340,11 +319,11 @@ void DvdWizard::generateDvd()
     QListWidgetItem *authitem =  m_status.job_progress->item(3);
     authitem->setIcon(KIcon("system-run"));
     qApp->processEvents();
-    KIO::NetAccess::mkdir(KUrl(m_iso.tmp_folder->url().path() + "/DVD"), this);
+    KIO::NetAccess::mkdir(KUrl(m_status.tmp_folder->url().path() + "/DVD"), this);
 
     QDomDocument dvddoc;
     QDomElement auth = dvddoc.createElement("dvdauthor");
-    auth.setAttribute("dest", m_iso.tmp_folder->url().path() + "/DVD");
+    auth.setAttribute("dest", m_status.tmp_folder->url().path() + "/DVD");
     dvddoc.appendChild(auth);
     QDomElement vmgm = dvddoc.createElement("vmgm");
     auth.appendChild(vmgm);
@@ -394,6 +373,13 @@ void DvdWizard::generateDvd()
 
     QDomElement titles = dvddoc.createElement("titles");
     titleset.appendChild(titles);
+    QDomElement video = dvddoc.createElement("video");
+    titles.appendChild(video);
+    if (m_pageVob->isPal()) video.setAttribute("format", "pal");
+    else video.setAttribute("format", "ntsc");
+
+    if (m_pageVob->isWide()) video.setAttribute("aspect", "16:9");
+    else video.setAttribute("aspect", "4:3");
 
     QStringList voburls = m_pageVob->selectedUrls();
 
@@ -450,13 +436,13 @@ void DvdWizard::generateDvd()
     connect(m_dvdauthor, SIGNAL(finished(int , QProcess::ExitStatus)), this, SLOT(slotRenderFinished(int, QProcess::ExitStatus)));
     m_dvdauthor->setProcessChannelMode(QProcess::MergedChannels);
     m_dvdauthor->start("dvdauthor", args);
-
+    m_status.button_abort->setEnabled(true);
 }
 
-void DvdWizard::slotRenderFinished(int /*exitCode*/, QProcess::ExitStatus status)
+void DvdWizard::slotRenderFinished(int exitCode, QProcess::ExitStatus status)
 {
     QListWidgetItem *authitem =  m_status.job_progress->item(3);
-    if (status == QProcess::CrashExit) {
+    if (status == QProcess::CrashExit || exitCode != 0) {
         QByteArray result = m_dvdauthor->readAllStandardError();
         m_status.error_log->setText(result);
         m_status.error_box->setHidden(false);
@@ -465,6 +451,8 @@ void DvdWizard::slotRenderFinished(int /*exitCode*/, QProcess::ExitStatus status
         m_dvdauthor->close();
         delete m_dvdauthor;
         m_dvdauthor = NULL;
+        m_status.button_start->setEnabled(true);
+        m_status.button_abort->setEnabled(false);
         cleanup();
         return;
     }
@@ -474,18 +462,20 @@ void DvdWizard::slotRenderFinished(int /*exitCode*/, QProcess::ExitStatus status
     m_dvdauthor = NULL;
 
     // Check if DVD structure has the necessary infos
-    if (!QFile::exists(m_iso.tmp_folder->url().path() + "/DVD/VIDEO_TS/VIDEO_TS.IFO")) {
+    if (!QFile::exists(m_status.tmp_folder->url().path() + "/DVD/VIDEO_TS/VIDEO_TS.IFO")) {
         m_status.error_log->setText(m_creationLog + '\n' + i18n("DVD structure broken"));
         m_status.error_box->setHidden(false);
         kDebug() << "DVDAuthor process crashed";
         authitem->setIcon(KIcon("dialog-close"));
+        m_status.button_start->setEnabled(true);
+        m_status.button_abort->setEnabled(false);
         cleanup();
         return;
     }
     authitem->setIcon(KIcon("dialog-ok"));
     qApp->processEvents();
     QStringList args;
-    args << "-dvd-video" << "-v" << "-o" << m_iso.iso_image->url().path() << m_iso.tmp_folder->url().path() + "/DVD";
+    args << "-dvd-video" << "-v" << "-o" << m_status.iso_image->url().path() << m_status.tmp_folder->url().path() + "/DVD";
 
     if (m_mkiso) {
         m_mkiso->blockSignals(true);
@@ -502,10 +492,10 @@ void DvdWizard::slotRenderFinished(int /*exitCode*/, QProcess::ExitStatus status
 
 }
 
-void DvdWizard::slotIsoFinished(int /*exitCode*/, QProcess::ExitStatus status)
+void DvdWizard::slotIsoFinished(int exitCode, QProcess::ExitStatus status)
 {
     QListWidgetItem *isoitem =  m_status.job_progress->item(4);
-    if (status == QProcess::CrashExit) {
+    if (status == QProcess::CrashExit || exitCode != 0) {
         QByteArray result = m_mkiso->readAllStandardError();
         m_status.error_log->setText(result);
         m_status.error_box->setHidden(false);
@@ -515,18 +505,22 @@ void DvdWizard::slotIsoFinished(int /*exitCode*/, QProcess::ExitStatus status)
         cleanup();
         kDebug() << "Iso process crashed";
         isoitem->setIcon(KIcon("dialog-close"));
+        m_status.button_start->setEnabled(true);
+        m_status.button_abort->setEnabled(false);
         return;
     }
 
     m_creationLog.append(m_mkiso->readAllStandardError());
     delete m_mkiso;
     m_mkiso = NULL;
+    m_status.button_start->setEnabled(true);
+    m_status.button_abort->setEnabled(false);
 
     // Check if DVD iso is ok
-    QFile iso(m_iso.iso_image->url().path());
+    QFile iso(m_status.iso_image->url().path());
     if (!iso.exists() || iso.size() == 0) {
         if (iso.exists()) {
-            KIO::NetAccess::del(m_iso.iso_image->url(), this);
+            KIO::NetAccess::del(m_status.iso_image->url(), this);
         }
         m_status.error_log->setText(m_creationLog + '\n' + i18n("DVD ISO is broken"));
         m_status.error_box->setHidden(false);
@@ -536,15 +530,15 @@ void DvdWizard::slotIsoFinished(int /*exitCode*/, QProcess::ExitStatus status)
     }
 
     isoitem->setIcon(KIcon("dialog-ok"));
-    kDebug() << "ISO IMAGE " << m_iso.iso_image->url().path() << " Successfully created";
+    kDebug() << "ISO IMAGE " << m_status.iso_image->url().path() << " Successfully created";
     cleanup();
     kDebug() << m_creationLog;
 
-    m_status.error_log->setText(i18n("DVD ISO image %1 successfully created.", m_iso.iso_image->url().path()));
+    m_status.error_log->setText(i18n("DVD ISO image %1 successfully created.", m_status.iso_image->url().path()));
     m_status.button_preview->setEnabled(true);
     m_status.button_burn->setEnabled(true);
     m_status.error_box->setHidden(false);
-    //KMessageBox::information(this, i18n("DVD ISO image %1 successfully created.", m_iso.iso_image->url().path()));
+    //KMessageBox::information(this, i18n("DVD ISO image %1 successfully created.", m_status.iso_image->url().path()));
 
 }
 
@@ -553,7 +547,7 @@ void DvdWizard::cleanup()
 {
     m_authorFile.remove();
     m_menuFile.remove();
-    KIO::NetAccess::del(KUrl(m_iso.tmp_folder->url().path() + "/DVD"), this);
+    KIO::NetAccess::del(KUrl(m_status.tmp_folder->url().path() + "/DVD"), this);
 }
 
 
@@ -562,7 +556,7 @@ void DvdWizard::slotPreview()
     QString programName("xine");
     QString exec = KStandardDirs::findExe(programName);
     if (exec.isEmpty()) KMessageBox::sorry(this, i18n("You need program <b>%1</b> to perform this action", programName));
-    else QProcess::startDetached(exec, QStringList() << "dvd://" + m_iso.iso_image->url().path());
+    else QProcess::startDetached(exec, QStringList() << "dvd://" + m_status.iso_image->url().path());
 }
 
 void DvdWizard::slotBurn()
@@ -570,16 +564,58 @@ void DvdWizard::slotBurn()
     QAction *action = qobject_cast<QAction *>(sender());
     QString exec = action->data().toString();
     QStringList args;
-    if (exec.endsWith("k3b")) args << "--image" << m_iso.iso_image->url().path();
-    else args << "--image=" + m_iso.iso_image->url().path();
+    if (exec.endsWith("k3b")) args << "--image" << m_status.iso_image->url().path();
+    else args << "--image=" + m_status.iso_image->url().path();
     QProcess::startDetached(exec, args);
 }
 
 
+void DvdWizard::slotGenerate()
+{
+    // clear job icons
+    if ((m_dvdauthor && m_dvdauthor->state() != QProcess::NotRunning) || (m_mkiso && m_mkiso->state() != QProcess::NotRunning)) return;
+    for (int i = 0; i < m_status.job_progress->count(); i++)
+        m_status.job_progress->item(i)->setIcon(KIcon());
+    QString warnMessage;
+    if (KIO::NetAccess::exists(KUrl(m_status.tmp_folder->url().path() + "/DVD"), KIO::NetAccess::SourceSide, this))
+        warnMessage.append(i18n("Folder %1 already exists. Overwrite?" + '\n', m_status.tmp_folder->url().path() + "/DVD"));
+    if (KIO::NetAccess::exists(KUrl(m_status.iso_image->url().path()), KIO::NetAccess::SourceSide, this))
+        warnMessage.append(i18n("Image file %1 already exists. Overwrite?", m_status.iso_image->url().path()));
+
+    if (!warnMessage.isEmpty() && KMessageBox::questionYesNo(this, warnMessage) == KMessageBox::Yes) {
+        KIO::NetAccess::del(KUrl(m_status.tmp_folder->url().path() + "/DVD"), this);
+        QTimer::singleShot(300, this, SLOT(generateDvd()));
+        m_status.button_preview->setEnabled(false);
+        m_status.button_burn->setEnabled(false);
+        m_status.job_progress->setEnabled(true);
+        m_status.button_start->setEnabled(false);
+    }
+}
 
+void DvdWizard::slotAbort()
+{
+    // clear job icons
+    if (m_dvdauthor && m_dvdauthor->state() != QProcess::NotRunning) m_dvdauthor->terminate();
+    else if (m_mkiso && m_mkiso->state() != QProcess::NotRunning) m_mkiso->terminate();
+}
 
+void DvdWizard::slotSave()
+{
+    KMessageBox::sorry(this, "Not implemented yet");
+    return;
+    KUrl url = KFileDialog::getSaveUrl(KUrl(), "*.kdvd", this, i18n("Save DVD Project"));
+    if (url.isEmpty()) return;
+    QDomDocument doc;
+    QDomElement dvdproject = doc.createElement("dvdproject");
+    QString profile;
+    if (m_pageVob->isPal()) profile = "dv_pal";
+    else profile = "dv_ntsc";
+    if (m_pageVob->isWide()) profile.append("_wide");
+    dvdproject.setAttribute("profile", profile);
+    doc.appendChild(dvdproject);
+    //for (int i = 0; i <
 
 
-
+}
 
 
index 46534bbbf7aa27e61796eebc76ed66ae97420e77..e859d01ac7b69e816a68d56f84f8dd4d88dc4d8b 100644 (file)
@@ -34,7 +34,6 @@
 #include "dvdwizardvob.h"
 #include "dvdwizardmenu.h"
 #include "dvdwizardchapters.h"
-#include "ui_dvdwizardiso_ui.h"
 #include "ui_dvdwizardstatus_ui.h"
 #include "ui_dvdwizardchapters_ui.h"
 
@@ -48,7 +47,6 @@ public:
 private:
     DvdWizardVob *m_pageVob;
     DvdWizardMenu *m_pageMenu;
-    Ui::DvdWizardIso_UI m_iso;
     Ui::DvdWizardStatus_UI m_status;
     DvdWizardChapters *m_pageChapters;
     KTemporaryFile m_menuFile;
@@ -66,6 +64,9 @@ private slots:
     void generateDvd();
     void slotPreview();
     void slotBurn();
+    void slotGenerate();
+    void slotAbort();
+    void slotSave();
 };
 
 #endif
index 8f44776081b934845a75f0a1ca3795533e928022..f75ac9c968e9ec87e6aa5d25ad9366d56a1536fd 100644 (file)
@@ -56,10 +56,11 @@ DvdWizardVob::DvdWizardVob(const QString &profile, QWidget *parent) :
     if (m_errorMessage.isEmpty()) m_view.error_message->setVisible(false);
     else m_view.error_message->setText(m_errorMessage);
 
-    m_view.dvd_profile->addItems(QStringList() << i18n("PAL") << i18n("NTSC"));
-    if (profile == "dv_ntsc" || profile == "dv_ntsc_wide") {
-        m_view.dvd_profile->setCurrentIndex(1);
-    }
+    m_view.dvd_profile->addItems(QStringList() << i18n("PAL 4:3") << i18n("PAL 16:9") << i18n("NTSC 4:3") << i18n("NTSC 16:9"));
+    if (profile == "dv_pal_wide") m_view.dvd_profile->setCurrentIndex(1);
+    else if (profile == "dv_ntsc") m_view.dvd_profile->setCurrentIndex(2);
+    else if (profile == "dv_ntsc_wide") m_view.dvd_profile->setCurrentIndex(3);
+
     connect(m_view.dvd_profile, SIGNAL(activated(int)), this, SLOT(changeFormat()));
     m_view.vobs_list->header()->setStretchLastSection(false);
     m_view.vobs_list->header()->setResizeMode(0, QHeaderView::Stretch);
@@ -258,7 +259,12 @@ void DvdWizardVob::slotItemDown()
 
 bool DvdWizardVob::isPal() const
 {
-    return m_view.dvd_profile->currentIndex() == 0;
+    return m_view.dvd_profile->currentIndex() < 2;
+}
+
+bool DvdWizardVob::isWide() const
+{
+    return (m_view.dvd_profile->currentIndex() == 1 || m_view.dvd_profile->currentIndex() == 3);
 }
 
 
index 40f69a69ae6e58e3c55fd2b1e9d4b69aeb201644..98c666a53ae108ca7099cdbf884f275ee31e26f6 100644 (file)
@@ -45,6 +45,7 @@ public:
     void setUrl(const QString &url);
     QString introMovie() const;
     bool isPal() const;
+    bool isWide() const;
     int duration(int ix) const;
     QStringList durations() const;
 
diff --git a/src/widgets/dvdwizardiso_ui.ui b/src/widgets/dvdwizardiso_ui.ui
deleted file mode 100644 (file)
index 353d86b..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<ui version="4.0" >
- <class>DvdWizardIso_UI</class>
- <widget class="QWidget" name="DvdWizardIso_UI" >
-  <property name="geometry" >
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>263</width>
-    <height>81</height>
-   </rect>
-  </property>
-  <layout class="QGridLayout" name="gridLayout" >
-   <item row="0" column="0" >
-    <widget class="QLabel" name="label" >
-     <property name="text" >
-      <string>Temporary data folder</string>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="1" >
-    <widget class="KUrlRequester" name="tmp_folder" />
-   </item>
-   <item row="1" column="0" >
-    <widget class="QLabel" name="label_2" >
-     <property name="text" >
-      <string>DVD ISO image</string>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="1" >
-    <widget class="KUrlRequester" name="iso_image" />
-   </item>
-   <item row="2" column="0" >
-    <spacer name="verticalSpacer" >
-     <property name="orientation" >
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0" >
-      <size>
-       <width>20</width>
-       <height>8</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>KUrlRequester</class>
-   <extends>QFrame</extends>
-   <header>kurlrequester.h</header>
-  </customwidget>
- </customwidgets>
- <resources/>
- <connections/>
-</ui>
index f900580d16ed3006ccaa44dc456818e0dc678ded..a5a0077d6a149b89fe99eb9eafb17798a4b038ea 100644 (file)
@@ -6,13 +6,16 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>335</width>
+    <width>440</width>
     <height>344</height>
    </rect>
   </property>
   <layout class="QGridLayout" name="gridLayout_2">
-   <item row="0" column="0">
+   <item row="2" column="0" colspan="5">
     <widget class="QListWidget" name="job_progress">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
      <property name="alternatingRowColors">
       <bool>true</bool>
      </property>
      </item>
     </widget>
    </item>
-   <item row="1" column="0">
+   <item row="4" column="0" colspan="5">
     <widget class="QGroupBox" name="error_box">
      <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+      <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
       </item>
       <item row="1" column="0" colspan="4">
        <widget class="KTextEdit" name="error_log">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Expanding" vsizetype="Maximum">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <property name="readOnly">
          <bool>true</bool>
         </property>
      </layout>
     </widget>
    </item>
+   <item row="3" column="0">
+    <widget class="QPushButton" name="button_start">
+     <property name="text">
+      <string>Create ISO image</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="3">
+    <spacer name="horizontalSpacer_2">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>40</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="3" column="2">
+    <widget class="QPushButton" name="button_save">
+     <property name="text">
+      <string>Save project</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="1">
+    <widget class="QPushButton" name="button_abort">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
+     <property name="text">
+      <string>Abort</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="0">
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>Temporary data folder</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="1" colspan="3">
+    <widget class="KUrlRequester" name="tmp_folder"/>
+   </item>
+   <item row="1" column="0">
+    <widget class="QLabel" name="label_2">
+     <property name="text">
+      <string>DVD ISO image</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1" colspan="3">
+    <widget class="KUrlRequester" name="iso_image"/>
+   </item>
   </layout>
  </widget>
  <customwidgets>
+  <customwidget>
+   <class>KUrlRequester</class>
+   <extends>QFrame</extends>
+   <header>kurlrequester.h</header>
+  </customwidget>
   <customwidget>
    <class>KTextEdit</class>
    <extends>QTextEdit</extends>
index 938e32a98b7adce95c45e3066cdad404ea21069d..fdc54e8dee04cc66e2c787071956374672e21263 100644 (file)
@@ -6,19 +6,19 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>391</width>
-    <height>348</height>
+    <width>342</width>
+    <height>287</height>
    </rect>
   </property>
   <layout class="QGridLayout" name="gridLayout_2">
-   <item row="1" column="0" colspan="4">
+   <item row="1" column="0" colspan="2">
     <widget class="QCheckBox" name="use_intro">
      <property name="text">
       <string>Intro movie</string>
      </property>
     </widget>
    </item>
-   <item row="1" column="6">
+   <item row="1" column="2" colspan="5">
     <widget class="KUrlRequester" name="intro_vob">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
      </property>
     </widget>
    </item>
-   <item row="0" column="6">
-    <widget class="KComboBox" name="dvd_profile"/>
-   </item>
    <item row="0" column="0" colspan="2">
     <widget class="QLabel" name="label">
      <property name="text">
      </property>
     </widget>
    </item>
+   <item row="0" column="2" colspan="5">
+    <widget class="KComboBox" name="dvd_profile"/>
+   </item>
   </layout>
  </widget>
  <customwidgets>