Exemple #1
0
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;
        }