Skip to content

Add per-widget configuration#885

Merged
ludouzi merged 4 commits into
masterfrom
per-widget-config
Mar 7, 2026
Merged

Add per-widget configuration#885
ludouzi merged 4 commits into
masterfrom
per-widget-config

Conversation

@ludouzi

@ludouzi ludouzi commented Mar 7, 2026

Copy link
Copy Markdown
Collaborator

This introduces a shared per-widget configuration for most layout widgets.

Each widget now has a Configure... action in its instance context menu, opening a widget-specific config dialog. Widget instance state is now serialised into the layout file, so configuration is restored per instance when a layout is loaded.

As part of this change, widget options that were previously only available through global settings pages have been moved into per-widget configuration where appropriate. The corresponding global settings pages have been removed, except in cases where the underlying state remains genuinely global or shared across multiple widget instances.

Default configuration for newly created widget instances remains persisted through the existing settings store and keys. The config dialogs provide a Save as default action, which writes the current dialog state back to those stored defaults without affecting already-configured widget instances.

In addition to the above, all settings which did not make use of subscribe have been demoted to unregistered settings, after which they must use fileValue and fileSet instead.

Addresses #843

@ludouzi

ludouzi commented Mar 7, 2026

Copy link
Copy Markdown
Collaborator Author

However, because the original settings keys are now treated as the default widget settings, this means existing users would have no means to restore the 'factory' defaults.

Easy way around this is to expose a factoryDefaults method and add a button to the config dialog to restore them.

@ludouzi

ludouzi commented Mar 7, 2026

Copy link
Copy Markdown
Collaborator Author

Widget config dialogs now expose 3 actions from the Restore defaults button:

  1. Restore saved defaults - Restore previously saved defaults to this widget instance
  2. Restore factory defaults - Restore the factory defaults for this widget instance
  3. Clear saved defaults - Clear any saved defaults for all instances of this widget

@ludouzi ludouzi marked this pull request as ready for review March 7, 2026 04:58
@ludouzi ludouzi merged commit f9b0f92 into master Mar 7, 2026
70 of 72 checks passed
@ludouzi ludouzi deleted the per-widget-config branch March 7, 2026 05:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant