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() {
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) {
return m_clipIdCounter++;
}
+int ClipManager::getFreeFolderId() {
+ return m_folderIdCounter++;
+}
+
int ClipManager::lastClipId() const {
return m_clipIdCounter - 1;
}
void checkAudioThumbs();
QList <DocClipBase*> documentClipList();
int getFreeClipId();
+ int getFreeFolderId();
int lastClipId() const;
void startAudioThumbsGeneration();
void endAudioThumbsGeneration(const QString &requestedId);
/** the document undo stack*/
KdenliveDoc *m_doc;
int m_clipIdCounter;
+ int m_folderIdCounter;
bool m_audioThumbsEnabled;
QString m_generatingAudioId;
}
void KdenliveDoc::slotAddFolder(const QString folderName) {
- AddFolderCommand *command = new AddFolderCommand(this, folderName, QString::number(m_clipManager->getFreeClipId()), true);
+ AddFolderCommand *command = new AddFolderCommand(this, folderName, QString::number(m_clipManager->getFreeFolderId()), true);
commandStack()->push(command);
setModified(true);
}
//kDebug() << "Adding clip with groupid: " << parent;
ProjectItem *item = NULL;
if (!parent.isEmpty()) {
- ProjectItem *parentitem = getItemById(parent);
+ ProjectItem *parentitem = getFolderItemById(parent);
if (!parentitem) {
QStringList text;
QString groupName = clip->getProperty("groupname");
}
ProjectItem *ProjectList::getItemById(const QString &id) {
+ ProjectItem *item;
QTreeWidgetItemIterator it(listView);
while (*it) {
- if (((ProjectItem *)(*it))->clipId() == id)
- return static_cast<ProjectItem *>(*it);
+ item = static_cast<ProjectItem *>(*it);
+ if (item->clipId() == id && item->clipType() != FOLDER)
+ return item;
++it;
}
return NULL;
-#ifdef USED_TO_BE_THIS
+}
+
+ProjectItem *ProjectList::getFolderItemById(const QString &id) {
+ ProjectItem *item;
+ QTreeWidgetItemIterator it(listView);
while (*it) {
- if (((ProjectItem *)(*it))->clipId() == id)
- break;
+ item = static_cast<ProjectItem *>(*it);
+ if (item->clipId() == id && item->clipType() == FOLDER)
+ return item;
++it;
}
- if (*it) return ((ProjectItem *)(*it));
return NULL;
-#endif
}
void ProjectList::slotSelectClip(const QString &ix) {
int m_clipIdCounter;
void selectItemById(const QString &clipId);
ProjectItem *getItemById(const QString &id);
+ ProjectItem *getFolderItemById(const QString &id);
QAction *m_editAction;
QAction *m_deleteAction;
KdenliveDoc *m_doc;
if (m_mltConsumer && !m_mltConsumer->is_stopped()) {
kDebug() << "///////////// RENDER STOPPED: " << m_name;
m_isBlocked = true;
- m_mltConsumer->set("refresh", 0);
+ //m_mltConsumer->set("refresh", 0);
m_mltConsumer->stop();
// delete m_mltConsumer;
// m_mltConsumer = NULL;
void Render::updatePreviewSettings() {
kDebug() << "////// RESTARTING CONSUMER";
if (!m_mltConsumer || !m_mltProducer) return;
+ if (m_mltProducer->get_playtime() == 0) return;
Mlt::Service service(m_mltProducer->parent().get_service());
if (service.type() != tractor_type) return;
- m_mltConsumer->set("refresh", 0);
+ //m_mltConsumer->set("refresh", 0);
if (!m_mltConsumer->is_stopped()) m_mltConsumer->stop();
m_mltConsumer->purge();
QString scene = sceneList();