return m_selectedTrack;
}
+QStringList CustomTrackView::selectedClips() const
+{
+ QStringList clipIds;
+ QList<QGraphicsItem *> selection = m_scene->selectedItems();
+ for (int i = 0; i < selection.count(); i++) {
+ if (selection.at(i)->type() == AVWIDGET) {
+ ClipItem *item = (ClipItem *)selection.at(i);
+ clipIds << item->clipProducer();
+ }
+ }
+ return clipIds;
+}
+
void CustomTrackView::slotSelectTrack(int ix)
{
m_selectedTrack = qMax(0, ix);
m_timelineContextMenu->addAction(actionCollection()->action("delete_space"));
m_timelineContextMenu->addAction(actionCollection()->action(KStandardAction::name(KStandardAction::Paste)));
+ m_timelineContextClipMenu->addAction(actionCollection()->action("clip_in_project_tree"));
m_timelineContextClipMenu->addAction(actionCollection()->action("edit_item_duration"));
m_timelineContextClipMenu->addAction(actionCollection()->action("delete_timeline_clip"));
m_timelineContextClipMenu->addAction(actionCollection()->action("group_clip"));
KAction* editItemDuration = new KAction(KIcon("measure"), i18n("Edit Duration"), this);
collection->addAction("edit_item_duration", editItemDuration);
connect(editItemDuration, SIGNAL(triggered(bool)), this, SLOT(slotEditItemDuration()));
+
+ KAction* clipInProjectTree = new KAction(KIcon("go-jump-definition"), i18n("Clip in Project Tree"), this);
+ collection->addAction("clip_in_project_tree", clipInProjectTree);
+ connect(clipInProjectTree, SIGNAL(triggered(bool)), this, SLOT(slotClipInProjectTree()));
KAction* insertOvertwrite = new KAction(KIcon(), i18n("Insert Clip Zone in Timeline (Overwrite)"), this);
insertOvertwrite->setShortcut(Qt::Key_V);
QList <QAction *> actionList;
- for (int i = 0; i < matching.size(); ++i) {
+ for (int i = 0; i < matching.count(); ++i) {
QString track = QString::number(matching.at(i).track);
QString start = m_activeDocument->timecode().getTimecode(matching.at(i).startPos);
int j = 0;
}
}
+void MainWindow::slotClipInProjectTree()
+{
+ if (m_activeTimeline) {
+ const QStringList &clipIds = m_activeTimeline->projectView()->selectedClips();
+ if (clipIds.isEmpty()) return;
+ m_projectListDock->raise();
+ for (int i = 0; i < clipIds.count(); i++) {
+ m_projectList->selectItemById(clipIds.at(i));
+ }
+ if (m_projectMonitor->isActive())
+ slotSwitchMonitors();
+ }
+}
+
void MainWindow::slotSelectClipInTimeline()
{
if (m_activeTimeline) {
void MainWindow::slotSwitchMonitors()
{
- m_monitorManager->slotSwitchMonitors(m_clipMonitor->isActive());
+ m_monitorManager->slotSwitchMonitors(!m_clipMonitor->isActive());
if (m_projectMonitor->isActive()) m_activeTimeline->projectView()->setFocus();
else m_projectList->focusTree();
}
void doUpdateClipCut(const QString &id, const QPoint oldzone, const QPoint zone, const QString &comment);
bool hasMissingClips();
void deleteProjectFolder(QMap <QString, QString> map);
+ void selectItemById(const QString &clipId);
public slots:
void setDocument(KdenliveDoc *doc);
QTimer m_queueTimer;
QMenu *m_menu;
QUndoStack *m_commandStack;
- void selectItemById(const QString &clipId);
ProjectItem *getItemById(const QString &id);
QTreeWidgetItem *getAnyItemById(const QString &id);
FolderProjectItem *getFolderItemById(const QString &id);