• Type: Bug
    • Resolution: Fixed
    • Priority: Normal
    • 3.0.3
    • Affects Version/s: 3.0.1
    • Component/s: Plugins API
    • None

      In Picard 3.0+, plugins can register custom cover art providers (api.register_cover_art_provider). If a plugin is disabled and options are saved, the disabled provider is purged from config.setting['ca_providers'] and Picard.ini. When the plugin is re-enabled, its user-configured position and enabled state are lost, reverting to fallback defaults (position 666, disabled).

      Steps to Reproduce

      1. Install and enable a plugin that registers a CoverArtProvider (e.g. Pseudo-Releases).
      2. Open Options > Cover Art > Cover Art Providers, enable the provider, and move it up in the list. Save options (Make It So!).
      3. In Options > Plugins, uncheck/disable the plugin. Save options.
      4. In Options > Plugins, re-enable the plugin. Save options.
      5. Inspect Options > Cover Art > Cover Art Providers.

      Expected Result

      The provider retains its configured order and enabled checkbox state.

      Actual Result

      The provider is reset: placed at the bottom of the list and disabled.

      Cause

      In picard/ui/options/cover.py:

      def save(self):
          ...
          config.setting['ca_providers'] = list(self._ca_providers())
      
      1. self.ui.ca_providers_list is populated from ext_point_cover_art_providers.
      2. When a plugin is disabled, its provider is unregistered from ext_point_cover_art_providers and therefore omitted from the UI list widget.
      3. Saving options overwrites ca_providers with only the currently visible providers, discarding entries for inactive plugins from Picard.ini.
      4. When the plugin is later re-enabled, cover_art_providers() in picard/coverart/providers/{}init{}.py treats it as an unknown provider, assigning position=666 and enabled=False.

            Assignee:
            Zas
            Reporter:
            chaban
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:

                Version Package
                3.0.3