Added console panel with device and host console, logs and domain console.

This commit is contained in:
RedNicStone committed 2026-11-09 21:15:57 +01:00
1 parent 6038b816b7
commit b98ed82619
17 files changed
+551 -22

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
# Console
Run `scenes/console_demo.tscn` for simulated commands and a journal feed, or add **Console** from the layout library.
| Tab | Shortcut | Input |
| --- | --- | --- |
| ROV | F5 | ROV shell command |
| Host | F6 | Host shell command |
| Logs | F7 | Case-insensitive log filter |
| Server | F8 | Server command |
A shortcut selects its tab and focuses its input across either dashboard window. Escape releases focus. Ctrl+Tab / Ctrl+Shift+Tab cycle tabs, Ctrl+L clears the current output, and Up/Down recall commands. Each tab retains its draft, history and output. Follow controls automatic scrolling; Clear keeps command history. Output supports selection and copying.
Shortcuts are exported on the session nodes in `components/console_panel.tscn`. Conflicting shortcuts show “in use”; the first visible panel owns them. Layout editing suspends console input and shortcuts. Placement persists with the layout; console contents and command history do not.
## Transport hooks
`components/console_panel.tscn` owns four instances of `console_session.tscn`. Controls and tabs live in the scene tree and inherit the shared theme. Output, prompts and inputs share `themes/console_mono.tres`, with full hinting, 2× oversampling and slightly strengthened strokes for legibility under scaling.
- Connect `command_requested(session_id, command)` to a transport.
- Call `set_connection(session_id, connected, message)` to update availability and status.
- Call `append_output(session_id, text)` to deliver output, including trailing newlines where appropriate.
- Session IDs are `rov`, `host`, `logs`, and `server`.
The component starts disconnected and rejects command dispatch until connected with a handler attached. Logs are read-only. Scrollback is bounded by each session's `max_scrollback_characters`.
This is a line-oriented frontend. SSH, local processes, journal streaming, ANSI/VT terminal emulation and interactive full-screen programs are not connected. The demo only simulates responses and never executes system commands.
+1 -1
View File
@@ -41,7 +41,7 @@ The elements array is the complete active layout; omitted default panels stay de
`layout_overview.tscn` owns the shader grid and toolbar. Each `layout_canvas.tscn` places its panel children using `layout_item.gd`; set their IDs, cell rectangles, and minimum sizes in the Inspector. Existing UI scenes remain under each item's `Content` node. Each allocation has a full-size panel background with a shared `panel_gap` (16 logical pixels by default). Instruments scale uniformly inside that frame; reserved slots fill it. Embedded component backgrounds are transparent so their scaling does not change the visible gutters. The camera retains its 16:9 picture inside the camera/header allocation.
The initial layouts deliberately leave free cells for rearranging. VR/video and operator tools are placeholders. The Link and Environment panels have separate [Link](link_panel.md) and [Environment](environment_panel.md) telemetry demos. Camera and telemetry feeds are not connected.
The initial layouts deliberately leave free cells for rearranging. VR/video and operator tools are placeholders. The Link and Environment panels have separate [Link](link_panel.md) and [Environment](environment_panel.md) telemetry demos. The [Console](console_panel.md) is available in the library with four tabs and direct focus shortcuts. Camera and telemetry feeds are not connected.
The library registry is `scripts/layout_catalog.gd`. Each entry supplies a scene, display text, preferred/minimum cells and sizing behavior. JSON stores registered type IDs rather than resource paths. `components/layout_library.tscn` owns the drawer; selection button order is unchanged.