aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOrkun Tokdemir <orkun.tokdemir@qt.io>2024-11-29 15:53:54 +0100
committerOrkun Tokdemir <orkun.tokdemir@qt.io>2024-12-02 09:50:17 +0000
commitaa67881c5a8878e5621526e9eda1797368468105 (patch)
treece439a568f849528ca9d43acaf511b7e8db53b14
parent28c9812401c972aa806103b9b538b68e7f81fcd4 (diff)
qt-core: Set config values for other extensions when a project is added
In the current implementation, when multi-root workspaces are used, the config values for other extensions are not set when a project is added. This causes not to generate cmake kits and set wrong qmlls parameters. Change-Id: I669406cf304f21e21fce9a6e459285021e467d2f Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
-rw-r--r--qt-core/src/extension.ts15
-rw-r--r--qt-core/src/project.ts20
2 files changed, 21 insertions, 14 deletions
diff --git a/qt-core/src/extension.ts b/qt-core/src/extension.ts
index 5384c3e..ba151e3 100644
--- a/qt-core/src/extension.ts
+++ b/qt-core/src/extension.ts
@@ -43,7 +43,7 @@ export async function activate(context: vscode.ExtensionContext) {
if (vscode.workspace.workspaceFolders !== undefined) {
for (const folder of vscode.workspace.workspaceFolders) {
const project = await createCoreProject(folder, context);
- projectManager.addProject(project);
+ projectManager.addProject(project, true);
}
}
context.subscriptions.push(...registerDocumentationCommands());
@@ -90,17 +90,6 @@ export function initCoreValues() {
coreAPI?.update(globalUpdateMessage);
for (const project of projectManager.getProjects()) {
- const folder = project.folder;
- const message = new QtWorkspaceConfigMessage(folder);
- message.config.set(
- QtInsRootConfigName,
- CoreProjectManager.getWorkspaceFolderQtInsRoot(folder)
- );
- message.config.set(
- AdditionalQtPathsName,
- CoreProjectManager.getWorkspaceFolderAdditionalQtPaths(folder)
- );
- logger.info('Updating coreAPI with message:', message as unknown as string);
- coreAPI?.update(message);
+ project.initConfigValues();
}
}
diff --git a/qt-core/src/project.ts b/qt-core/src/project.ts
index 0a354ca..45f97f5 100644
--- a/qt-core/src/project.ts
+++ b/qt-core/src/project.ts
@@ -11,7 +11,8 @@ import {
GlobalWorkspace,
QtInsRootConfigName,
QtAdditionalPath,
- compareQtAdditionalPath
+ compareQtAdditionalPath,
+ QtWorkspaceConfigMessage
} from 'qt-lib';
import { Project, ProjectManager } from 'qt-lib';
import { convertAdditionalQtPaths, getConfiguration } from '@/util';
@@ -22,6 +23,7 @@ import {
onQtInsRootUpdated,
onAdditionalQtPathsUpdated
} from '@/installation-root';
+import { coreAPI } from '@/extension';
const logger = createLogger('project');
@@ -92,6 +94,21 @@ export class CoreProject implements Project {
this._disposables.push(eventHandler);
}
+ public initConfigValues() {
+ const folder = this.folder;
+ const message = new QtWorkspaceConfigMessage(folder);
+ message.config.set(
+ QtInsRootConfigName,
+ CoreProjectManager.getWorkspaceFolderQtInsRoot(folder)
+ );
+ message.config.set(
+ AdditionalQtPathsName,
+ CoreProjectManager.getWorkspaceFolderAdditionalQtPaths(folder)
+ );
+ logger.info('Updating coreAPI with message:', message as unknown as string);
+ coreAPI?.update(message);
+ }
+
dispose() {
logger.info('Disposing project:', this._folder.uri.fsPath);
for (const d of this._disposables) {
@@ -110,6 +127,7 @@ export class CoreProjectManager extends ProjectManager<CoreProject> {
this.onProjectAdded((project: CoreProject) => {
logger.info('Adding project:', project.folder.uri.fsPath);
+ project.initConfigValues();
});
}
private watchGlobalConfig() {