]> git.sesse.net Git - kdenlive/commitdiff
Differentiate title clips from cloned template title clip by giving different name
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 23 Jun 2009 15:55:51 +0000 (15:55 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 23 Jun 2009 15:55:51 +0000 (15:55 +0000)
svn path=/trunk/kdenlive/; revision=3624

src/kdenlivedoc.cpp
src/titlewidget.cpp
src/titlewidget.h

index 0835a60f8af76af4f7c74784e7050b71018bd78b..fd557ee17a829c0f9d1d516fc4f2353c1bfabc28 100644 (file)
@@ -1092,7 +1092,7 @@ void KdenliveDoc::slotCreateTextTemplateClip(QString group, const QString &group
 
     if (path.isEmpty()) return;
 
-    QStringList titleInfo = TitleWidget::getFreeTitleInfo(projectFolder());
+    QStringList titleInfo = TitleWidget::getFreeTitleInfo(projectFolder(), true);
 
     TitleWidget *dia_ui = new TitleWidget(path, titlesFolder, m_render, kapp->activeWindow());
     QImage pix = dia_ui->renderedPixmap();
index 56793f533fb5f73b3c3ac5810c6f27a53cc23671..d83bb2fad9b593b66b1d489b71f8305b00efbf6c 100644 (file)
@@ -39,7 +39,7 @@ const int IMAGEITEM = 7;
 const int RECTITEM = 3;
 const int TEXTITEM = 8;
 
-TitleWidget::TitleWidget(KUrl url, QString projectPath, Render *render, QWidget *parent) :
+TitleWidget::TitleWidget(KUrl url, QString projectTitlePath, Render *render, QWidget *parent) :
         QDialog(parent),
         Ui::TitleWidget_UI(),
         m_startViewport(NULL),
@@ -47,7 +47,7 @@ TitleWidget::TitleWidget(KUrl url, QString projectPath, Render *render, QWidget
         m_render(render),
         m_count(0),
         m_unicodeDialog(new UnicodeDialog(UnicodeDialog::InputHex)),
-        m_projectPath(projectPath)
+        m_projectTitlePath(projectTitlePath)
 {
     setupUi(this);
     setFont(KGlobalSettings::toolBarFont());
@@ -257,27 +257,27 @@ TitleWidget::~TitleWidget()
 }
 
 //static
-QStringList TitleWidget::getFreeTitleInfo(const KUrl &projectUrl)
+QStringList TitleWidget::getFreeTitleInfo(const KUrl &projectUrl, bool isClone)
 {
     QStringList result;
-    QString titlePath = projectUrl.path() + "/titles/";
+    QString titlePath = projectUrl.path(KUrl::AddTrailingSlash) + "titles/";
     KStandardDirs::makeDir(titlePath);
-    QString titleName = "title";
+    titlePath.append((isClone == false) ? "title" : "clone");
     int counter = 0;
-    QString path = titlePath + titleName + QString::number(counter).rightJustified(3, '0', false);
-    while (QFile::exists(path + ".png")) {
+    QString path;
+    while (path.isEmpty() || QFile::exists(path)) {
         counter++;
-        path = titlePath + titleName + QString::number(counter).rightJustified(3, '0', false);
+        path = titlePath + QString::number(counter).rightJustified(3, '0', false) + ".png";
     }
-    result.append(titleName + QString::number(counter).rightJustified(3, '0', false));
-    result.append(path + ".png");
+    result.append(((isClone == false) ? i18n("Title") : i18n("Clone")) + ' ' + QString::number(counter).rightJustified(3, '0', false));
+    result.append(path);
     return result;
 }
 
 QString TitleWidget::getTitleResourceFromName(const KUrl &projectUrl, const QString &titleName)
 {
     QStringList result;
-    QString titlePath = projectUrl.path() + "/titles/";
+    QString titlePath = projectUrl.path(KUrl::AddTrailingSlash) + "titles/";
     KStandardDirs::makeDir(titlePath);
     return titlePath + titleName + ".png";
 }
@@ -1087,7 +1087,7 @@ void TitleWidget::setupViewports()
 
 void TitleWidget::loadTitle()
 {
-    KUrl url = KFileDialog::getOpenUrl(KUrl(m_projectPath), "*.kdenlivetitle", this, i18n("Load Title"));
+    KUrl url = KFileDialog::getOpenUrl(KUrl(m_projectTitlePath), "*.kdenlivetitle", this, i18n("Load Title"));
     if (!url.isEmpty()) {
         QList<QGraphicsItem *> items = m_scene->items();
         for (int i = 0; i < items.size(); i++) {
@@ -1100,7 +1100,7 @@ void TitleWidget::loadTitle()
 
 void TitleWidget::saveTitle(KUrl url)
 {
-    if (url.isEmpty()) url = KFileDialog::getSaveUrl(KUrl(m_projectPath), "*.kdenlivetitle", this, i18n("Save Title"));
+    if (url.isEmpty()) url = KFileDialog::getSaveUrl(KUrl(m_projectTitlePath), "*.kdenlivetitle", this, i18n("Save Title"));
     if (!url.isEmpty()) {
         if (m_titledocument.saveDocument(url, m_startViewport, m_endViewport) == false)
             KMessageBox::error(this, i18n("Cannot write to file %1", url.path()));
index 88fc8a91f96cc26225e109ba25cb954e9e79d013..1b51e2cf28c94be11d97b7a166614c9784766829 100644 (file)
@@ -47,7 +47,7 @@ class TitleWidget : public QDialog , public Ui::TitleWidget_UI
 public:
     /** \brief Constructor
      * \param projectPath Path to use when user requests loading or saving of titles as .kdenlivetitle documents */
-    TitleWidget(KUrl url, QString projectPath, Render *render, QWidget *parent = 0);
+    TitleWidget(KUrl url, QString projectTitlePath, Render *render, QWidget *parent = 0);
     virtual ~TitleWidget();
     QDomDocument xml();
     void setXml(QDomDocument doc);
@@ -58,7 +58,7 @@ public:
      * ".png" as the second element.
      *
      * The path "/titles/" is appended to projectUrl to locate the actual directory that contains the title pngs. */
-    static QStringList getFreeTitleInfo(const KUrl &projectUrl);
+    static QStringList getFreeTitleInfo(const KUrl &projectUrl, bool isClone = false);
 
     /** \brief Build a filename from a projectUrl and a titleName
      * \param projectUrl Url to directory of project.
@@ -98,7 +98,7 @@ private:
     /** \brief Dialog for entering unicode in text fields */
     UnicodeDialog *m_unicodeDialog;
     /** project path for storing title clips */
-    QString m_projectPath;
+    QString m_projectTitlePath;
     /** \brief Store the current choices of font, background and rect values */
     void writeChoices();
     /** \brief Read the last stored choices into the dialog */