void ClipManager::slotDeleteClip(const QString &clipId)
{
- for (int i = 0; i < m_clipList.count(); i++) {
- if (m_clipList.at(i)->getId() == clipId) {
- AddClipCommand *command = new AddClipCommand(m_doc, m_clipList.at(i)->toXML(), clipId, false);
- m_doc->commandStack()->push(command);
- break;
- }
+ DocClipBase *clip = getClipById(clipId);
+ if (clip) {
+ AddClipCommand *command = new AddClipCommand(m_doc, clip->toXML(), clipId, false);
+ m_doc->commandStack()->push(command);
}
}
{
for (int i = 0; i < m_clipList.count(); i++) {
if (m_clipList.at(i)->getId() == clipId) {
- DocClipBase *clip = m_clipList.takeAt(i);
- delete clip;
- clip = NULL;
+ delete m_clipList.takeAt(i);
break;
}
}
DocClipBase *ClipManager::getClipByResource(QString resource)
{
+ QString clipResource;
for (int i = 0; i < m_clipList.count(); i++) {
- if (m_clipList.at(i)->getProperty("resource") == resource) {
+ clipResource = m_clipList.at(i)->getProperty("resource");
+ if (clipResource.isEmpty()) clipResource = m_clipList.at(i)->getProperty("colour");
+ if (clipResource == resource) {
return m_clipList.at(i);
}
}
QDomElement prod = doc.createElement("producer");
doc.appendChild(prod);
prod.setAttribute("resource", imagePath);
- prod.setAttribute("titlename", titleName);
+ prod.setAttribute("name", titleName);
prod.setAttribute("xmldata", xml);
uint id = m_clipIdCounter++;
prod.setAttribute("id", QString::number(id));
m_doc->commandStack()->push(command);
}
+void ClipManager::slotAddTextTemplateClip(QString titleName, const QString imagePath, const KUrl path, const QString group, const QString &groupId)
+{
+ QDomDocument doc;
+ QDomElement prod = doc.createElement("producer");
+ doc.appendChild(prod);
+ prod.setAttribute("resource", imagePath);
+ prod.setAttribute("name", titleName);
+ prod.setAttribute("xmltemplate", path.path());
+ uint id = m_clipIdCounter++;
+ prod.setAttribute("id", QString::number(id));
+ if (!group.isEmpty()) {
+ prod.setAttribute("groupname", group);
+ prod.setAttribute("groupid", groupId);
+ }
+ prod.setAttribute("type", (int) TEXT);
+ prod.setAttribute("transparency", "1");
+ prod.setAttribute("in", "0");
+ prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()) - 1);
+ AddClipCommand *command = new AddClipCommand(m_doc, doc.documentElement(), QString::number(id), true);
+ m_doc->commandStack()->push(command);
+}
+
int ClipManager::getFreeClipId()
{
return m_clipIdCounter++;