aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/subversion
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2016-10-20 13:06:11 +0200
committerTobias Hunger <tobias.hunger@qt.io>2016-10-21 13:04:40 +0000
commit28325aa446e59cfc428ed48e7a29a64cfd006431 (patch)
tree58a67dbbdb31cee7178b25025c8f3022efb932d0 /src/plugins/subversion
parent768eb4e52ecf5da9b25c05828c666d28560d735d (diff)
VCS: Add a way to filter out files/directories that belong to a VCS
Change-Id: I4dcbe6242cfe327e3b72d3dd550309be45e326a9 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/subversion')
-rw-r--r--src/plugins/subversion/subversioncontrol.cpp5
-rw-r--r--src/plugins/subversion/subversioncontrol.h1
-rw-r--r--src/plugins/subversion/subversionplugin.cpp10
-rw-r--r--src/plugins/subversion/subversionplugin.h2
4 files changed, 18 insertions, 0 deletions
diff --git a/src/plugins/subversion/subversioncontrol.cpp b/src/plugins/subversion/subversioncontrol.cpp
index c8de2421b7..e7265534ea 100644
--- a/src/plugins/subversion/subversioncontrol.cpp
+++ b/src/plugins/subversion/subversioncontrol.cpp
@@ -77,6 +77,11 @@ Core::Id SubversionControl::id() const
return Core::Id(VcsBase::Constants::VCS_ID_SUBVERSION);
}
+bool SubversionControl::isVcsFileOrDirectory(const Utils::FileName &fileName) const
+{
+ return m_plugin->isVcsDirectory(fileName);
+}
+
bool SubversionControl::isConfigured() const
{
const Utils::FileName binary = m_plugin->client()->vcsBinary();
diff --git a/src/plugins/subversion/subversioncontrol.h b/src/plugins/subversion/subversioncontrol.h
index 3fa0c35e1d..8e63be6427 100644
--- a/src/plugins/subversion/subversioncontrol.h
+++ b/src/plugins/subversion/subversioncontrol.h
@@ -40,6 +40,7 @@ public:
explicit SubversionControl(SubversionPlugin *plugin);
QString displayName() const final;
Core::Id id() const final;
+ bool isVcsFileOrDirectory(const Utils::FileName &fileName) const final;
bool managesDirectory(const QString &directory, QString *topLevel = 0) const final;
bool managesFile(const QString &workingDirectory, const QString &fileName) const final;
diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp
index d52f10aa8a..8998303afa 100644
--- a/src/plugins/subversion/subversionplugin.cpp
+++ b/src/plugins/subversion/subversionplugin.cpp
@@ -54,6 +54,7 @@
#include <coreplugin/locator/commandlocator.h>
#include <coreplugin/messagemanager.h>
+#include <utils/algorithm.h>
#include <utils/fileutils.h>
#include <utils/hostosinfo.h>
#include <utils/mimetypes/mimedatabase.h>
@@ -408,6 +409,15 @@ bool SubversionPlugin::initialize(const QStringList & /*arguments */, QString *e
return true;
}
+bool SubversionPlugin::isVcsDirectory(const FileName &fileName)
+{
+ const QString baseName = fileName.fileName();
+ return fileName.toFileInfo().isDir()
+ && contains(m_svnDirectories, [baseName](const QString &s) {
+ return baseName.compare(s, HostOsInfo::fileNameCaseSensitivity());
+ });
+}
+
SubversionClient *SubversionPlugin::client() const
{
QTC_CHECK(m_client);
diff --git a/src/plugins/subversion/subversionplugin.h b/src/plugins/subversion/subversionplugin.h
index da05a072a5..3c614eeb7c 100644
--- a/src/plugins/subversion/subversionplugin.h
+++ b/src/plugins/subversion/subversionplugin.h
@@ -73,6 +73,8 @@ public:
bool initialize(const QStringList &arguments, QString *errorMessage);
+ bool isVcsDirectory(const Utils::FileName &fileName);
+
SubversionClient *client() const;
SubversionSubmitEditor *openSubversionSubmitEditor(const QString &fileName);