]> git.sesse.net Git - kdenlive/blobdiff - src/kdenlivedoc.h
Clip properties dialog
[kdenlive] / src / kdenlivedoc.h
index e55777371df8443391ea4377cf5e7bbf46219f26..cd8c5afd35c280dcc23db98cbcd6e31c076ed107 100644 (file)
 #include <qmap.h>
 #include <QList>
 #include <QObject>
+#include <QUndoGroup>
 
 #include <KUndoStack>
 #include <kurl.h>
 
 #include "gentime.h"
 #include "timecode.h"
-#include "renderer.h"
-#include "clipmanager.h"
 #include "definitions.h"
 
+class Render;
+class ClipManager;
+class DocClipBase;
+
 class KdenliveDoc: public QObject {
 Q_OBJECT public:
 
-    KdenliveDoc(const KUrl &url, MltVideoProfile profile, QWidget *parent = 0);
+    KdenliveDoc(const KUrl &url, MltVideoProfile profile, QUndoGroup *undoGroup, QWidget *parent = 0);
     ~KdenliveDoc();
-    QString documentName();
     QDomNodeList producersList();
-    double fps();
-    int width();
-    int height();
-    KUrl url();
+    double fps() const;
+    int width() const;
+    int height() const;
+    KUrl url() const;
     void backupMltPlaylist();
-    Timecode timecode();
-    QDomDocument toXml();
+    Timecode timecode() const;
+    QDomDocument toXml() const;
     void setRenderer(Render *render);
     KUndoStack *commandStack();
     QString producerName(int id);
@@ -58,16 +60,33 @@ Q_OBJECT public:
     Render *renderer();
     ClipManager *clipManager();
     void addClip(const QDomElement &elem, const int clipId);
-    void slotAddClipFile(const KUrl url, const QString group);
-    void slotAddColorClipFile(const QString name, const QString color, QString duration, const QString group);
+    void addFolder(const QString foldername, int clipId, bool edit);
+    void deleteFolder(const QString foldername, int clipId);
+    void slotAddClipFile(const KUrl url, const QString group, const int groupId = -1);
+    void slotAddFolder(const QString folderName);
+    void slotDeleteFolder(const QString folderName, const int id);
+    void slotEditFolder(const QString folderName, const QString oldfolderName, int clipId);
+    void slotAddColorClipFile(const QString name, const QString color, QString duration, const QString group, const int groupId = -1);
     void deleteClip(const uint clipId);
     int getFramePos(QString duration);
     DocClipBase *getBaseClip(int clipId);
     void updateClip(int id);
-    void deleteProjectClip(const uint clipId);
+    void deleteProjectClip(QList <int> ids);
+    void deleteProjectFolder(QMap <QString, int> map);
     /** Inform application of the audio thumbnails generation progress */
     void setThumbsProgress(KUrl url, int progress);
-    QString profilePath();
+    QString profilePath() const;
+    QString description() const;
+    /** Returns the document format: PAL or NTSC */
+    QString getDocumentStandard();
+    void setUrl(KUrl url);
+    QDomElement documentInfoXml();
+    void setProfilePath(QString path);
+    /** Set to true if document needs saving, false otherwise */
+    void setModified(bool mod);
+    int getFreeClipId();
+    /** does the document need saving */
+    bool isModified();
 
 private:
     KUrl m_url;
@@ -83,15 +102,20 @@ private:
     ClipManager *m_clipManager;
     MltVideoProfile m_profile;
     QString m_scenelist;
+    /** tells whether current doc has been changed since last save event */
+    bool m_modified;
 
 public slots:
 
 signals:
     void addProjectClip(DocClipBase *);
+    void addProjectFolder(const QString, int, bool, bool edit = false);
     void signalDeleteProjectClip(int);
     void updateClipDisplay(int);
     void deletTimelineClip(int);
     void thumbsProgress(KUrl, int);
+    /** emited when the document state has been modified (= needs saving or not) */
+    void docModified(bool);
 };
 
 #endif