]> git.sesse.net Git - kdenlive/blobdiff - src/kdenlivedoc.cpp
Introducing template based title clips
[kdenlive] / src / kdenlivedoc.cpp
index 34286682f9a0f86207658464ec8a8c411bd0ee47..549807b4155def56fa87b3f24b1d89cc4040088e 100644 (file)
@@ -1046,7 +1046,7 @@ DocClipBase *KdenliveDoc::getBaseClip(const QString &clipId)
     return m_clipManager->getClipById(clipId);
 }
 
-void KdenliveDoc::slotCreateTextClip(QString /*group*/, const QString &/*groupId*/)
+void KdenliveDoc::slotCreateTextClip(QString group, const QString &groupId)
 {
     QString titlesFolder = projectFolder().path() + "/titles/";
     KStandardDirs::makeDir(titlesFolder);
@@ -1056,12 +1056,28 @@ void KdenliveDoc::slotCreateTextClip(QString /*group*/, const QString &/*groupId
         QImage pix = dia_ui->renderedPixmap();
         pix.save(titleInfo.at(1));
         //dia_ui->saveTitle(path + ".kdenlivetitle");
-        m_clipManager->slotAddTextClipFile(titleInfo.at(0), titleInfo.at(1), dia_ui->xml().toString(), QString(), QString());
+        m_clipManager->slotAddTextClipFile(titleInfo.at(0), titleInfo.at(1), dia_ui->xml().toString(), group, groupId);
         setModified(true);
     }
     delete dia_ui;
 }
 
+void KdenliveDoc::slotCreateTextTemplateClip(QString group, const QString &groupId)
+{
+    KUrl titlesFolder = KUrl(projectFolder().path() + "/titles/");
+    KUrl path = KFileDialog::getOpenUrl(titlesFolder, "*.kdenlivetitle", kapp->activeWindow(), i18n("Enter Template Path"));
+    if (path.isEmpty()) return;
+
+    QStringList titleInfo = TitleWidget::getFreeTitleInfo(projectFolder());
+
+    TitleWidget *dia_ui = new TitleWidget(path, titlesFolder.path(), m_render, kapp->activeWindow());
+    QImage pix = dia_ui->renderedPixmap();
+    pix.save(titleInfo.at(1));
+    delete dia_ui;
+    m_clipManager->slotAddTextTemplateClip(titleInfo.at(0), titleInfo.at(1), path, group, groupId);
+    setModified(true);
+}
+
 int KdenliveDoc::tracksCount() const
 {
     return m_tracksList.count();