From 6bc346443a3eed91a0ee244c079e203e453d2276 Mon Sep 17 00:00:00 2001 From: dt Date: Wed, 18 Aug 2010 12:53:37 +0200 Subject: [PATCH] Fix hangs on trying to cdUp through not longer existing directories --- src/plugins/qt4projectmanager/qt4project.cpp | 23 ++++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 2afffce55cd..aee1ebc936b 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -1226,21 +1226,30 @@ void CentralizedFolderWatcher::folderChanged(const QString &folder) qDebug()<<"CFW::folderChanged"< nodes = m_map.values(path); + if (!dir.endsWith('/')) + dir.append('/'); + QList nodes = m_map.values(dir); foreach (Qt4PriFileNode *node, nodes) { node->folderChanged(folder); } - if (dir.isRoot()) + // Chop off last part, and break if there's nothing to chop off + // + if (dir.length() < 2) break; - dir.cdUp(); + + // We start before the last slash + int index = dir.lastIndexOf('/', dir.length() - 2); + if (index == -1) + break; + dir = dir.left(index + 1); } + QString folderWithSlash = folder; if (!folder.endsWith('/')) folderWithSlash.append('/');