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 }
QStringList QSqlDatabase::drivers() { QStringList list; #ifdef QT_SQL_PSQL list << QLatin1String("QPSQL7"); list << QLatin1String("QPSQL"); #endif #ifdef QT_SQL_MYSQL list << QLatin1String("QMYSQL3"); list << QLatin1String("QMYSQL"); #endif #ifdef QT_SQL_ODBC list << QLatin1String("QODBC3"); list << QLatin1String("QODBC"); #endif #ifdef QT_SQL_OCI list << QLatin1String("QOCI8"); list << QLatin1String("QOCI"); #endif #ifdef QT_SQL_TDS list << QLatin1String("QTDS7"); list << QLatin1String("QTDS"); #endif #ifdef QT_SQL_DB2 list << QLatin1String("QDB2"); #endif #ifdef QT_SQL_SQLITE list << QLatin1String("QSQLITE"); #endif #ifdef QT_SQL_SQLITE2 list << QLatin1String("QSQLITE2"); #endif #ifdef QT_SQL_IBASE list << QLatin1String("QIBASE"); #endif #ifndef QT_NO_LIBRARY if (QFactoryLoader *fl = loader()) { typedef QMultiMap<int, QString> PluginKeyMap; typedef PluginKeyMap::const_iterator PluginKeyMapConstIterator; const PluginKeyMap keyMap = fl->keyMap(); const PluginKeyMapConstIterator cend = keyMap.constEnd(); for (PluginKeyMapConstIterator it = keyMap.constBegin(); it != cend; ++it) if (!list.contains(it.value())) list << it.value(); } #endif DriverDict dict = QSqlDatabasePrivate::driverDict(); for (DriverDict::const_iterator i = dict.constBegin(); i != dict.constEnd(); ++i) { if (!list.contains(i.key())) list << i.key(); } return list; }
/*! Returns the list of valid keys, i.e. the keys this factory can create styles for. \sa create() */ QStringList QStyleFactory::keys() { QStringList list; #ifndef QT_NO_LIBRARY typedef QMultiMap<int, QString> PluginKeyMap; const PluginKeyMap keyMap = loader()->keyMap(); const PluginKeyMap::const_iterator cend = keyMap.constEnd(); for (PluginKeyMap::const_iterator it = keyMap.constBegin(); it != cend; ++it) list.append(it.value()); #endif #ifndef QT_NO_STYLE_WINDOWS if (!list.contains(QLatin1String("Windows"))) list << QLatin1String("Windows"); #endif #ifndef QT_NO_STYLE_WINDOWSCE if (!list.contains(QLatin1String("WindowsCE"))) list << QLatin1String("WindowsCE"); #endif #ifndef QT_NO_STYLE_WINDOWSMOBILE if (!list.contains(QLatin1String("WindowsMobile"))) list << QLatin1String("WindowsMobile"); #endif #ifndef QT_NO_STYLE_WINDOWSXP if (!list.contains(QLatin1String("WindowsXP")) && (QSysInfo::WindowsVersion >= QSysInfo::WV_XP && (QSysInfo::WindowsVersion & QSysInfo::WV_NT_based))) list << QLatin1String("WindowsXP"); #endif #ifndef QT_NO_STYLE_WINDOWSVISTA if (!list.contains(QLatin1String("WindowsVista")) && (QSysInfo::WindowsVersion >= QSysInfo::WV_VISTA && (QSysInfo::WindowsVersion & QSysInfo::WV_NT_based))) list << QLatin1String("WindowsVista"); #endif #ifndef QT_NO_STYLE_ANDROID if (!list.contains(QLatin1String("Android"))) list << QLatin1String("Android"); #endif #ifndef QT_NO_STYLE_GTK if (!list.contains(QLatin1String("GTK+"))) list << QLatin1String("GTK+"); #endif #ifndef QT_NO_STYLE_FUSION if (!list.contains(QLatin1String("Fusion"))) list << QLatin1String("Fusion"); #endif #ifndef QT_NO_STYLE_MAC QString mstyle = QLatin1String("Macintosh"); # ifdef Q_WS_MAC mstyle += QLatin1String(" (aqua)"); # endif if (!list.contains(mstyle)) list << mstyle; #endif return list; }
/*! Returns the list of valid keys, i.e. the available mouse drivers. \sa create() */ QStringList QGenericPluginFactory::keys() { QStringList list; #if !defined(Q_OS_WIN32) || defined(QT_SHARED) #ifndef QT_NO_LIBRARY typedef QMultiMap<int, QString> PluginKeyMap; typedef PluginKeyMap::const_iterator PluginKeyMapConstIterator; const PluginKeyMap keyMap = loader()->keyMap(); const PluginKeyMapConstIterator cend = keyMap.constEnd(); for (PluginKeyMapConstIterator it = keyMap.constBegin(); it != cend; ++it) if (!list.contains(it.value())) list += it.value(); #endif //QT_NO_LIBRARY #endif return list; }
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); } }