forked from qt-creator/qt-creator
QbsProjectManager: Support UI-based file renaming.
Task-number: QBS-652 Change-Id: Iaaf767871b1f546814acec62330e2c8d732b8d75 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This commit is contained in:
@@ -336,6 +336,7 @@ static QList<ProjectExplorer::ProjectAction> supportedNodeActions(ProjectExplore
|
||||
if (node->nodeType() == ProjectExplorer::FileNodeType
|
||||
&& !project->qbsProject().buildSystemFiles().contains(node->path())) {
|
||||
actions << ProjectExplorer::RemoveFile;
|
||||
actions << ProjectExplorer::Rename;
|
||||
}
|
||||
return actions;
|
||||
}
|
||||
@@ -417,6 +418,19 @@ bool QbsGroupNode::removeFiles(const QStringList &filePaths, QStringList *notRem
|
||||
m_qbsGroupData, notRemoved);
|
||||
}
|
||||
|
||||
bool QbsGroupNode::renameFile(const QString &filePath, const QString &newFilePath)
|
||||
{
|
||||
QbsProjectNode * const prjNode = parentQbsProjectNode(this);
|
||||
if (!prjNode || !prjNode->qbsProject().isValid())
|
||||
return false;
|
||||
QbsProductNode * const prdNode = parentQbsProductNode(this);
|
||||
if (!prdNode || !prdNode->qbsProductData().isValid())
|
||||
return false;
|
||||
|
||||
return prjNode->project()->renameFileInProduct(this, filePath, newFilePath,
|
||||
prdNode->qbsProductData(), m_qbsGroupData);
|
||||
}
|
||||
|
||||
void QbsGroupNode::updateQbsGroupData(const qbs::GroupData &grp, const QString &productPath,
|
||||
bool productWasEnabled, bool productIsEnabled)
|
||||
{
|
||||
@@ -623,6 +637,17 @@ bool QbsProductNode::removeFiles(const QStringList &filePaths, QStringList *notR
|
||||
QTC_ASSERT(false, return false);
|
||||
}
|
||||
|
||||
bool QbsProductNode::renameFile(const QString &filePath, const QString &newFilePath)
|
||||
{
|
||||
QbsProjectNode * const prjNode = parentQbsProjectNode(this);
|
||||
if (!prjNode || !prjNode->qbsProject().isValid())
|
||||
return false;
|
||||
const qbs::GroupData grp = findMainQbsGroup(m_qbsProductData);
|
||||
QTC_ASSERT(grp.isValid(), return false);
|
||||
return prjNode->project()->renameFileInProduct(this, filePath, newFilePath, m_qbsProductData,
|
||||
grp);
|
||||
}
|
||||
|
||||
void QbsProductNode::setQbsProductData(const qbs::Project &project, const qbs::ProductData prd)
|
||||
{
|
||||
if (m_qbsProductData == prd)
|
||||
|
||||
Reference in New Issue
Block a user