From 087e13debe7d3e149c5b2e1d42f6040579a7fbba Mon Sep 17 00:00:00 2001 From: Chris Ryan Date: Wed, 3 Sep 2025 13:52:46 +1000 Subject: [PATCH] Save position, size details for the 3 types of compendium browser --- module/applications/ui/itemBrowser.mjs | 17 +++++++++++++---- module/config/flagsConfig.mjs | 12 ++++++++++-- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/module/applications/ui/itemBrowser.mjs b/module/applications/ui/itemBrowser.mjs index 96f9a01d..96d5f0a9 100644 --- a/module/applications/ui/itemBrowser.mjs +++ b/module/applications/ui/itemBrowser.mjs @@ -16,6 +16,7 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { this.selectedMenu = { path: [], data: null }; this.config = CONFIG.DH.ITEMBROWSER.compendiumConfig; this.presets = {}; + this.compendiumBrowserTypeKey = 'compendiumBrowserDefault'; } /** @inheritDoc */ @@ -84,11 +85,20 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { /** @inheritDoc */ async _preRender(context, options) { this.presets = options.presets ?? {}; - const userPresetPosition = game.user.getFlag(CONFIG.DH.id, CONFIG.DH.FLAGS[`compendiumBrowser`].position); + const noFolder = this.presets?.render?.noFolder; + if (noFolder === true) { + this.compendiumBrowserTypeKey = 'compendiumBrowserNoFolder'; + } + const lite = this.presets?.render?.lite; + if (lite === true) { + this.compendiumBrowserTypeKey = 'compendiumBrowserLite'; + } + const userPresetPosition = game.user.getFlag(CONFIG.DH.id, CONFIG.DH.FLAGS[`${this.compendiumBrowserTypeKey}`].position) ; + options.position = userPresetPosition ?? ItemBrowser.DEFAULT_OPTIONS.position; if (!userPresetPosition) { - const width = this.presets?.render?.noFolder === true || this.presets?.render?.lite === true ? 600 : 850; + const width = noFolder === true || lite === true ? 600 : 850; if(this.rendered) this.setPosition({ width }); else @@ -117,10 +127,9 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { } _onPosition(position) { - game.user.setFlag(CONFIG.DH.id, CONFIG.DH.FLAGS[`compendiumBrowser`].position, position); + game.user.setFlag(CONFIG.DH.id, CONFIG.DH.FLAGS[`${this.compendiumBrowserTypeKey}`].position, position); } - _attachPartListeners(partId, htmlElement, options) { super._attachPartListeners(partId, htmlElement, options); diff --git a/module/config/flagsConfig.mjs b/module/config/flagsConfig.mjs index 1426047c..3a304b33 100644 --- a/module/config/flagsConfig.mjs +++ b/module/config/flagsConfig.mjs @@ -8,8 +8,16 @@ export const encounterCountdown = { position: 'countdown-encounter-position' }; -export const compendiumBrowser = { - position: 'compendium-browser-position' +export const compendiumBrowserDefault = { + position: 'compendium-browser-default-position' +}; + +export const compendiumBrowserNoFolder = { + position: 'compendium-browser-no-folder-position' +}; + +export const compendiumBrowserLite = { + position: 'compendium-browser-lite-position' }; export const itemAttachmentSource = 'attachmentSource';