feat(extension_manager): add default constructor and initComponents()#19
Merged
pabloinigoblasco merged 1 commit intoMar 31, 2026
Merged
Conversation
Enables dependency injection pattern for ExtensionManager: - Add default constructor for delayed initialization - Add initComponents() to set up downloader and load state - Parametrized constructor now calls initComponents() for consistency This allows creating an ExtensionManager instance first, then injecting dependencies later via initComponents().
851ec63 to
d1d04d9
Compare
pabloinigoblasco
added a commit
that referenced
this pull request
Apr 4, 2026
pabloinigoblasco
pushed a commit
that referenced
this pull request
Apr 4, 2026
commit 26dec01 Merge: 212de71 b4a78af Author: Pablo Iñigo Blasco <pablo.inigo@ibrobotics.com> Date: Tue Mar 31 20:59:20 2026 +0200 Merge development into internal_main (post-PR #23 sync) commit 212de71 Merge: 84c5119 02af6df Author: Pablo Iñigo Blasco <pablo@ibrobotics.com> Date: Tue Mar 31 18:51:56 2026 +0000 Merge branch 'fix/build-install-subdirectory-conan-deps' into 'internal_main' fix(build): install Conan deps from subdirectory conanfiles See merge request client-projets/p.2026-plotjuggler/plotjuggler_core!92 commit 02af6df Author: Pablo Iñigo Blasco <pablo@ibrobotics.com> Date: Tue Mar 31 18:51:56 2026 +0000 fix(build): install Conan deps from subdirectory conanfiles commit b4a78af Author: Pablo Iñigo Blasco <pablo.inigo@ibrobotics.com> Date: Tue Mar 31 20:51:51 2026 +0200 fix(build): install Conan dependencies from subdirectory conanfiles (#23) build.sh only ran conan install on the root conanfile.txt, missing dependencies declared in pj_ported_plugins/conanfile.txt (e.g. ixwebsocket). This caused CMake configure failures when building plugins like foxglove_bridge or pj_bridge. The fix scans for subdirectory conanfiles and installs their dependencies into the same build output folder before running CMake. commit 84c5119 Merge: b5f6194 fe6aa2f Author: Pablo Iñigo Blasco <pablo@ibrobotics.com> Date: Tue Mar 31 17:16:03 2026 +0000 Merge branch 'feature/protoapp-wheel-zoom' into 'internal_main' feat(proto_app): add mouse wheel zoom to ChartPane See merge request client-projets/p.2026-plotjuggler/plotjuggler_core!53 commit fe6aa2f Author: Pmarin <pmarin@ibrobotics.com> Date: Tue Mar 31 17:16:03 2026 +0000 feat(proto_app): add mouse wheel zoom to ChartPane commit af5da16 Author: Pablo Iñigo Blasco <pablo.inigo@ibrobotics.com> Date: Tue Mar 31 19:13:19 2026 +0200 feat(protoapp): add mouse wheel zoom to chart panel (#21) Zoom in/out with mouse wheel on chart panels. Ctrl+wheel for horizontal-only zoom, Shift+wheel for vertical-only zoom. commit b5f6194 Merge: 482231d 832fcf4 Author: Pablo Iñigo Blasco <pablo.inigo@ibrobotics.com> Date: Tue Mar 31 18:35:16 2026 +0200 Merge ibrobotics/development into internal_main (sync PRs #19, #22 from plotjuggler) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> commit 482231d Merge: 1bd2e0b 12006bb Author: Pablo Iñigo Blasco <pablo@ibrobotics.com> Date: Tue Mar 31 16:30:14 2026 +0000 Merge branch 'fix/windows-marketplace-staging' into 'internal_main' fix(marketplace): Windows staging for uninstall and update See merge request client-projets/p.2026-plotjuggler/plotjuggler_core!90 commit 12006bb Author: Vlozano <vlozano@ibrobotics.com> Date: Tue Mar 31 16:30:14 2026 +0000 fix(marketplace): Windows staging for uninstall and update commit 832fcf4 Author: Pablo Iñigo Blasco <pablo.inigo@ibrobotics.com> Date: Tue Mar 31 18:27:51 2026 +0200 feat(marketplace): Windows-safe install/update/uninstall staging (#22) On Windows, DLLs loaded into a process cannot be overwritten or deleted. This commit adds platform-aware staging logic: - Fresh install: installs directly (no DLL loaded yet) - Update: stages to .pending/ directory, applies on next startup - Uninstall: if directory removal fails, schedules deletion for next startup - Startup: applyPendingInstalls() and applyPendingUninstalls() process deferred work The ExtensionManager now exposes: - doInstall() private method for unified install logic with staging flag - installPendingRestart and uninstallPendingRestart signals for UI feedback - applyPendingUninstalls() for deferred directory cleanup Also adds constructor overload accepting an ExtensionManager* for test injection. Contents: - extension_manager.hpp: declare doInstall(), add pending restart signals - ExtensionManager.cpp: implement staging logic and pending uninstall scheduling - marketplace_window.cpp: add ExtensionManager* constructor, connect pending restart signals - extension_manager_test.cpp: add staging and pending uninstall tests - main_window.cpp: call applyPendingInstalls() and applyPendingUninstalls() at startup commit 1bd2e0b Merge: 497c4d5 aaebb7b Author: Pablo Iñigo Blasco <pablo@ibrobotics.com> Date: Tue Mar 31 10:12:41 2026 +0000 Merge branch 'fix/extension-manager-call-initcomponents-parametrized-ctor' into 'internal_main' fix(extension_manager): call initComponents() from parametrized constructor See merge request client-projets/p.2026-plotjuggler/plotjuggler_core!87 commit aaebb7b Author: Vlozano <vlozano@ibrobotics.com> Date: Tue Mar 31 10:12:41 2026 +0000 fix(extension_manager): call initComponents() from parametrized constructor commit 90b1405 Author: Pablo Iñigo Blasco <pablo.inigo@ibrobotics.com> Date: Tue Mar 31 12:11:22 2026 +0200 feat(extension_manager): add default constructor and initComponents() (#19) Enables dependency injection pattern for ExtensionManager: - Add default constructor for delayed initialization - Add initComponents() to set up downloader and load state - Parametrized constructor now calls initComponents() for consistency This allows creating an ExtensionManager instance first, then injecting dependencies later via initComponents(). commit 497c4d5 Merge: ce3a878 49ca22f Author: Pablo Iñigo Blasco <pablo.inigo@ibrobotics.com> Date: Tue Mar 31 00:03:37 2026 +0200 Merge branch 'feature/protoapp-multi-select-tree' into internal_main feat(protoapp): multi-select series tree for batch drag-and-drop commit ce3a878 Merge: bd1e11e 9b5b773 Author: Pablo Iñigo Blasco <pablo@ibrobotics.com> Date: Mon Mar 30 10:04:40 2026 +0000 Merge branch 'feat/extension-manager-injection' into 'internal_main' feat(extension_manager): add default constructor and initComponents() See merge request client-projets/p.2026-plotjuggler/plotjuggler_core!86 commit 9b5b773 Author: Vlozano <vlozano@ibrobotics.com> Date: Mon Mar 30 10:04:40 2026 +0000 feat(extension_manager): add default constructor and initComponents() commit 49ca22f Author: Pmarin <pmarin@ibrobotics.com> Date: Mon Mar 23 12:10:41 2026 +0100 feat(proto-app): multi-select series tree for batch drag-and-drop Allow selecting multiple fields in the left panel (Ctrl+click, Shift+click) and dropping them all onto the chart at once. - main_window: enable ExtendedSelection on the QTreeView - series_tree_model: mimeData() encodes all selected fields (count + N entries) instead of only the first one - chart_panel: dropEvent() decodes and adds N series in a single drop
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
initComponents()performs actual initialization with dependenciesContents
initComponents()initFromExtensionManager()Test plan