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:
Christian Kandeler
2014-09-11 17:12:03 +02:00
parent d87f3d53c7
commit e50b75eb66
4 changed files with 61 additions and 0 deletions

View File

@@ -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)