summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppprojectupdater.h
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2019-08-29 11:34:13 +0200
committerEike Ziller <eike.ziller@qt.io>2019-09-13 06:43:02 +0000
commitb6c227714664aa6024f1390c0deaf692c6e05ef6 (patch)
treecc431c038deff40e243c354b7c6ecffd40cc57b5 /src/plugins/cpptools/cppprojectupdater.h
parent3beab5c985184f760ee0f06447db7f8b418ee1ee (diff)
downloadqt-creator-b6c227714664aa6024f1390c0deaf692c6e05ef6.tar.gz
GenericProject: Make dependency on CppTools optional
Especially in the light of the language server, the generic project is currently the project one can use for language servers that require a "project workspace". Makes it possibly to run Qt Creator with "-noload CppTools" if you still want to use generic projects with some other language. Change-Id: Ib9059289a2db4c44c0c1060a02fcdafacb885fbd Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppprojectupdater.h')
-rw-r--r--src/plugins/cpptools/cppprojectupdater.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/plugins/cpptools/cppprojectupdater.h b/src/plugins/cpptools/cppprojectupdater.h
index 460cf707fb..5d95fa087c 100644
--- a/src/plugins/cpptools/cppprojectupdater.h
+++ b/src/plugins/cpptools/cppprojectupdater.h
@@ -25,6 +25,7 @@
#pragma once
+#include "cppprojectupdaterinterface.h"
#include "cpptools_global.h"
#include "projectinfo.h"
@@ -35,7 +36,18 @@ namespace CppTools {
class ProjectInfo;
-class CPPTOOLS_EXPORT CppProjectUpdater : public QObject
+// registered in extensionsystem's object pool for plugins with weak dependency to CppTools
+class CPPTOOLS_EXPORT CppProjectUpdaterFactory : public QObject
+{
+ Q_OBJECT
+public:
+ CppProjectUpdaterFactory();
+
+ // keep the namespace, for the type name in the invokeMethod call
+ Q_INVOKABLE CppTools::CppProjectUpdaterInterface *create();
+};
+
+class CPPTOOLS_EXPORT CppProjectUpdater : public QObject, public CppProjectUpdaterInterface
{
Q_OBJECT
@@ -43,8 +55,8 @@ public:
CppProjectUpdater();
~CppProjectUpdater() override;
- void update(const ProjectExplorer::ProjectUpdateInfo &projectUpdateInfo);
- void cancel();
+ void update(const ProjectExplorer::ProjectUpdateInfo &projectUpdateInfo) override;
+ void cancel() override;
private:
void cancelAndWaitForFinished();