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": [
{
"command": "codeQLDatabases.displayAllLanguages",
"when": "codeQLDatabases.languageFilter != All"
"when": "codeQLDatabases.languageFilter"
},
{
"command": "codeQLDatabases.displayAllLanguagesSelected",
"when": "codeQLDatabases.languageFilter == All"
"when": "!codeQLDatabases.languageFilter"
},
{
"command": "codeQLDatabases.displayCpp",

View File

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

View File

@@ -11,7 +11,7 @@ export class LanguageContextStore extends DisposableObject {
private state: LanguageFilter;
constructor(app: App) {
constructor(private readonly app: App) {
super();
// State initialization
this.state = "All";
@@ -23,14 +23,24 @@ export class LanguageContextStore extends DisposableObject {
this.onLanguageContextChanged = this.onLanguageContextChangedEmitter.event;
}
public clearLanguageContext() {
public async clearLanguageContext() {
this.state = "All";
this.onLanguageContextChangedEmitter.fire();
await this.app.commands.execute(
"setContext",
"codeQLDatabases.languageFilter",
"",
);
}
public setLanguageContext(language: QueryLanguage) {
public async setLanguageContext(language: QueryLanguage) {
this.state = language;
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