Move context manipulation into store and fix initial state.
This commit is contained in:
@@ -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",
|
||||||
|
|||||||
@@ -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> {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user