+void DvdWizard::slotSave()
+{
+ KUrl url = KFileDialog::getSaveUrl(KUrl("kfiledialog:///projectfolder"), "*.kdvd", this, i18n("Save DVD Project"));
+ if (url.isEmpty()) return;
+
+ if (currentId() == 0) m_pageChapters->setVobFiles(m_pageVob->isPal(), m_pageVob->isWide(), m_pageVob->selectedUrls(), m_pageVob->durations(), m_pageVob->chapters());
+
+ 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);
+
+ 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);
+ QDomElement menu = m_pageMenu->toXml();
+ if (!menu.isNull()) dvdproject.appendChild(doc.importNode(menu, true));
+ QDomElement chaps = m_pageChapters->toXml();
+ if (!chaps.isNull()) dvdproject.appendChild(doc.importNode(chaps, true));
+
+ QFile file(url.path());
+ if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
+ kWarning() << "////// ERROR writing to file: " << url.path();
+ KMessageBox::error(this, i18n("Cannot write to file %1", url.path()));
+ return;
+ }
+
+ file.write(doc.toString().toUtf8());
+ if (file.error() != QFile::NoError) {
+ KMessageBox::error(this, i18n("Cannot write to file %1", url.path()));
+ }
+ file.close();
+}
+
+
+void DvdWizard::slotLoad()
+{
+ KUrl url = KFileDialog::getOpenUrl(KUrl("kfiledialog:///projectfolder"), "*.kdvd");
+ if (url.isEmpty()) return;
+ QDomDocument doc;
+ QFile file(url.path());
+ doc.setContent(&file, false);
+ file.close();
+ QDomElement dvdproject = doc.documentElement();
+ if (dvdproject.tagName() != "dvdproject") {
+ KMessageBox::error(this, i18n("File %1 is not a Kdenlive project file.", url.path()));
+ return;
+ }
+
+ QString profile = dvdproject.attribute("profile");
+ m_pageVob->setProfile(profile);
+
+ 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"));
+
+ QDomNodeList vobs = doc.elementsByTagName("vob");
+ m_pageVob->clear();
+ for (int i = 0; i < vobs.count(); i++) {
+ QDomElement e = vobs.at(i).toElement();
+ m_pageVob->slotAddVobFile(KUrl(e.attribute("file")), e.attribute("chapters"));
+ }
+ m_pageMenu->loadXml(dvdproject.firstChildElement("menu"));
+}