From 11dc7aee6366587e4d9de8799eaf6179a48882ce Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Wed, 25 Nov 2009 13:58:51 +0000 Subject: [PATCH] ask for a description when adding a cut zone to project tree svn path=/trunk/kdenlive/; revision=4145 --- src/addclipcutcommand.cpp | 7 ++++--- src/addclipcutcommand.h | 3 ++- src/projectlist.cpp | 11 ++++++++--- src/projectlist.h | 2 +- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/addclipcutcommand.cpp b/src/addclipcutcommand.cpp index 0eb5e7e3..d5bf0829 100644 --- a/src/addclipcutcommand.cpp +++ b/src/addclipcutcommand.cpp @@ -22,13 +22,14 @@ #include -AddClipCutCommand::AddClipCutCommand(ProjectList *list, const QString &id, int in, int out, const QString desc, bool remove, QUndoCommand * parent) : +AddClipCutCommand::AddClipCutCommand(ProjectList *list, const QString &id, int in, int out, const QString desc, bool newItem, bool remove, QUndoCommand * parent) : QUndoCommand(parent), m_list(list), m_id(id), m_in(in), m_out(out), m_desc(desc), + m_newItem(newItem), m_remove(remove) { setText(i18n("Add clip cut")); @@ -38,13 +39,13 @@ AddClipCutCommand::AddClipCutCommand(ProjectList *list, const QString &id, int i // virtual void AddClipCutCommand::undo() { - if (m_remove) m_list->addClipCut(m_id, m_in, m_out, m_desc); + if (m_remove) m_list->addClipCut(m_id, m_in, m_out, m_desc, m_newItem); else m_list->removeClipCut(m_id, m_in, m_out); } // virtual void AddClipCutCommand::redo() { if (m_remove) m_list->removeClipCut(m_id, m_in, m_out); - else m_list->addClipCut(m_id, m_in, m_out, m_desc); + else m_list->addClipCut(m_id, m_in, m_out, m_desc, m_newItem); } diff --git a/src/addclipcutcommand.h b/src/addclipcutcommand.h index 7a8f832d..96f3239e 100644 --- a/src/addclipcutcommand.h +++ b/src/addclipcutcommand.h @@ -29,7 +29,7 @@ class ProjectList; class AddClipCutCommand : public QUndoCommand { public: - AddClipCutCommand(ProjectList *list, const QString &id, int in, int out, const QString desc, bool remove, QUndoCommand * parent = 0); + AddClipCutCommand(ProjectList *list, const QString &id, int in, int out, const QString desc, bool newItem, bool remove, QUndoCommand * parent = 0); virtual void undo(); virtual void redo(); @@ -40,6 +40,7 @@ private: int m_in; int m_out; QString m_desc; + bool m_newItem; bool m_remove; }; diff --git a/src/projectlist.cpp b/src/projectlist.cpp index 10be0cd1..bc616543 100644 --- a/src/projectlist.cpp +++ b/src/projectlist.cpp @@ -335,6 +335,7 @@ void ProjectList::slotClipSelected() ProjectItem *clip; if (m_listView->currentItem()->type() == PROJECTSUBCLIPTYPE) { // this is a sub item, use base clip + m_deleteAction->setEnabled(true); clip = static_cast (m_listView->currentItem()->parent()); if (clip == NULL) kDebug() << "-----------ERROR"; SubProjectItem *sub = static_cast (m_listView->currentItem()); @@ -512,7 +513,7 @@ void ProjectList::slotRemoveClip() // subitem SubProjectItem *sub = static_cast (selected.at(i)); ProjectItem *item = static_cast (sub->parent()); - new AddClipCutCommand(this, item->clipId(), sub->zone().x(), sub->zone().y(), sub->description(), true, delCommand); + new AddClipCutCommand(this, item->clipId(), sub->zone().x(), sub->zone().y(), sub->description(), false, true, delCommand); } else if (selected.at(i)->type() == PROJECTFOLDERTYPE) { // folder FolderProjectItem *folder = static_cast (selected.at(i)); @@ -1271,11 +1272,11 @@ void ProjectList::slotAddClipCut(const QString &id, int in, int out) ProjectItem *clip = getItemById(id); if (clip == NULL) return; if (clip->referencedClip()->hasCutZone(QPoint(in, out))) return; - AddClipCutCommand *command = new AddClipCutCommand(this, id, in, out, QString(), false); + AddClipCutCommand *command = new AddClipCutCommand(this, id, in, out, QString(), true, false); m_commandStack->push(command); } -void ProjectList::addClipCut(const QString &id, int in, int out, const QString desc) +void ProjectList::addClipCut(const QString &id, int in, int out, const QString desc, bool newItem) { ProjectItem *clip = getItemById(id); if (clip) { @@ -1283,6 +1284,10 @@ void ProjectList::addClipCut(const QString &id, int in, int out, const QString d base->addCutZone(in, out); m_listView->blockSignals(true); SubProjectItem *sub = new SubProjectItem(clip, in, out, desc); + if (newItem && desc.isEmpty() && !m_listView->isColumnHidden(1)) { + if (!clip->isExpanded()) clip->setExpanded(true); + m_listView->editItem(sub, 1); + } QPixmap p = clip->referencedClip()->thumbProducer()->extractImage(in, (int)(sub->sizeHint(0).height() * m_render->dar()), sub->sizeHint(0).height() - 2); sub->setData(0, Qt::DecorationRole, p); m_doc->cachePixmap(clip->getClipHash() + '#' + QString::number(in), p); diff --git a/src/projectlist.h b/src/projectlist.h index c7ef75d5..708bcd30 100644 --- a/src/projectlist.h +++ b/src/projectlist.h @@ -141,7 +141,7 @@ public: void cleanup(); void trashUnusedClips(); QList documentClipList() const; - void addClipCut(const QString &id, int in, int out, const QString desc); + void addClipCut(const QString &id, int in, int out, const QString desc, bool newItem); void removeClipCut(const QString &id, int in, int out); void focusTree() const; SubProjectItem *getSubItem(ProjectItem *clip, QPoint zone); -- 2.39.2