]> git.sesse.net Git - kdenlive/blobdiff - src/clipmanager.cpp
* Cleanup folder creation
[kdenlive] / src / clipmanager.cpp
index c7506b5fc2895068a83376c489bff539d990387a..f0f3a1fc25ace03f188c3bc3156fe534121bf4af 100644 (file)
@@ -30,6 +30,7 @@
 
 ClipManager::ClipManager(KdenliveDoc *doc): m_doc(doc), m_audioThumbsEnabled(false), m_audioThumbsQueue(QList <QString> ()), m_generatingAudioId(QString()) {
     m_clipIdCounter = 1;
+    m_folderIdCounter = 1;
 }
 
 ClipManager::~ClipManager() {
@@ -94,14 +95,20 @@ void ClipManager::setThumbsProgress(const QString &message, int progress) {
     m_doc->setThumbsProgress(message, progress);
 }
 
-QList <DocClipBase*> ClipManager::documentClipList() {
+QList <DocClipBase*> ClipManager::documentClipList() const {
     return m_clipList;
 }
 
+QMap <QString, QString> ClipManager::documentFolderList() const {
+    return m_folderList;
+}
+
 void ClipManager::addClip(DocClipBase *clip) {
     m_clipList.append(clip);
     const QString id = clip->getId();
     if (id.toInt() >= m_clipIdCounter) m_clipIdCounter = id.toInt() + 1;
+    const QString gid = clip->getProperty("groupid");
+    if (!gid.isEmpty() && gid.toInt() >= m_folderIdCounter) m_folderIdCounter = gid.toInt() + 1;
 }
 
 void ClipManager::slotDeleteClip(const QString &clipId) {
@@ -119,6 +126,7 @@ void ClipManager::deleteClip(const QString &clipId) {
         if (m_clipList.at(i)->getId() == clipId) {
             DocClipBase *clip = m_clipList.takeAt(i);
             delete clip;
+            clip = NULL;
             break;
         }
     }
@@ -300,6 +308,10 @@ int ClipManager::getFreeClipId() {
     return m_clipIdCounter++;
 }
 
+int ClipManager::getFreeFolderId() {
+    return m_folderIdCounter++;
+}
+
 int ClipManager::lastClipId() const {
     return m_clipIdCounter - 1;
 }
@@ -308,5 +320,10 @@ QString ClipManager::projectFolder() const {
     return m_doc->projectFolder().path();
 }
 
+void ClipManager::addFolder(const QString &id, const QString &name) {
+    m_folderList.insert(id, name);
+}
 
-
+void ClipManager::deleteFolder(const QString &id) {
+    m_folderList.remove(id);
+}
\ No newline at end of file