From 5923733889075800a0979c73476bf3bbae204e89 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Fri, 23 Apr 2010 16:21:02 +0200 Subject: [PATCH] VCS: Speed up Do not listen on ICore::contextChanged to update actions (became slow after additional contexts). git: Make code to find top level faster, avoid constructing file info lists. Acked-by: con --- src/plugins/git/gitclient.cpp | 16 +--------------- src/plugins/git/gitclient.h | 1 - src/plugins/vcsbase/vcsbaseplugin.cpp | 2 -- 3 files changed, 1 insertion(+), 18 deletions(-) diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 6102efcc866..242e42db45a 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -153,28 +153,14 @@ GitClient::~GitClient() const char *GitClient::noColorOption = "--no-color"; -QString GitClient::findRepositoryForFile(const QString &fileName) -{ - const QString gitDirectory = QLatin1String(kGitDirectoryC); - const QFileInfo info(fileName); - QDir dir = info.absoluteDir(); - do { - if (dir.entryList(QDir::AllDirs|QDir::Hidden).contains(gitDirectory)) - return dir.absolutePath(); - } while (dir.cdUp()); - - return QString(); -} - QString GitClient::findRepositoryForDirectory(const QString &dir) { const QString gitDirectory = QLatin1String(kGitDirectoryC); QDir directory(dir); do { - if (directory.entryList(QDir::AllDirs|QDir::Hidden).contains(gitDirectory)) + if (QFileInfo(directory, gitDirectory).isDir()) return directory.absolutePath(); } while (directory.cdUp()); - return QString(); } diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index 81803fe8b2e..99f95fd6e01 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -75,7 +75,6 @@ public: bool managesDirectory(const QString &) const { return false; } QString findTopLevelForDirectory(const QString &) const { return QString(); } - static QString findRepositoryForFile(const QString &fileName); static QString findRepositoryForDirectory(const QString &dir); void diff(const QString &workingDirectory, const QStringList &diffArgs, const QString &fileName); diff --git a/src/plugins/vcsbase/vcsbaseplugin.cpp b/src/plugins/vcsbase/vcsbaseplugin.cpp index 40d781fcb0c..436920142f2 100644 --- a/src/plugins/vcsbase/vcsbaseplugin.cpp +++ b/src/plugins/vcsbase/vcsbaseplugin.cpp @@ -173,8 +173,6 @@ StateListener::StateListener(QObject *parent) : QObject(parent) { Core::ICore *core = Core::ICore::instance(); - connect(core, SIGNAL(contextChanged(Core::IContext*,QList<int>)), - this, SLOT(slotStateChanged())); connect(core->fileManager(), SIGNAL(currentFileChanged(QString)), this, SLOT(slotStateChanged())); -- GitLab