PluginModuleInfo PluginInfoStore::findPlugin(String& mimeType, const KURL& url) { loadPluginsIfNecessary(); // First, check if we can get the plug-in based on its MIME type. if (!mimeType.isNull()) { PluginModuleInfo plugin = findPluginForMIMEType(mimeType); if (!plugin.path.isNull()) return plugin; } // Next, check if any plug-ins claim to support the URL extension. String extension = pathExtension(url).lower(); if (!extension.isNull() && mimeType.isEmpty()) { PluginModuleInfo plugin = findPluginForExtension(extension, mimeType); if (!plugin.path.isNull()) return plugin; // Finally, try to get the MIME type from the extension in a platform specific manner and use that. String extensionMimeType = getMIMETypeForExtension(extension); if (!extensionMimeType.isNull()) { PluginModuleInfo plugin = findPluginForMIMEType(extensionMimeType); if (!plugin.path.isNull()) { mimeType = extensionMimeType; return plugin; } } } return PluginModuleInfo(); }
StringList AbstractFileManager::directoryContents(const String& path, String extension, bool directories, bool files) { StringList result; if (!isDirectory(path) || !wxSetWorkingDirectory(path)) return result; if (!directories && !files) return result; int flags; if (directories && files) flags = 0; else if (directories) flags = wxDIR; else flags = wxFILE; String lowerExtension = Utility::toLower(extension); wxString filename = wxFindFirstFile("*", flags); while (!filename.empty()) { String stdFilename = filename.ToStdString(); bool matches = extension.empty() || Utility::toLower(pathExtension(stdFilename)) == lowerExtension; if (matches) result.push_back(pathComponents(stdFilename).back()); filename = wxFindNextFile(); } return result; }