7 Commits

Author SHA1 Message Date
Thibault Saunier
d3ad6136ef dots-viewer: Refactor JavaScript into modular architecture
Split monolithic embedded JavaScript in overlay.html into dedicated modules:
- tooltip.js: Custom tooltip functionality with interactive copy/paste mode
- pipeline-navigation.js: Clickable pipeline-dot references for navigation
- text-ellipsizer.js: Text ellipsizing with tooltip integration
- svg-overlay-manager.js: Main coordinator orchestrating all functionality

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9547>
2025-08-19 15:34:44 +00:00
Thibault Saunier
4d5fa1c43b dots-viewer: make pipeline dot references clickable for navigation
When GStreamer pipeline graphs contain references to other pipeline dot files,
users should be able to navigate between related pipeline views by clicking
on these references. This enables exploring complex pipeline hierarchies
where one pipeline references sub-pipelines.

The implementation detects text elements containing pipeline-dot references,
styles them as web links, and handles click events to navigate to the
referenced pipeline while preserving existing text selection and drag
functionality for other elements.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9547>
2025-08-19 15:34:44 +00:00
Thibault Saunier
28684cba1a dots-viewer: Make text copyable while preserving drag functionality
Enable text selection on SVG text elements by changing CSS user-select
properties from 'none' to 'text' and cursor from 'default' to 'text'.

Add JavaScript event handling to intercept mousedown events on text
elements, preventing dragscroll interference while allowing normal text
selection. This preserves the existing drag-to-pan functionality for
non-text areas while making text elements selectable and copyable.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9547>
2025-08-19 15:34:44 +00:00
Thibault Saunier
f110f9c290 devtools: dots-viewer: Bundle js dependncies using webpack
And avoid relying on cdn's and require access to the network to use `dots-viewer`

And git ignore `node_modules`

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4334

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8754>
2025-04-10 18:48:49 +00:00
Thibault Saunier
fdcd0ddca0 devtools: dots-viewer: Add a button to download the SVG file
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8696>
2025-03-26 22:46:56 +00:00
Thibault Saunier
1f7b6fea6d dots-viewer: Add dragscroll support for better UX
Patch suggested by Rubén Gonzalez

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7999>
2025-02-15 18:01:37 +00:00
Thibault Saunier
61159bd992 devtools: Add dots-viewer set of tools
This adds `gstdump` and `gst-dots-viewer` server, see the
README for more details about what those tools do.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7999>
2025-02-15 18:01:36 +00:00