]> git.sesse.net Git - kdenlive/blobdiff - src/kdenlivedoc.h
Improve support for multi-stream clips:
[kdenlive] / src / kdenlivedoc.h
index 5cab5adc676544b0ead82875b0971e95e9e73f83..5c658590d19cc5412ebaef5160fa9401225ba823 100644 (file)
@@ -52,7 +52,7 @@ class KdenliveDoc: public QObject
 {
 Q_OBJECT public:
 
-    KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup *undoGroup, QString profileName, QMap <QString, QString> properties, const QPoint &tracks, Render *render, KTextEdit *notes, bool *openBackup, MainWindow *parent = 0, KProgressDialog *progressDialog = 0);
+    KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup *undoGroup, QString profileName, QMap <QString, QString> properties, QMap <QString, QString> metadata, const QPoint &tracks, Render *render, KTextEdit *notes, bool *openBackup, MainWindow *parent = 0, KProgressDialog *progressDialog = 0);
     ~KdenliveDoc();
     QDomNodeList producersList();
     double fps() const;
@@ -83,8 +83,7 @@ Q_OBJECT public:
      *
      * If the clip wasn't added before, it tries to add it to the project. */
     bool addClipInfo(QDomElement elem, QDomElement orig, QString clipId);
-    void slotAddClipFile(const KUrl &url, const QString &group, const QString &groupId = QString());
-    void slotAddClipList(const KUrl::List urls, const QString &group, const QString &groupId = QString());
+    void slotAddClipList(const KUrl::List urls, stringMap data = QMap <QString, QString>());
     void deleteClip(const QString &clipId);
     int getFramePos(QString duration);
     DocClipBase *getBaseClip(const QString &clipId);
@@ -154,13 +153,21 @@ Q_OBJECT public:
     void removeTrackEffect(int ix, QDomElement effect);
     void setTrackEffect(int trackIndex, int effectIndex, QDomElement effect);
     const EffectsList getTrackEffects(int ix);
+    /** @brief Enable / disable an effect in Kdenlive's xml list. */
+    void enableTrackEffects(int trackIndex, QList <int> effectIndexes, bool disable);
     QDomElement getTrackEffect(int trackIndex, int effectIndex) const;
+    /** @brief Check if a track already contains a specific effect. */
+    int hasTrackEffect(int trackIndex, const QString &tag, const QString &id) const;
     /** @brief Get a list of folder id's that were opened on last save. */
     QStringList getExpandedFolders();
     /** @brief Read the display ratio from an xml project file. */
     static double getDisplayRatio(const QString &path);
     /** @brief Backup the project file */
     void backupLastSavedVersion(const QString &path);
+    /** @brief Returns the document metadata (author, copyright, ...) */
+    const QMap <QString, QString> metadata() const;
+    /** @brief Set the document metadata (author, copyright, ...) */
+    void setMetadata(const QMap <QString, QString> meta);
     
 private:
     KUrl m_url;
@@ -183,6 +190,7 @@ private:
     /** @brief The project folder, used to store project files (titles, effects...). */
     KUrl m_projectFolder;
     QMap <QString, QString> m_documentProperties;
+    QMap <QString, QString> m_documentMetadata;
 
     QList <TrackInfo> m_tracksList;
     void setNewClipResource(const QString &id, const QString &path);
@@ -205,13 +213,7 @@ private:
 public slots:
     void slotCreateXmlClip(const QString &name, const QDomElement xml, QString group, const QString &groupId);
     void slotCreateColorClip(const QString &name, const QString &color, const QString &duration, QString group, const QString &groupId);
-    void slotCreateSlideshowClipFile(const QString &name, const QString &path,
-                                     int count, const QString &duration,
-                                     const bool loop, const bool crop,
-                                     const bool fade, const QString &luma_duration,
-                                     const QString &luma_file, const int softness,
-                                     const QString &animation, QString group,
-                                     const QString &groupId);
+    void slotCreateSlideshowClipFile(QMap <QString, QString> properties, QString group, const QString &groupId);
     void slotCreateTextClip(QString group, const QString &groupId, const QString &templatePath = QString());
     void slotCreateTextTemplateClip(QString group, const QString &groupId, KUrl path);
 
@@ -219,6 +221,7 @@ public slots:
      * @param mod (optional) true if the document has to be saved */
     void setModified(bool mod = true);
     void checkProjectClips(bool displayRatioChanged = false, bool fpsChanged = false);
+    void slotAddClipFile(const KUrl &url, stringMap data = QMap <QString, QString>());
 
 private slots:
     void slotAutoSave();