Рефакторинг

This commit is contained in:
Andrey Rodionov 2020-05-13 09:32:06 +03:00
parent dc5a778c7e
commit d68283b5a4
1 changed files with 9 additions and 6 deletions

View File

@ -155,12 +155,15 @@ void PluginManager::setSettings(QSettings *s)
void PluginManager::removePlugin(QObject *obj)
{
for (const QString &interface : m_interfaces.keys())
for (QObject *plug : m_interfaces.values(interface))
if (plug == obj) {
m_interfaces.remove(interface, plug);
qCDebug(lcPlugin) << tr("Очищен модуль ") + plug->objectName();
}
for (auto it = m_interfaces.begin(); it != m_interfaces.end();) {
if (it.value() == obj) {
it = m_interfaces.erase(it);
qCDebug(lcPlugin) << tr("Очищен модуль ") + obj->objectName();
} else {
++it;
}
}
qCDebug(lcPlugin) << tr("Выгружен модуль ") + obj->objectName();
emit removedPlugin(obj);
}