forked from qt-creator/qt-creator
VcsManager: Add method to get additionalToolsPaths from all IVcsControls
Change-Id: I87910a5a3ccc8e9e00d1b9081ea860832b9fe576 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -85,7 +85,7 @@ public:
|
|||||||
QString topLevel;
|
QString topLevel;
|
||||||
};
|
};
|
||||||
|
|
||||||
VcsManagerPrivate() : m_unconfiguredVcs(0)
|
VcsManagerPrivate() : m_unconfiguredVcs(0), m_cachedAdditionalToolsPathsDirty(true)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
~VcsManagerPrivate()
|
~VcsManagerPrivate()
|
||||||
@@ -180,6 +180,9 @@ public:
|
|||||||
QMap<QString, VcsInfo *> m_cachedMatches;
|
QMap<QString, VcsInfo *> m_cachedMatches;
|
||||||
QList<VcsInfo *> m_vcsInfoList;
|
QList<VcsInfo *> m_vcsInfoList;
|
||||||
IVersionControl *m_unconfiguredVcs;
|
IVersionControl *m_unconfiguredVcs;
|
||||||
|
|
||||||
|
QStringList m_cachedAdditionalToolsPaths;
|
||||||
|
bool m_cachedAdditionalToolsPathsDirty;
|
||||||
};
|
};
|
||||||
|
|
||||||
static VcsManagerPrivate *d = 0;
|
static VcsManagerPrivate *d = 0;
|
||||||
@@ -213,6 +216,8 @@ void VcsManager::extensionsInitialized()
|
|||||||
DocumentManager::instance(), SIGNAL(filesChangedInternally(QStringList)));
|
DocumentManager::instance(), SIGNAL(filesChangedInternally(QStringList)));
|
||||||
connect(versionControl, SIGNAL(repositoryChanged(QString)),
|
connect(versionControl, SIGNAL(repositoryChanged(QString)),
|
||||||
m_instance, SIGNAL(repositoryChanged(QString)));
|
m_instance, SIGNAL(repositoryChanged(QString)));
|
||||||
|
connect(versionControl, SIGNAL(configurationChanged()),
|
||||||
|
m_instance, SLOT(handleConfigurationChanges()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -411,6 +416,17 @@ QString VcsManager::msgToAddToVcsFailed(const QStringList &files, const IVersion
|
|||||||
.arg(vc->displayName(), files.join(QString(QLatin1Char('\n'))));
|
.arg(vc->displayName(), files.join(QString(QLatin1Char('\n'))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QStringList VcsManager::additionalToolsPath()
|
||||||
|
{
|
||||||
|
if (d->m_cachedAdditionalToolsPathsDirty) {
|
||||||
|
d->m_cachedAdditionalToolsPaths.clear();
|
||||||
|
foreach (IVersionControl *vc, allVersionControls())
|
||||||
|
d->m_cachedAdditionalToolsPaths.append(vc->additionalToolsPath());
|
||||||
|
d->m_cachedAdditionalToolsPathsDirty = false;
|
||||||
|
}
|
||||||
|
return d->m_cachedAdditionalToolsPaths;
|
||||||
|
}
|
||||||
|
|
||||||
void VcsManager::promptToAdd(const QString &directory, const QStringList &fileNames)
|
void VcsManager::promptToAdd(const QString &directory, const QStringList &fileNames)
|
||||||
{
|
{
|
||||||
IVersionControl *vc = findVersionControlForDirectory(directory);
|
IVersionControl *vc = findVersionControlForDirectory(directory);
|
||||||
@@ -462,6 +478,11 @@ void VcsManager::configureVcs()
|
|||||||
d->m_unconfiguredVcs->id());
|
d->m_unconfiguredVcs->id());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VcsManager::handleConfigurationChanges()
|
||||||
|
{
|
||||||
|
d->m_cachedAdditionalToolsPathsDirty = true;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Core
|
} // namespace Core
|
||||||
|
|
||||||
#if defined(WITH_TESTS)
|
#if defined(WITH_TESTS)
|
||||||
|
@@ -90,6 +90,12 @@ public:
|
|||||||
static QString msgAddToVcsFailedTitle();
|
static QString msgAddToVcsFailedTitle();
|
||||||
static QString msgToAddToVcsFailed(const QStringList &files, const IVersionControl *vc);
|
static QString msgToAddToVcsFailed(const QStringList &files, const IVersionControl *vc);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Return a list of paths where tools that came with the VCS may be installed.
|
||||||
|
* This is helpful on windows where e.g. git comes with a lot of nice unix tools.
|
||||||
|
*/
|
||||||
|
static QStringList additionalToolsPath();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void repositoryChanged(const QString &repository);
|
void repositoryChanged(const QString &repository);
|
||||||
|
|
||||||
@@ -98,6 +104,7 @@ public slots:
|
|||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
static void configureVcs();
|
static void configureVcs();
|
||||||
|
void handleConfigurationChanges();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit VcsManager(QObject *parent = 0);
|
explicit VcsManager(QObject *parent = 0);
|
||||||
|
Reference in New Issue
Block a user