diff --git a/libs/editor/settings/bridgewidget.cpp b/libs/editor/settings/bridgewidget.cpp --- a/libs/editor/settings/bridgewidget.cpp +++ b/libs/editor/settings/bridgewidget.cpp @@ -225,9 +225,22 @@ { m_ui->bridges->clear(); + QString id; for (const NetworkManager::Connection::Ptr &connection : NetworkManager::listConnections()) { NetworkManager::ConnectionSettings::Ptr settings = connection->settings(); - if (settings->master() == m_uuid && settings->slaveType() == type()) { + if (settings->uuid() == m_uuid) { + id = settings->id(); + } + } + + for (const NetworkManager::Connection::Ptr &connection : NetworkManager::listConnections()) { + NetworkManager::ConnectionSettings::Ptr settings = connection->settings(); + // The mapping from slave to master may be by uuid or name, try our best to + // figure out if we are master to the slave. + const QString master = settings->master(); + bool isSlave = ((master == m_uuid) || // by-uuid + (!id.isEmpty() && master == id)); // by-name + if (isSlave && (settings->slaveType() == type())) { const QString label = QString("%1 (%2)").arg(connection->name()).arg(connection->settings()->typeAsString(connection->settings()->connectionType())); QListWidgetItem * slaveItem = new QListWidgetItem(label, m_ui->bridges); slaveItem->setData(Qt::UserRole, connection->uuid());