Skip to content

Commit 7041dd7

Browse files
authored
Rename 'open database' button and only show if source available (#2945)
1 parent a3d41a2 commit 7041dd7

13 files changed

+33
-4
lines changed

extensions/ql-vscode/CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
- Add support for the `telemetry.telemetryLevel` setting. For more information, see the [telemetry documentation](https://codeql.github.com/docs/codeql-for-visual-studio-code/about-telemetry-in-codeql-for-visual-studio-code). [#2824](https://github.com/github/vscode-codeql/pull/2824).
1010
- Fix syntax highlighting directly after import statements with instantiation arguments. [#2792](https://github.com/github/vscode-codeql/pull/2792)
1111
- The `debug.saveBeforeStart` setting is now respected when running variant analyses. [#2950](https://github.com/github/vscode-codeql/pull/2950)
12+
- The 'open database' button of the model editor was renamed to 'open source'. Also, it's now only available if the source archive is available as a workspace folder. [#2945](https://github.com/github/vscode-codeql/pull/2945)
1213

1314
## 1.9.1 - 29 September 2023
1415

extensions/ql-vscode/src/databases/local-databases/database-item-impl.ts

+9
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,15 @@ export class DatabaseItemImpl implements DatabaseItem {
167167
return encodeArchiveBasePath(sourceArchive.fsPath);
168168
}
169169

170+
/**
171+
* Returns true if the database's source archive is in the workspace.
172+
*/
173+
public hasSourceArchiveInExplorer(): boolean {
174+
return (vscode.workspace.workspaceFolders || []).some((folder) =>
175+
this.belongsToSourceArchiveExplorerUri(folder.uri),
176+
);
177+
}
178+
170179
public verifyZippedSources(): string | undefined {
171180
const sourceArchive = this.sourceArchive;
172181
if (sourceArchive === undefined) {

extensions/ql-vscode/src/databases/local-databases/database-item.ts

+5
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ export interface DatabaseItem {
5656
*/
5757
getSourceArchiveExplorerUri(): vscode.Uri;
5858

59+
/**
60+
* Returns true if the database's source archive is in the workspace.
61+
*/
62+
hasSourceArchiveInExplorer(): boolean;
63+
5964
/**
6065
* Holds if `uri` belongs to this database's source archive.
6166
*/

extensions/ql-vscode/src/model-editor/model-editor-view.ts

+4
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,9 @@ export class ModelEditorView extends AbstractWebview<
362362
const showLlmButton =
363363
this.databaseItem.language === "java" && this.modelConfig.llmGeneration;
364364

365+
const sourceArchiveAvailable =
366+
this.databaseItem.hasSourceArchiveInExplorer();
367+
365368
await this.postMessage({
366369
t: "setModelEditorViewState",
367370
viewState: {
@@ -370,6 +373,7 @@ export class ModelEditorView extends AbstractWebview<
370373
showLlmButton,
371374
showMultipleModels: this.modelConfig.showMultipleModels,
372375
mode: this.mode,
376+
sourceArchiveAvailable,
373377
},
374378
});
375379
}

extensions/ql-vscode/src/model-editor/shared/view-state.ts

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export interface ModelEditorViewState {
77
showLlmButton: boolean;
88
showMultipleModels: boolean;
99
mode: Mode;
10+
sourceArchiveAvailable: boolean;
1011
}
1112

1213
export interface MethodModelingPanelViewState {

extensions/ql-vscode/src/stories/model-editor/LibraryRow.stories.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ LibraryRow.args = {
226226
showLlmButton: true,
227227
showMultipleModels: true,
228228
mode: Mode.Application,
229+
sourceArchiveAvailable: true,
229230
},
230231
hideModeledMethods: false,
231232
};

extensions/ql-vscode/src/stories/model-editor/MethodRow.stories.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ const viewState: ModelEditorViewState = {
7575
showLlmButton: true,
7676
showMultipleModels: true,
7777
mode: Mode.Application,
78+
sourceArchiveAvailable: true,
7879
};
7980

8081
export const Unmodeled = Template.bind({});

extensions/ql-vscode/src/stories/model-editor/ModelEditor.stories.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ ModelEditor.args = {
3232
showLlmButton: true,
3333
showMultipleModels: true,
3434
mode: Mode.Application,
35+
sourceArchiveAvailable: true,
3536
},
3637
initialMethods: [
3738
{

extensions/ql-vscode/src/view/model-editor/ModelEditor.tsx

+6-4
Original file line numberDiff line numberDiff line change
@@ -282,10 +282,12 @@ export function ModelEditor({
282282
<>{viewState.extensionPack.name}</>
283283
</HeaderRow>
284284
<HeaderRow>
285-
<LinkIconButton onClick={onOpenDatabaseClick}>
286-
<span slot="start" className="codicon codicon-package"></span>
287-
Open database
288-
</LinkIconButton>
285+
{viewState.sourceArchiveAvailable && (
286+
<LinkIconButton onClick={onOpenDatabaseClick}>
287+
<span slot="start" className="codicon codicon-package"></span>
288+
Open source
289+
</LinkIconButton>
290+
)}
289291
<LinkIconButton onClick={onOpenExtensionPackClick}>
290292
<span slot="start" className="codicon codicon-package"></span>
291293
Open extension pack

extensions/ql-vscode/src/view/model-editor/__tests__/LibraryRow.spec.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ describe(LibraryRow.name, () => {
2222
showLlmButton: false,
2323
showMultipleModels: false,
2424
extensionPack: createMockExtensionPack(),
25+
sourceArchiveAvailable: true,
2526
};
2627

2728
const render = (props: Partial<LibraryRowProps> = {}) =>

extensions/ql-vscode/src/view/model-editor/__tests__/MethodRow.spec.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ describe(MethodRow.name, () => {
3939
showLlmButton: false,
4040
showMultipleModels: false,
4141
extensionPack: createMockExtensionPack(),
42+
sourceArchiveAvailable: true,
4243
};
4344

4445
const render = (props: Partial<MethodRowProps> = {}) =>

extensions/ql-vscode/src/view/model-editor/__tests__/ModeledMethodDataGrid.spec.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ describe(ModeledMethodDataGrid.name, () => {
4949
showLlmButton: false,
5050
showMultipleModels: false,
5151
extensionPack: createMockExtensionPack(),
52+
sourceArchiveAvailable: true,
5253
};
5354

5455
const render = (props: Partial<ModeledMethodDataGridProps> = {}) =>

extensions/ql-vscode/src/view/model-editor/__tests__/ModeledMethodsList.spec.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ describe(ModeledMethodsList.name, () => {
5050
showLlmButton: false,
5151
showMultipleModels: false,
5252
extensionPack: createMockExtensionPack(),
53+
sourceArchiveAvailable: true,
5354
};
5455

5556
const render = (props: Partial<ModeledMethodsListProps> = {}) =>

0 commit comments

Comments
 (0)