diff options
| author | Orkun Tokdemir <orkun.tokdemir@qt.io> | 2024-12-05 11:37:12 +0100 |
|---|---|---|
| committer | Orkun Tokdemir <orkun.tokdemir@qt.io> | 2024-12-09 13:17:51 +0000 |
| commit | 1249ef41807b826884e4059f4c4706a1980fbe2a (patch) | |
| tree | 6dfa0ed6dd047f2566dfc97abc8ab9fd73274e07 | |
| parent | 7beaa63036cb710e6eac831b8d2d007768e92cd0 (diff) | |
qt-qml: qt-ui: Wait until qt-cpp is activated
During the startup,`qt-qml` and `qt-ui` should wait until `qt-cpp`` sets
the initial configuration values. Otherwise, qt-qml qt-ui may not be
able to access the correct configuration values.
Change-Id: I974a0e5e7e9cb541ea4a382ac85c303b6b59646f
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
| -rw-r--r-- | qt-lib/src/util.ts | 7 | ||||
| -rw-r--r-- | qt-qml/src/extension.ts | 10 | ||||
| -rw-r--r-- | qt-ui/src/extension.ts | 9 |
3 files changed, 23 insertions, 3 deletions
diff --git a/qt-lib/src/util.ts b/qt-lib/src/util.ts index 5ce2c05..4f07479 100644 --- a/qt-lib/src/util.ts +++ b/qt-lib/src/util.ts @@ -218,3 +218,10 @@ export async function fetchWithAbort( throw error; }); } + +export async function waitForQtCpp() { + const qtcpp = vscode.extensions.getExtension('theqtcompany.qt-cpp'); + if (qtcpp) { + return qtcpp.activate(); + } +} diff --git a/qt-qml/src/extension.ts b/qt-qml/src/extension.ts index 29177e8..c0ef95a 100644 --- a/qt-qml/src/extension.ts +++ b/qt-qml/src/extension.ts @@ -9,9 +9,9 @@ import { createLogger, initLogger, telemetry, - QtWorkspaceConfigMessage + QtWorkspaceConfigMessage, + waitForQtCpp } from 'qt-lib'; - import { registerColorProvider } from '@/color-provider'; import { registerRestartQmllsCommand } from '@cmd/restart-qmlls'; import { registerDownloadQmllsCommand } from '@cmd/download-qmlls'; @@ -37,6 +37,8 @@ export async function activate(context: vscode.ExtensionContext) { throw new Error(err); } + await waitForDependencies(); + if (vscode.workspace.workspaceFolders !== undefined) { for (const folder of vscode.workspace.workspaceFolders) { const project = await createQMLProject(folder, context); @@ -120,3 +122,7 @@ function processMessage(message: QtWorkspaceConfigMessage) { void vscode.window.showErrorMessage(`Error: "${err.message}"`); } } + +async function waitForDependencies() { + return waitForQtCpp(); +} diff --git a/qt-ui/src/extension.ts b/qt-ui/src/extension.ts index 265961a..e130199 100644 --- a/qt-ui/src/extension.ts +++ b/qt-ui/src/extension.ts @@ -11,7 +11,8 @@ import { ProjectManager, createLogger, initLogger, - telemetry + telemetry, + waitForQtCpp } from 'qt-lib'; import { UIEditorProvider } from '@/editors/ui/ui-editor'; import { createUIProject, UIProject } from '@/project'; @@ -36,6 +37,8 @@ export async function activate(context: vscode.ExtensionContext) { throw new Error(err); } + await waitForDependencies(); + projectManager = new ProjectManager<UIProject>(context, createUIProject); projectManager.onProjectAdded(async (project) => { logger.info('Project added:', project.folder.uri.fsPath); @@ -130,3 +133,7 @@ function processMessage(message: QtWorkspaceConfigMessage) { } } } + +async function waitForDependencies() { + return waitForQtCpp(); +} |
