+
+ /** @brief Adds a clip to the project tree.
+ * @return false if the user aborted the operation, true otherwise */
+ bool addClip(QDomElement elem, const QString &clipId, bool createClipItem = true);
+
+ /** @brief Updates information about a clip.
+ * @param elem the <kdenlive_producer />
+ * @param orig the potential <producer />
+ * @param clipId the producer id
+ * @return false if the user aborted the operation (in case the clip wasn't
+ * there yet), true otherwise
+ *
+ * If the clip wasn't added before, it tries to add it to the project. */
+ bool addClipInfo(QDomElement elem, QDomElement orig, const QString &clipId);
+ void slotAddClipList(const KUrl::List &urls, const stringMap &data = stringMap());
+ void deleteClip(const QString &clipId);
+ int getFramePos(const QString &duration);
+ DocClipBase *getBaseClip(const QString &clipId);
+ void updateClip(const QString &id);
+
+ /** @brief Informs Kdenlive of the audio thumbnails generation progress. */
+ void setThumbsProgress(const QString &message, int progress);
+ const QString &profilePath() const;
+ MltVideoProfile mltProfile() const;
+ const QString description() const;
+ void setUrl(const KUrl &url);
+
+ /** @brief Updates the project profile.
+ * @return true if frame rate was changed */
+ bool setProfilePath(QString path);
+ const QString getFreeClipId();
+
+ /** @brief Defines whether the document needs to be saved. */
+ bool isModified() const;
+
+ /** @brief Returns the project folder, used to store project files. */
+ KUrl projectFolder() const;
+ void syncGuides(const QList <Guide *> &guides);
+ void setZoom(int horizontal, int vertical);
+ QPoint zoom() const;
+ double dar() const;
+ double projectDuration() const;
+ /** @brief Returns the project file xml. */
+ QDomDocument xmlSceneList(const QString &scene, const QStringList &expandedFolders);
+ /** @brief Saves the project file xml to a file. */
+ bool saveSceneList(const QString &path, const QString &scene, const QStringList &expandedFolders, bool autosave = false);
+ int tracksCount() const;
+ TrackInfo trackInfoAt(int ix) const;
+ void insertTrack(int ix, const TrackInfo &type);
+ void deleteTrack(int ix);
+ void setTrackType(int ix, const TrackInfo &type);
+ const QList <TrackInfo> tracksList() const;
+
+ /** @brief Gets the number of audio and video tracks and returns them as a QPoint with x = video, y = audio. */
+ QPoint getTracksCount() const;
+
+ void switchTrackVideo(int ix, bool hide);
+ void switchTrackAudio(int ix, bool hide);
+ void switchTrackLock(int ix, bool lock);
+ bool isTrackLocked(int ix) const;
+
+ /** @brief Sets the duration of track @param ix to @param duration.
+ * This does not! influence the actual track but only the value in its TrackInfo. */
+ void setTrackDuration(int ix, int duration);
+
+ /** @brief Returns the duration of track @param ix.
+ *
+ * The returned duration might differ from the actual track duration!
+ * It is the one stored in the track's TrackInfo. */
+ int trackDuration(int ix);
+ void cacheImage(const QString &fileId, const QImage &img) const;
+ void setProjectFolder(KUrl url);
+ void setZone(int start, int end);
+ QPoint zone() const;
+ int setSceneList();
+ void setDocumentProperty(const QString &name, const QString &value);
+ const QString getDocumentProperty(const QString &name) const;
+
+ /** @brief Gets the list of renderer properties saved into the document. */
+ QMap <QString, QString> getRenderProperties() const;
+ void addTrackEffect(int ix, QDomElement effect);
+ void removeTrackEffect(int ix, const 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, const 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: