VcsManager: Register IVersionControls with VcsManager

Get some more objects out of the pool.

Change-Id: Id93021b712307c4777dc39b9d15aa18a46318885
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Tobias Hunger
2017-06-15 13:37:33 +02:00
parent 9a4394fa2d
commit 19c9194b11
11 changed files with 50 additions and 49 deletions

View File

@@ -56,9 +56,17 @@ class CORE_EXPORT VcsManager : public QObject
public:
static VcsManager *instance();
template <typename T, typename... Args>
static T *registerVersionControl(Args&&... args)
{
T *vc = new T(std::forward<Args>(args)...);
addVersionControl(vc);
return vc;
}
static void extensionsInitialized();
static QList<IVersionControl *> versionControls();
static const QList<IVersionControl *> versionControls();
static IVersionControl *versionControl(Id id);
static void resetVersionControlForDirectory(const QString &inputDirectory);
@@ -102,6 +110,8 @@ private:
explicit VcsManager(QObject *parent = 0);
~VcsManager();
static void addVersionControl(IVersionControl *vc);
void handleConfigurationChanges();
friend class Core::Internal::MainWindow;