]> git.sesse.net Git - kdenlive/blobdiff - src/kdenlivedoc.h
Merge branch 'master' into stabilize
[kdenlive] / src / kdenlivedoc.h
index 1e06519340c4e06a71490e95f150fd01eb69275b..5cab5adc676544b0ead82875b0971e95e9e73f83 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, MainWindow *parent = 0, KProgressDialog *progressDialog = 0);
+    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();
     QDomNodeList producersList();
     double fps() const;
@@ -83,12 +83,12 @@ 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 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 deleteClip(const QString &clipId);
     int getFramePos(QString duration);
     DocClipBase *getBaseClip(const QString &clipId);
-    void updateClip(const QString id);
+    void updateClip(const QString &id);
 
     /** @brief Informs Kdenlive of the audio thumbnails generation progress. */
     void setThumbsProgress(const QString &message, int progress);
@@ -113,9 +113,9 @@ Q_OBJECT public:
     double dar() const;
     double projectDuration() const;
     /** @brief Returns the project file xml. */
-    QDomDocument xmlSceneList(const QString &scene, const QStringList expandedFolders);
+    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 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, TrackInfo type);
@@ -140,10 +140,8 @@ Q_OBJECT public:
      * 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 cachePixmap(const QString &fileId, const QPixmap &pix) const;
+    void cacheImage(const QString &fileId, const QImage &img) const;
     void setProjectFolder(KUrl url);
-    QString getLadspaFile() const;
     void setZone(int start, int end);
     QPoint zone() const;
     int setSceneList();
@@ -159,6 +157,10 @@ Q_OBJECT public:
     QDomElement getTrackEffect(int trackIndex, int effectIndex) 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);
     
 private:
     KUrl m_url;
@@ -197,12 +199,14 @@ private:
 
     /** @brief Updates the project folder location entry in the kdenlive file dialogs to point to the current project folder. */
     void updateProjectFolderPlacesEntry();
+    /** @brief Only keep some backup files, delete some */
+    void cleanupBackupFiles();
 
 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,
+    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,
@@ -214,7 +218,7 @@ public slots:
     /** @brief Sets the document as modified or up to date.
      * @param mod (optional) true if the document has to be saved */
     void setModified(bool mod = true);
-    void checkProjectClips();
+    void checkProjectClips(bool displayRatioChanged = false, bool fpsChanged = false);
 
 private slots:
     void slotAutoSave();
@@ -224,7 +228,6 @@ signals:
     void addProjectClip(DocClipBase *, bool getInfo = true);
     void signalDeleteProjectClip(const QString &);
     void updateClipDisplay(const QString&);
-    void deleteTimelineClip(const QString&);
     void progressInfo(const QString &, int);
 
     /** @brief Informs that the document status has been changed.
@@ -233,6 +236,8 @@ signals:
     void docModified(bool);
     void selectLastAddedClip(const QString &);
     void guidesUpdated();
+    /** @brief When creating a backup file, also save a thumbnail of current timeline */
+    void saveTimelinePreview(const QString &path);
 };
 
 #endif