void QPlatformAccessibility::initialize() { static bool isInit = false; if (isInit) return; isInit = true; // ### not atomic #ifndef QT_NO_LIBRARY typedef QMultiMap<int, QString> PluginKeyMap; typedef PluginKeyMap::const_iterator PluginKeyMapConstIterator; const PluginKeyMap keyMap = bridgeloader()->keyMap(); QAccessibleBridgePlugin *factory = 0; int i = -1; const PluginKeyMapConstIterator cend = keyMap.constEnd(); for (PluginKeyMapConstIterator it = keyMap.constBegin(); it != cend; ++it) { if (it.key() != i) { i = it.key(); factory = qobject_cast<QAccessibleBridgePlugin*>(bridgeloader()->instance(i)); } if (factory) if (QAccessibleBridge *bridge = factory->create(it.value())) bridges()->append(bridge); } #endif }
void supportedImageHandlerFormats(QFactoryLoader *loader, QImageIOPlugin::Capability cap, QList<QByteArray> *result) { typedef QMultiMap<int, QString> PluginKeyMap; typedef PluginKeyMap::const_iterator PluginKeyMapConstIterator; const PluginKeyMap keyMap = loader->keyMap(); const PluginKeyMapConstIterator cend = keyMap.constEnd(); int i = -1; QImageIOPlugin *plugin = 0; result->reserve(result->size() + keyMap.size()); for (PluginKeyMapConstIterator it = keyMap.constBegin(); it != cend; ++it) { if (it.key() != i) { i = it.key(); plugin = qobject_cast<QImageIOPlugin *>(loader->instance(i)); } const QByteArray key = it.value().toLatin1(); if (plugin && (plugin->capabilities(0, key) & cap) != 0) result->append(key); } }