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");
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()) {
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);
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();
} 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));
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"));
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()));
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));
}
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();
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;
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:
<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/>