Skip to content

feat(protoapp): add mouse wheel zoom to chart#21

Merged
pabloinigoblasco merged 1 commit into
developmentfrom
feat/protoapp-wheel-zoom
Mar 31, 2026
Merged

feat(protoapp): add mouse wheel zoom to chart#21
pabloinigoblasco merged 1 commit into
developmentfrom
feat/protoapp-wheel-zoom

Conversation

@pabloinigoblasco
Copy link
Copy Markdown
Collaborator

@pabloinigoblasco pabloinigoblasco commented Mar 30, 2026

Summary

  • Add mouse wheel zoom to ChartPanel centered on cursor position
  • Auto-scale x-axis is suspended while the user zooms; double-click resets
  • Zoom factor: scroll up = zoom in (0.8x range), scroll down = zoom out (1.25x range)

Test plan

  • Open a file with time series data, drag-drop to chart
  • Scroll wheel up/down to zoom in/out — verify zoom centers on cursor
  • Verify double-click resets zoom and restores auto-scale
  • Verify y-axis auto-scale continues working during zoom

Zoom in/out with mouse wheel on chart panels. Ctrl+wheel for
horizontal-only zoom, Shift+wheel for vertical-only zoom.
@pabloinigoblasco pabloinigoblasco merged commit af5da16 into development Mar 31, 2026
2 checks passed
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
pabloinigoblasco added a commit that referenced this pull request Apr 15, 2026
Sync from GitHub: includes merged PRs #20 (chart pan) and #21 (early runtime host)
@pabloinigoblasco pabloinigoblasco deleted the feat/protoapp-wheel-zoom branch May 4, 2026 12:35
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