DolphinQt: Display more user-friendly names in the mapping window device list.

This commit is contained in:
Jordan Woyak 2024-11-04 22:59:34 -06:00
parent 53ede795a2
commit 1888770256

View File

@ -59,6 +59,22 @@
#include "InputCommon/ControllerInterface/CoreDevice.h"
#include "InputCommon/InputConfig.h"
namespace
{
QString GetUserFriendlyDeviceName(const std::string& str)
{
ciface::Core::DeviceQualifier qualifier;
qualifier.FromString(str);
return QStringLiteral("%1 (%2) %3")
.arg(QString::fromStdString(qualifier.name))
.arg(qualifier.cid + 1)
.arg(QString::fromStdString(qualifier.source));
}
} // namespace
MappingWindow::MappingWindow(QWidget* parent, Type type, int port_num)
: QDialog(parent), m_port(port_num)
{
@ -363,8 +379,9 @@ void MappingWindow::OnGlobalDevicesChanged()
for (const auto& name : g_controller_interface.GetAllDeviceStrings())
{
const auto display_name = GetUserFriendlyDeviceName(name);
const auto qname = QString::fromStdString(name);
m_devices_combo->addItem(qname, qname);
m_devices_combo->addItem(display_name, qname);
}
const auto default_device = m_controller->GetDefaultDevice().ToString();
@ -372,7 +389,7 @@ void MappingWindow::OnGlobalDevicesChanged()
if (!default_device.empty())
{
const auto default_device_index =
m_devices_combo->findText(QString::fromStdString(default_device));
m_devices_combo->findData(QString::fromStdString(default_device));
if (default_device_index != -1)
{
@ -382,9 +399,10 @@ void MappingWindow::OnGlobalDevicesChanged()
{
// Selected device is not currently attached.
m_devices_combo->insertSeparator(m_devices_combo->count());
const auto display_name = GetUserFriendlyDeviceName(default_device);
const auto qname = QString::fromStdString(default_device);
m_devices_combo->addItem(QLatin1Char{'['} + tr("disconnected") + QStringLiteral("] ") + qname,
qname);
m_devices_combo->addItem(
QLatin1Char{'['} + tr("disconnected") + QStringLiteral("] ") + display_name, qname);
m_devices_combo->setCurrentIndex(m_devices_combo->count() - 1);
}
}