Move context manipulation into store and fix initial state.

This commit is contained in:
Anders Starcke Henriksen
2023-09-28 14:19:07 +02:00
parent c7e5922bd5
commit a657df4468
3 changed files with 17 additions and 17 deletions

View File

@@ -1870,11 +1870,11 @@
"codeQLDatabases.languages": [ "codeQLDatabases.languages": [
{ {
"command": "codeQLDatabases.displayAllLanguages", "command": "codeQLDatabases.displayAllLanguages",
"when": "codeQLDatabases.languageFilter != All" "when": "codeQLDatabases.languageFilter"
}, },
{ {
"command": "codeQLDatabases.displayAllLanguagesSelected", "command": "codeQLDatabases.displayAllLanguagesSelected",
"when": "codeQLDatabases.languageFilter == All" "when": "!codeQLDatabases.languageFilter"
}, },
{ {
"command": "codeQLDatabases.displayCpp", "command": "codeQLDatabases.displayCpp",

View File

@@ -607,21 +607,11 @@ export class DatabaseUI extends DisposableObject {
} }
private async handleClearLanguageFilter() { private async handleClearLanguageFilter() {
this.languageContext.clearLanguageContext(); await this.languageContext.clearLanguageContext();
await this.app.commands.execute(
"setContext",
"codeQLDatabases.languageFilter",
"All",
);
} }
private async handleChangeLanguageFilter(languageFilter: QueryLanguage) { private async handleChangeLanguageFilter(languageFilter: QueryLanguage) {
this.languageContext.setLanguageContext(languageFilter); await this.languageContext.setLanguageContext(languageFilter);
await this.app.commands.execute(
"setContext",
"codeQLDatabases.languageFilter",
languageFilter,
);
} }
private async handleUpgradeCurrentDatabase(): Promise<void> { private async handleUpgradeCurrentDatabase(): Promise<void> {

View File

@@ -11,7 +11,7 @@ export class LanguageContextStore extends DisposableObject {
private state: LanguageFilter; private state: LanguageFilter;
constructor(app: App) { constructor(private readonly app: App) {
super(); super();
// State initialization // State initialization
this.state = "All"; this.state = "All";
@@ -23,14 +23,24 @@ export class LanguageContextStore extends DisposableObject {
this.onLanguageContextChanged = this.onLanguageContextChangedEmitter.event; this.onLanguageContextChanged = this.onLanguageContextChangedEmitter.event;
} }
public clearLanguageContext() { public async clearLanguageContext() {
this.state = "All"; this.state = "All";
this.onLanguageContextChangedEmitter.fire(); this.onLanguageContextChangedEmitter.fire();
await this.app.commands.execute(
"setContext",
"codeQLDatabases.languageFilter",
"",
);
} }
public setLanguageContext(language: QueryLanguage) { public async setLanguageContext(language: QueryLanguage) {
this.state = language; this.state = language;
this.onLanguageContextChangedEmitter.fire(); this.onLanguageContextChangedEmitter.fire();
await this.app.commands.execute(
"setContext",
"codeQLDatabases.languageFilter",
language,
);
} }
// This method takes a string to allow it to be used in cases // This method takes a string to allow it to be used in cases