Saving last channel collapsed state
This commit is contained in:
parent
b46a7f59f5
commit
ee994641ef
2 changed files with 12 additions and 2 deletions
|
@ -366,6 +366,13 @@ export class Settings extends StaticSettings {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static readonly FN_SERVER_CHANNEL_COLLAPSED: (channel_id: number) => SettingsKey<boolean> = channel => {
|
||||||
|
return {
|
||||||
|
key: 'channel_collapsed_' + channel,
|
||||||
|
default_value: false
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
static readonly FN_PROFILE_RECORD: (name: string) => SettingsKey<any> = name => {
|
static readonly FN_PROFILE_RECORD: (name: string) => SettingsKey<any> = name => {
|
||||||
return {
|
return {
|
||||||
key: 'profile_record' + name
|
key: 'profile_record' + name
|
||||||
|
|
|
@ -176,7 +176,7 @@ export class ChannelEntry extends ChannelTreeEntry<ChannelEvents> {
|
||||||
private _cached_channel_description_promise_resolve: any = undefined;
|
private _cached_channel_description_promise_resolve: any = undefined;
|
||||||
private _cached_channel_description_promise_reject: any = undefined;
|
private _cached_channel_description_promise_reject: any = undefined;
|
||||||
|
|
||||||
private _flag_collapsed: boolean; //TODO: Load from config!
|
private _flag_collapsed: boolean;
|
||||||
private _flag_subscribed: boolean;
|
private _flag_subscribed: boolean;
|
||||||
private _subscribe_mode: ChannelSubscribeMode;
|
private _subscribe_mode: ChannelSubscribeMode;
|
||||||
|
|
||||||
|
@ -199,7 +199,7 @@ export class ChannelEntry extends ChannelTreeEntry<ChannelEvents> {
|
||||||
this.client_property_listener = (event: ClientEvents["notify_properties_updated"]) => {
|
this.client_property_listener = (event: ClientEvents["notify_properties_updated"]) => {
|
||||||
if(typeof event.updated_properties.client_nickname !== "undefined" || typeof event.updated_properties.client_talk_power !== "undefined")
|
if(typeof event.updated_properties.client_nickname !== "undefined" || typeof event.updated_properties.client_talk_power !== "undefined")
|
||||||
this.reorderClientList(true);
|
this.reorderClientList(true);
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
destroy() {
|
destroy() {
|
||||||
|
@ -691,6 +691,8 @@ export class ChannelEntry extends ChannelTreeEntry<ChannelEvents> {
|
||||||
}
|
}
|
||||||
|
|
||||||
get collapsed() : boolean {
|
get collapsed() : boolean {
|
||||||
|
if(typeof this._flag_collapsed === "undefined")
|
||||||
|
this._flag_collapsed = this.channelTree.client.settings.server(Settings.FN_SERVER_CHANNEL_COLLAPSED(this.channelId));
|
||||||
return this._flag_collapsed;
|
return this._flag_collapsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -700,6 +702,7 @@ export class ChannelEntry extends ChannelTreeEntry<ChannelEvents> {
|
||||||
this._flag_collapsed = flag;
|
this._flag_collapsed = flag;
|
||||||
this.events.fire("notify_collapsed_state_changed", { collapsed: flag });
|
this.events.fire("notify_collapsed_state_changed", { collapsed: flag });
|
||||||
this.view.current?.forceUpdate();
|
this.view.current?.forceUpdate();
|
||||||
|
this.channelTree.client.settings.changeServer(Settings.FN_SERVER_CHANNEL_COLLAPSED(this.channelId), flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
get flag_subscribed() : boolean {
|
get flag_subscribed() : boolean {
|
||||||
|
|
Loading…
Add table
Reference in a new issue