Skip to content

Pr 1038 - #1039

Closed
luiox wants to merge 3 commits into
Col-E:masterfrom
luiox:pr-1038
Closed

Pr 1038#1039
luiox wants to merge 3 commits into
Col-E:masterfrom
luiox:pr-1038

Conversation

@luiox

@luiox luiox commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

What's new

  • Summary of additions

What's fixed

  • Summary of bugs fixed

luiox added 3 commits July 26, 2026 20:00
Add a Plugins menu and plugin manager panel for listing installed plugins
and enabling/disabling, installing, and uninstalling them.

- PluginManagerPane: scans the plugin + disabled directories, renders plugin
  metadata, and drives install/enable/disable/uninstall via synchronous core
  operations (installFrom / applyEnabled / applyUninstall).
- PluginManagerWindow + WindowManager WIN_PLUGINS registration.
- PluginMenu: opens the manager panel, plus dev-guide and template links.
- Translations for en_US and zh_CN.
- PluginManagerPaneTest covering scan/enable/disable/install/uninstall with
  real sample plugin jars.
- Add @afterall stopFx() with Platform.exit() to shut down JavaFX
  after tests complete, preventing JVM from hanging
- Add @AfterEach cleanup() to delete temporary test directories
- Track home path as field for cleanup
- Wrap ErrorDialogs.show() calls with FxThreadUtil.run() to avoid
  IllegalStateException from background threads
- Remove redundant refresh() call in dependant cancel path
The test previously required JavaFX (Platform.startup/Platform.runLater)
to construct PluginManagerPane, which caused CI timeout under JUnit 5
parallel execution (all test classes share one FX thread).

Added a package-private constructor PluginManagerPane(manager, dirs, true)
that skips all UI initialization. The test now constructs the pane directly
without JavaFX, exercising only the synchronous business logic
(scanPluginFiles, applyEnabled, installFrom, applyUninstall).

Also already applied: ErrorDialogs.show() wrapped via FxThreadUtil.run()
to run on FX thread; @AfterEach temp dir cleanup.
@luiox luiox closed this Jul 27, 2026
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