Commit Graph

2 Commits

Author SHA1 Message Date
Levi Neely 21adc454b4 Detect SSH disconnect via KonsolePart's terminalExited signal
Connect to KonsolePart's terminalExited() signal which fires when
the ssh process exits (clean exit, timeout, connection reset).
On exit, update status to Disconnected and emit disconnected().
2026-07-11 17:09:19 +02:00
Levi Neely ac239c1943 Initial implementation of KRDC SSH plugin
Adds an SSH terminal plugin for KRDC that embeds KonsolePart
(Konsole's KPart terminal emulator) inside a RemoteView subclass.
The plugin registers the ssh:// URL scheme and launches ssh via
the TerminalInterface::startProgram() API.

Components:
- SshViewFactory: plugin factory handling ssh:// URLs
- SshView: RemoteView subclass embedding KonsolePart
- SshHostPreferences: configuration for username, identity file,
  X11/agent forwarding, compression, and port forwarding tunnels

Key implementation details:
- KonsolePart loaded via KPluginFactory from kf6/parts/konsolepart
- ssh binary resolved via QStandardPaths::findExecutable()
- scaleResize() unconditionally calls resize() (KRDC's scroll area
  does not use setWidgetResizable, relies on this slot)
- deleteLater() for KonsolePart teardown to avoid use-after-free

Build: standalone CMake project linking against krdccore and KF6::Parts.
2026-07-11 17:00:46 +02:00