Files
iDescriptor/src/networkdeviceprovider.h
T
uncor3 1023777642 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.
2026-03-20 20:25:24 +03:00

70 lines
1.9 KiB
C++

#ifndef NETWORKDEVICEPROVIDER_H
#define NETWORKDEVICEPROVIDER_H
#include <QObject>
#include <QTimer>
#ifdef __linux__
#include "core/services/avahi/avahi_service.h"
#else
#include "core/services/dnssd/dnssd_service.h"
#endif
class NetworkDeviceProvider : public QObject
{
Q_OBJECT
public:
static NetworkDeviceProvider *sharedInstance()
{
static NetworkDeviceProvider instance;
return &instance;
}
NetworkDeviceProvider(QObject *parent = nullptr)
{
#ifdef __linux__
m_networkProvider = new AvahiService(this);
connect(m_networkProvider, &AvahiService::deviceAdded, this,
&NetworkDeviceProvider::_deviceAdded);
connect(m_networkProvider, &AvahiService::deviceRemoved, this,
&NetworkDeviceProvider::_deviceRemoved);
#else
m_networkProvider = new DnssdService(this);
connect(m_networkProvider, &DnssdService::deviceAdded, this,
&NetworkDeviceProvider::_deviceAdded);
connect(m_networkProvider, &DnssdService::deviceRemoved, this,
&NetworkDeviceProvider::_deviceRemoved);
#endif
/* Helps main ui load a litte faster */
QTimer::singleShot(std::chrono::seconds(1), this,
[this]() { m_networkProvider->startBrowsing(); });
}
QList<NetworkDevice> getNetworkDevices()
{
return m_networkProvider->getNetworkDevices();
}
private:
#ifdef __linux__
AvahiService *m_networkProvider = nullptr;
#else
DnssdService *m_networkProvider = nullptr;
#endif
void _deviceRemoved(const QString &deviceName)
{
emit deviceRemoved(deviceName);
};
void _deviceAdded(const NetworkDevice &device)
{
emit deviceAdded(device);
};
signals:
void deviceAdded(const NetworkDevice &device);
void deviceRemoved(const QString &deviceName);
};
#endif // NETWORKDEVICEPROVIDER_H