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);
}
}