[prev in list] [next in list] [prev in thread] [next in thread]
List: kdevelop-bugs
Subject: [Bug 232137] Renaming a non-cmake-managed folder hides it's children
From: Aleix Pol <aleixpol () kde ! org>
Date: 2010-08-31 0:12:07
Message-ID: 20100831001207.8D4A863754 () immanuel ! kde ! org
[Download RAW message or body]
https://bugs.kde.org/show_bug.cgi?id=232137
Aleix Pol <aleixpol@kde.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
--- Comment #1 from Aleix Pol <aleixpol kde org> 2010-08-31 02:12:00 ---
commit 9e07424f59343a613d58bfe395860cf8e10eecd5
Author: Aleix Pol <aleixpol@kde.org>
Date: Tue Aug 31 01:01:54 2010 +0200
Fix crash on renaming and make sure that folder renaming works.
BUG: 232137
diff --git a/projectmanagers/cmake/cmakemanager.cpp
b/projectmanagers/cmake/cmakemanager.cpp
index 03de133..392be5f 100644
--- a/projectmanagers/cmake/cmakemanager.cpp
+++ b/projectmanagers/cmake/cmakemanager.cpp
@@ -363,6 +363,7 @@ QList<KDevelop::ProjectFolderItem*> CMakeManager::parse(
KDevelop::ProjectFolder
}
else
{
+ reloadFiles(folder);
KDevelop::ReferencedTopDUContext curr;
if(item==item->project()->projectItem())
@@ -585,12 +586,9 @@ QList<KDevelop::ProjectFolderItem*> CMakeManager::parse(
KDevelop::ProjectFolder
setTargetFiles(targetItem, tfiles);
}
-
}
}
- reloadFiles(item);
-
return folderList;
}
@@ -809,14 +807,26 @@ void CMakeManager::dirtyFile(const QString & dirty)
QList<ProjectFolderItem*> folders=p->foldersForUrl(dirty);
Q_ASSERT(folders.isEmpty() || folders.size()==1);
- if(!folders.isEmpty())
+ if(!folders.isEmpty()) {
+ QMutexLocker locker(&m_busyProjectsMutex);
+ m_busyProjects += folders.first();
+ locker.unlock();
+
reloadFiles(folders.first());
+
+ locker.relock();
+ m_busyProjects.remove(folders.first());
+ locker.unlock();
+ }
}
}
void CMakeManager::reloadFiles(ProjectFolderItem* item)
{
- QStringList entriesL = QDir(item->url().toLocalFile()).entryList(
QDir::AllEntries | QDir::NoDotAndDotDot );
+ QDir d(item->url().toLocalFile());
+ Q_ASSERT(d.exists());
+
+ QStringList entriesL = d.entryList( QDir::AllEntries |
QDir::NoDotAndDotDot );
QSet<QString> entries = filterFiles(entriesL);
KUrl folderurl = item->url();
@@ -1373,6 +1383,9 @@ bool CMakeManager::renameFolder(ProjectFolderItem* _it,
const KUrl& newUrl)
QString newName=KUrl::relativePath(lists.upUrl().path(), newUrl.path());
if(newName.startsWith("./"))
newName.remove(0,2);
+
+ KUrl url = it->url();
+ IProject* project = it->project();
ApplyChangesWidget e;
e.setCaption(it->text());
@@ -1384,12 +1397,9 @@ bool CMakeManager::renameFolder(ProjectFolderItem* _it,
const KUrl& newUrl)
bool ret = e.document()->replaceText(r, newName);
- ret= ret && e.exec() == QDialog::Accepted;
- if(ret)
- {
- ret = e.applyAllChanges();
- ret = ret && KDevelop::renameUrl(it->project(), it->url(), newUrl);
- }
+ ret &= e.exec() == QDialog::Accepted;
+ ret &= KDevelop::renameUrl(project, url, newUrl);
+ ret &= e.applyAllChanges();
return ret;
}
--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
KDevelop-bugs mailing list
KDevelop-bugs@kdevelop.org
https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-bugs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic