diff --git a/src/bin/bin.h b/src/bin/bin.h --- a/src/bin/bin.h +++ b/src/bin/bin.h @@ -393,6 +393,7 @@ void slotDisableEffects(bool disable); /** @brief Rename a Bin Folder. */ void slotRenameFolder(); + void slotRenameSubClip(); void slotCreateAudioThumbs(); void doRefreshPanel(const QString &id); /** @brief Send audio thumb data to monitor for display. */ @@ -519,6 +520,7 @@ QAction *m_proxyAction; QAction *m_deleteAction; QAction *m_renameFolderAction; + QAction *m_renameSubClipAction; QMenu *m_jobsMenu; QAction *m_cancelJobs; QAction *m_discardCurrentClipJobs; diff --git a/src/bin/bin.cpp b/src/bin/bin.cpp --- a/src/bin/bin.cpp +++ b/src/bin/bin.cpp @@ -616,6 +616,11 @@ m_renameFolderAction->setData("rename_folder"); pCore->window()->actionCollection()->addAction(QStringLiteral("rename_folder"), m_renameFolderAction); + m_renameSubClipAction = new QAction(i18n("Rename Clip/SubClip"), this); + connect(m_renameSubClipAction, &QAction::triggered, this, &Bin::slotRenameSubClip); + m_renameSubClipAction->setData("rename_subclip"); + pCore->window()->actionCollection()->addAction(QStringLiteral("rename_subclip"), m_renameSubClipAction); + listType->setToolBarMode(KSelectAction::MenuMode); connect(listType, SIGNAL(triggered(QAction *)), this, SLOT(slotInitView(QAction *))); @@ -1895,6 +1900,8 @@ m_clipsActionsMenu->setEnabled(enableClipActions); m_extractAudioAction->setEnabled(enableClipActions); m_renameFolderAction->setVisible(isFolder); + m_renameSubClipAction->setEnabled(enableClipActions); + m_renameSubClipAction->setVisible(!isFolder); m_openAction->setVisible(!isFolder); m_reloadAction->setVisible(!isFolder); m_duplicateAction->setVisible(!isFolder); @@ -2319,6 +2326,7 @@ m_menu->addAction(m_editAction); m_menu->addAction(m_openAction); m_menu->addAction(m_renameFolderAction); + m_menu->addAction(m_renameSubClipAction); m_menu->addAction(m_deleteAction); m_menu->insertSeparator(m_deleteAction); } @@ -3806,6 +3814,23 @@ } } +void Bin::slotRenameSubClip() +{ + const QModelIndexList indexes = m_proxyModel->selectionModel()->selectedIndexes(); + for (const QModelIndex &ix : indexes) { + if (!ix.isValid() || ix.column() != 0) { + continue; + } + AbstractProjectItem *item = static_cast(m_proxyModel->mapToSource(ix).internalPointer()); + ProjectClip *currentItem = qobject_cast(item); + if (currentItem) { + m_itemView->setProperty("editing", true); + m_itemView->edit(ix); + return; + } + } +} + void Bin::refreshProxySettings() { QList clipList = m_rootFolder->childClips();