+
+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(KUrl::AddTrailingSlash) + "DVD"), KIO::NetAccess::SourceSide, this))
+ warnMessage.append(i18n("Folder %1 already exists. Overwrite?\n", m_status.tmp_folder->url().path(KUrl::AddTrailingSlash) + "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(KUrl::AddTrailingSlash) + "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()
+{
+ 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();