Refactor network device management and SSH terminal integration

- Removed the old NetworkDeviceManager class and replaced it with a new NetworkDeviceProvider class to streamline network device handling.
- Updated various widgets (NetworkDevicesToConnectWidget, NetworkDevicesWidget, SSHTerminalTool) to utilize the new NetworkDeviceProvider for device management.
- Introduced a new SSHTerminalTool class to manage SSH connections, replacing the OpenSSHTerminalWidget.
- Enhanced device selection UI to support both wired and wireless devices, including manual IP connection options.
- Improved signal-slot connections for device addition and removal events.
- Cleaned up unnecessary includes and code related to the old SSH terminal widget.
- Added checks for device jailbreak status during SSH connection attempts.
This commit is contained in:
uncor3
2026-03-20 20:25:24 +03:00
parent 61b049d8dc
commit 1023777642
19 changed files with 617 additions and 602 deletions
+9 -23
View File
@@ -36,34 +36,19 @@ NetworkDevicesWidget::NetworkDevicesWidget(QWidget *parent) : Tool(parent)
setMinimumSize(300, 300);
setMaximumSize(500, 500);
setupUI();
#ifdef __linux__
m_networkProvider = new AvahiService(this);
connect(m_networkProvider, &AvahiService::deviceAdded, this,
&NetworkDevicesWidget::onWirelessDeviceAdded);
connect(m_networkProvider, &AvahiService::deviceRemoved, this,
&NetworkDevicesWidget::onWirelessDeviceRemoved);
#else
m_networkProvider = new DnssdService(this);
connect(m_networkProvider, &DnssdService::deviceAdded, this,
&NetworkDevicesWidget::onWirelessDeviceAdded);
connect(m_networkProvider, &DnssdService::deviceRemoved, this,
&NetworkDevicesWidget::onWirelessDeviceRemoved);
#endif
// Start scanning for network devices
m_networkProvider->startBrowsing();
connect(NetworkDeviceProvider::sharedInstance(),
&NetworkDeviceProvider::deviceAdded, this,
&NetworkDevicesWidget::onWirelessDeviceAdded);
connect(NetworkDeviceProvider::sharedInstance(),
&NetworkDeviceProvider::deviceRemoved, this,
&NetworkDevicesWidget::onWirelessDeviceRemoved);
// Initial device list update
updateDeviceList();
setMaximumHeight(sizeHint().height());
}
NetworkDevicesWidget::~NetworkDevicesWidget()
{
if (m_networkProvider) {
m_networkProvider->stopBrowsing();
}
}
NetworkDevicesWidget::~NetworkDevicesWidget() {}
void NetworkDevicesWidget::setupUI()
{
@@ -197,7 +182,8 @@ void NetworkDevicesWidget::updateDeviceList()
{
clearDeviceCards();
QList<NetworkDevice> devices = m_networkProvider->getNetworkDevices();
QList<NetworkDevice> devices =
NetworkDeviceProvider::sharedInstance()->getNetworkDevices();
if (devices.isEmpty()) {
m_statusLabel->setText("No network devices found");