Skip to content
Snippets Groups Projects
Commit da6dcc39 authored by Andreas Traczyk's avatar Andreas Traczyk
Browse files

videoview: use device friendly name in context menu

Change-Id: Ic1b6d05bf8fe729359bb76769770a5b4922b7e62
parent 3bfd7fd9
Branches
No related tags found
No related merge requests found
...@@ -1047,16 +1047,11 @@ void SettingsWidget::slotDeviceBoxCurrentIndexChanged(int index) ...@@ -1047,16 +1047,11 @@ void SettingsWidget::slotDeviceBoxCurrentIndexChanged(int index)
.toStdString(); .toStdString();
auto devices = LRCInstance::avModel().getDevices(); auto devices = LRCInstance::avModel().getDevices();
try { try {
auto iter = std::find_if(devices.begin(), devices.end(), auto deviceId = LRCInstance::avModel().getDeviceIdFromName(deviceName);
[deviceName](const std::string& d) { if (deviceId.empty()) {
auto settings = LRCInstance::avModel().getDeviceSettings(d);
return settings.name == deviceName;
});
if (iter == devices.end()) {
qWarning() << "Couldn't find device: " << deviceName.c_str(); qWarning() << "Couldn't find device: " << deviceName.c_str();
return; return;
} }
auto deviceId = *iter;
LRCInstance::avModel().setCurrentVideoCaptureDevice(deviceId); LRCInstance::avModel().setCurrentVideoCaptureDevice(deviceId);
LRCInstance::avModel().setDefaultDevice(deviceId); LRCInstance::avModel().setDefaultDevice(deviceId);
setFormatListForDevice(deviceId); setFormatListForDevice(deviceId);
......
...@@ -191,7 +191,9 @@ VideoView::showContextMenu(const QPoint& position) ...@@ -191,7 +191,9 @@ VideoView::showContextMenu(const QPoint& position)
auto devices = LRCInstance::avModel().getDevices(); auto devices = LRCInstance::avModel().getDevices();
auto device = LRCInstance::avModel().getCurrentVideoCaptureDevice(); auto device = LRCInstance::avModel().getCurrentVideoCaptureDevice();
for (auto d : devices) { for (auto d : devices) {
auto deviceName = QString::fromStdString(d).toUtf8(); try {
auto settings = LRCInstance::avModel().getDeviceSettings(d);
QString deviceName = QString::fromStdString(settings.name).toUtf8();
auto deviceAction = new QAction(deviceName, this); auto deviceAction = new QAction(deviceName, this);
menu.addAction(deviceAction); menu.addAction(deviceAction);
deviceAction->setCheckable(true); deviceAction->setCheckable(true);
...@@ -200,14 +202,19 @@ VideoView::showContextMenu(const QPoint& position) ...@@ -200,14 +202,19 @@ VideoView::showContextMenu(const QPoint& position)
} }
connect(deviceAction, &QAction::triggered, connect(deviceAction, &QAction::triggered,
[this, deviceName]() { [this, deviceName]() {
auto device = deviceName.toStdString(); auto deviceId = LRCInstance::avModel().getDeviceIdFromName(deviceName.toStdString());
if (LRCInstance::avModel().getCurrentVideoCaptureDevice() == device) { if (deviceId.empty()) {
qWarning() << "Couldn't find device: " << deviceName;
return;
}
if (LRCInstance::avModel().getCurrentVideoCaptureDevice() == deviceId) {
return; return;
} }
LRCInstance::avModel().switchInputTo(device); LRCInstance::avModel().switchInputTo(deviceId);
resetPreview(); resetPreview();
LRCInstance::avModel().setCurrentVideoCaptureDevice(device); LRCInstance::avModel().setCurrentVideoCaptureDevice(deviceId);
}); });
} catch (...) {}
} }
menu.addSeparator(); menu.addSeparator();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment