use queued connections for all device signals

This commit is contained in:
Jan Käberich 2022-10-23 21:19:53 +02:00
parent a5e837076b
commit 0539dea4ef

View File

@ -122,30 +122,30 @@ VirtualDevice::VirtualDevice(QString serial)
// just acting as a wrapper for device, pass on signals // just acting as a wrapper for device, pass on signals
auto dev = new Device(serial); auto dev = new Device(serial);
devices.push_back(dev); devices.push_back(dev);
connect(dev, &Device::ConnectionLost, this, &VirtualDevice::ConnectionLost); connect(dev, &Device::ConnectionLost, this, &VirtualDevice::ConnectionLost, Qt::QueuedConnection);
connect(dev, &Device::DeviceInfoUpdated, [=](){ connect(dev, &Device::DeviceInfoUpdated, this, [=](){
info = Info(devices[0]); info = Info(devices[0]);
emit InfoUpdated(); emit InfoUpdated();
}); }, Qt::QueuedConnection);
connect(dev, &Device::LogLineReceived, this, &VirtualDevice::LogLineReceived); connect(dev, &Device::LogLineReceived, this, &VirtualDevice::LogLineReceived, Qt::QueuedConnection);
connect(dev, &Device::DeviceStatusUpdated, [=](){ connect(dev, &Device::DeviceStatusUpdated, this, [=](){
status = Status(devices[0]); status = Status(devices[0]);
emit StatusUpdated(status); emit StatusUpdated(status);
}); }, Qt::QueuedConnection);
connect(dev, &Device::NeedsFirmwareUpdate, this, &VirtualDevice::NeedsFirmwareUpdate); connect(dev, &Device::NeedsFirmwareUpdate, this, &VirtualDevice::NeedsFirmwareUpdate, Qt::QueuedConnection);
connect(dev, &Device::SpectrumResultReceived, this, &VirtualDevice::singleSpectrumResultReceived); connect(dev, &Device::SpectrumResultReceived, this, &VirtualDevice::singleSpectrumResultReceived, Qt::QueuedConnection);
connect(dev, &Device::DatapointReceived, this, &VirtualDevice::singleDatapointReceived); connect(dev, &Device::DatapointReceived, this, &VirtualDevice::singleDatapointReceived, Qt::QueuedConnection);
} else { } else {
// Connect to the actual devices // Connect to the actual devices
for(auto devSerial : cdev->deviceSerials) { for(auto devSerial : cdev->deviceSerials) {
auto dev = new Device(devSerial); auto dev = new Device(devSerial);
devices.push_back(dev); devices.push_back(dev);
// Create device connections // Create device connections
connect(dev, &Device::ConnectionLost, this, &VirtualDevice::ConnectionLost); connect(dev, &Device::ConnectionLost, this, &VirtualDevice::ConnectionLost, Qt::QueuedConnection);
connect(dev, &Device::NeedsFirmwareUpdate, this, &VirtualDevice::NeedsFirmwareUpdate); connect(dev, &Device::NeedsFirmwareUpdate, this, &VirtualDevice::NeedsFirmwareUpdate, Qt::QueuedConnection);
connect(dev, &Device::LogLineReceived, [=](QString line){ connect(dev, &Device::LogLineReceived, this, [=](QString line){
emit LogLineReceived(line.prepend(dev->serial()+": ")); emit LogLineReceived(line.prepend(dev->serial()+": "));
}); }, Qt::QueuedConnection);
connect(dev, &Device::DeviceInfoUpdated, this, &VirtualDevice::compoundInfoUpdated, Qt::QueuedConnection); connect(dev, &Device::DeviceInfoUpdated, this, &VirtualDevice::compoundInfoUpdated, Qt::QueuedConnection);
connect(dev, &Device::DeviceStatusUpdated, this, &VirtualDevice::compoundStatusUpdated, Qt::QueuedConnection); connect(dev, &Device::DeviceStatusUpdated, this, &VirtualDevice::compoundStatusUpdated, Qt::QueuedConnection);
connect(dev, &Device::DatapointReceived, this, &VirtualDevice::compoundDatapointReceivecd, Qt::QueuedConnection); connect(dev, &Device::DatapointReceived, this, &VirtualDevice::compoundDatapointReceivecd, Qt::QueuedConnection);