connect(m_view.vob_list, SIGNAL(currentIndexChanged(int)), this, SLOT(slotUpdateChaptersList()));
connect(m_view.button_add, SIGNAL(clicked()), this, SLOT(slotAddChapter()));
connect(m_view.button_delete, SIGNAL(clicked()), this, SLOT(slotRemoveChapter()));
+ connect(m_view.button_save, SIGNAL(clicked()), this, SLOT(slotSaveChapter()));
connect(m_view.chapters_list, SIGNAL(itemSelectionChanged()), this, SLOT(slotGoToChapter()));
// Build monitor for chapters
}
m_view.chapters_list->clear();
m_view.chapters_list->addItems(chaptersString);
+
+ bool modified = m_view.vob_list->itemData(m_view.vob_list->currentIndex(), Qt::UserRole + 2).toInt();
+ m_view.button_save->setEnabled(modified);
}
void DvdWizardChapters::slotAddChapter()
chaptersString.append(Timecode::getStringTimecode(chapterTimes.at(i), m_tc.fps()));
currentChaps.append(QString::number(chapterTimes.at(i)));
}
+ // Save item chapters
m_view.vob_list->setItemData(m_view.vob_list->currentIndex(), currentChaps, Qt::UserRole + 1);
+ // Mark item as modified
+ m_view.vob_list->setItemData(m_view.vob_list->currentIndex(), 1, Qt::UserRole + 2);
m_view.chapters_list->clear();
m_view.chapters_list->addItems(chaptersString);
+ m_view.button_save->setEnabled(true);
}
void DvdWizardChapters::slotRemoveChapter()
int ix = m_view.chapters_list->currentRow();
QStringList currentChaps = m_view.vob_list->itemData(m_view.vob_list->currentIndex(), Qt::UserRole + 1).toStringList();
currentChaps.removeAt(ix);
+
+ // Save item chapters
m_view.vob_list->setItemData(m_view.vob_list->currentIndex(), currentChaps, Qt::UserRole + 1);
+ // Mark item as modified
+ m_view.vob_list->setItemData(m_view.vob_list->currentIndex(), 1, Qt::UserRole + 2);
// rebuild chapters
QStringList chaptersString;
}
m_view.chapters_list->clear();
m_view.chapters_list->addItems(chaptersString);
+ m_view.button_save->setEnabled(true);
}
void DvdWizardChapters::slotGoToChapter()
}
return result;
}
+
+void DvdWizardChapters::slotSaveChapter()
+{
+ QDomDocument doc;
+ QDomElement chapters = doc.createElement("chapters");
+ chapters.setAttribute("fps", m_tc.fps());
+ doc.appendChild(chapters);
+
+ QStringList chaptersList = m_view.vob_list->itemData(m_view.vob_list->currentIndex(), Qt::UserRole + 1).toStringList();
+
+ for (int i = 0; i < chaptersList.count(); i++) {
+ QDomElement chapter = doc.createElement("chapter");
+ chapters.appendChild(chapter);
+ chapter.setAttribute("title", i18n("Chapter %1", i));
+ chapter.setAttribute("time", chaptersList.at(i));
+ }
+ // save chapters file
+ QFile file(m_view.vob_list->currentText() + ".dvdchapter");
+ if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
+ kWarning() << "////// ERROR writing DVD CHAPTER file: " << m_view.vob_list->currentText() + ".dvdchapter";
+ } else {
+ file.write(doc.toString().toUtf8());
+ if (file.error() != QFile::NoError)
+ kWarning() << "////// ERROR writing DVD CHAPTER file: " << m_view.vob_list->currentText() + ".dvdchapter";
+ else {
+ m_view.vob_list->setItemData(m_view.vob_list->currentIndex(), 0, Qt::UserRole + 2);
+ m_view.button_save->setEnabled(false);
+ }
+ file.close();
+ }
+}
m_playIcon = KIcon("media-playback-start");
m_pauseIcon = KIcon("media-playback-pause");
- toolbar->addAction(KIcon("kdenlive-zone-start"), i18n("Set zone start"), this, SLOT(slotSetZoneStart()));
- toolbar->addAction(KIcon("kdenlive-zone-end"), i18n("Set zone end"), this, SLOT(slotSetZoneEnd()));
+ if (name != "chapter") {
+ toolbar->addAction(KIcon("kdenlive-zone-start"), i18n("Set zone start"), this, SLOT(slotSetZoneStart()));
+ toolbar->addAction(KIcon("kdenlive-zone-end"), i18n("Set zone end"), this, SLOT(slotSetZoneEnd()));
+ } else m_ruler->setZone(-3, -2);
toolbar->addAction(KIcon("media-seek-backward"), i18n("Rewind"), this, SLOT(slotRewind()));
toolbar->addAction(KIcon("media-skip-backward"), i18n("Rewind 1 frame"), this, SLOT(slotRewindOneFrame()));
playButton->setDefaultAction(m_playAction);
- QToolButton *configButton = new QToolButton(toolbar);
- m_configMenu = new QMenu(i18n("Misc..."), this);
- configButton->setIcon(KIcon("system-run"));
- configButton->setMenu(m_configMenu);
- configButton->setPopupMode(QToolButton::QToolButton::InstantPopup);
- toolbar->addWidget(configButton);
+ if (name != "chapter") {
+ QToolButton *configButton = new QToolButton(toolbar);
+ m_configMenu = new QMenu(i18n("Misc..."), this);
+ configButton->setIcon(KIcon("system-run"));
+ configButton->setMenu(m_configMenu);
+ configButton->setPopupMode(QToolButton::QToolButton::InstantPopup);
+ toolbar->addWidget(configButton);
+ m_configMenu->addAction(KIcon("transform-scale"), i18n("Resize (100%)"), this, SLOT(slotSetSizeOneToOne()));
+ m_configMenu->addAction(KIcon("transform-scale"), i18n("Resize (50%)"), this, SLOT(slotSetSizeOneToTwo()));
+ }
QWidget *spacer = new QWidget(this);
spacer->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
connect(render, SIGNAL(rendererPosition(int)), this, SLOT(seekCursor(int)));
connect(render, SIGNAL(rendererStopped(int)), this, SLOT(rendererStopped(int)));
- m_configMenu->addSeparator();
- m_configMenu->addAction(KIcon("transform-scale"), i18n("Resize (100%)"), this, SLOT(slotSetSizeOneToOne()));
- m_configMenu->addAction(KIcon("transform-scale"), i18n("Resize (50%)"), this, SLOT(slotSetSizeOneToTwo()));
//render->createVideoXWindow(m_ui.video_frame->winId(), -1);
m_length = 0;