summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndre Hartmann <aha_1980@gmx.de>2011-10-24 21:42:11 +0200
committerDaniel Teske <daniel.teske@nokia.com>2011-10-27 12:11:16 +0200
commit6de2b281301ac57e1da2a645e253561fd347e33e (patch)
treef2b82e42bacee15bf81e20ae1868919293ad3e1a /src
parenta5543b892025d34eb326028d6795db4ad8421d0a (diff)
downloadqt-creator-6de2b281301ac57e1da2a645e253561fd347e33e.tar.gz
Implemented rename file feature for generic projects.
Change-Id: I195c48c5eaa458bdb537a8de4d7b71f17a704f41 Reviewed-by: Thorbjørn Lindeijer Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/genericprojectmanager/genericproject.cpp16
-rw-r--r--src/plugins/genericprojectmanager/genericproject.h1
-rw-r--r--src/plugins/genericprojectmanager/genericprojectnodes.cpp8
3 files changed, 21 insertions, 4 deletions
diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index e626457b31..e87a4a78ed 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -190,6 +190,22 @@ bool GenericProject::setFiles(const QStringList &filePaths)
return saveRawFileList(newList);
}
+bool GenericProject::renameFile(const QString &filePath, const QString &newFilePath)
+{
+ QStringList newList = m_rawFileList;
+
+ QHash<QString, QString>::iterator i = m_rawListEntries.find(filePath);
+ if (i != m_rawListEntries.end()) {
+ int index = newList.indexOf(i.value());
+ if (index != -1) {
+ QDir baseDir(QFileInfo(m_fileName).dir());
+ newList.replace(index, baseDir.relativeFilePath(newFilePath));
+ }
+ }
+
+ return saveRawFileList(newList);
+}
+
void GenericProject::parseProject(RefreshOptions options)
{
if (options & Files) {
diff --git a/src/plugins/genericprojectmanager/genericproject.h b/src/plugins/genericprojectmanager/genericproject.h
index 7352ba8cf9..3d3a962ec6 100644
--- a/src/plugins/genericprojectmanager/genericproject.h
+++ b/src/plugins/genericprojectmanager/genericproject.h
@@ -97,6 +97,7 @@ public:
bool addFiles(const QStringList &filePaths);
bool removeFiles(const QStringList &filePaths);
bool setFiles(const QStringList &filePaths);
+ bool renameFile(const QString &filePath, const QString &newFilePath);
enum RefreshOptions {
Files = 0x01,
diff --git a/src/plugins/genericprojectmanager/genericprojectnodes.cpp b/src/plugins/genericprojectmanager/genericprojectnodes.cpp
index 75d07728e0..78b048a6cc 100644
--- a/src/plugins/genericprojectmanager/genericprojectnodes.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectnodes.cpp
@@ -175,7 +175,8 @@ QList<ProjectExplorer::ProjectNode::ProjectAction> GenericProjectNode::supported
return QList<ProjectAction>()
<< AddNewFile
<< AddExistingFile
- << RemoveFile;
+ << RemoveFile
+ << Rename;
}
bool GenericProjectNode::canAddSubProject(const QString &proFilePath) const
@@ -226,9 +227,8 @@ bool GenericProjectNode::renameFile(const ProjectExplorer::FileType fileType,
const QString &filePath, const QString &newFilePath)
{
Q_UNUSED(fileType)
- Q_UNUSED(filePath)
- Q_UNUSED(newFilePath)
- return false;
+
+ return m_project->renameFile(filePath, newFilePath);
}
QList<ProjectExplorer::RunConfiguration *> GenericProjectNode::runConfigurationsFor(Node *node)