本文整理汇总了C++中PluginPackage类的典型用法代码示例。如果您正苦于以下问题:C++ PluginPackage类的具体用法?C++ PluginPackage怎么用?C++ PluginPackage使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了PluginPackage类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: preferredPluginCompare
int PluginDatabase::preferredPluginCompare(const void* a, const void* b)
{
PluginPackage* pluginA = *static_cast<PluginPackage* const*>(a);
PluginPackage* pluginB = *static_cast<PluginPackage* const*>(b);
return pluginA->compare(*pluginB);
}
示例2: String
String PluginDatabase::MIMETypeForExtension(const String& extension) const
{
if (extension.isEmpty())
return String();
PluginSet::const_iterator end = m_plugins.end();
String mimeType;
Vector<PluginPackage*, 2> pluginChoices;
HashMap<PluginPackage*, String> mimeTypeForPlugin;
for (PluginSet::const_iterator it = m_plugins.begin(); it != end; ++it) {
if (!(*it)->isEnabled())
continue;
MIMEToExtensionsMap::const_iterator mime_end = (*it)->mimeToExtensions().end();
for (MIMEToExtensionsMap::const_iterator mime_it = (*it)->mimeToExtensions().begin(); mime_it != mime_end; ++mime_it) {
mimeType = mime_it->first;
PluginPackage* preferredPlugin = m_preferredPlugins.get(mimeType).get();
const Vector<String>& extensions = mime_it->second;
bool foundMapping = false;
for (unsigned i = 0; i < extensions.size(); i++) {
if (equalIgnoringCase(extensions[i], extension)) {
PluginPackage* plugin = (*it).get();
if (preferredPlugin && PluginPackage::equal(*plugin, *preferredPlugin))
return mimeType;
#if ENABLE(NETSCAPE_PLUGIN_METADATA_CACHE)
if (!plugin->ensurePluginLoaded())
continue;
#endif
pluginChoices.append(plugin);
mimeTypeForPlugin.add(plugin, mimeType);
foundMapping = true;
break;
}
}
if (foundMapping)
break;
}
}
if (pluginChoices.isEmpty())
return String();
qsort(pluginChoices.data(), pluginChoices.size(), sizeof(PluginPackage*), PluginDatabase::preferredPluginCompare);
return mimeTypeForPlugin.get(pluginChoices[0]);
}
示例3: qsort
PluginPackage* PluginDatabase::pluginForMIMEType(const String& mimeType)
{
if (mimeType.isEmpty())
return 0;
String key = mimeType.lower();
PluginSet::const_iterator end = m_plugins.end();
PluginPackage* preferredPlugin = m_preferredPlugins.get(key).get();
if (preferredPlugin
&& preferredPlugin->isEnabled()
&& preferredPlugin->mimeToDescriptions().contains(key)) {
return preferredPlugin;
}
Vector<PluginPackage*, 2> pluginChoices;
for (PluginSet::const_iterator it = m_plugins.begin(); it != end; ++it) {
PluginPackage* plugin = (*it).get();
if (!plugin->isEnabled())
continue;
if (plugin->mimeToDescriptions().contains(key))
pluginChoices.append(plugin);
}
if (pluginChoices.isEmpty())
return 0;
qsort(pluginChoices.data(), pluginChoices.size(), sizeof(PluginPackage*), PluginDatabase::preferredPluginCompare);
return pluginChoices[0];
}
示例4: createPluginInfoForPluginAtIndex
PluginInfo* PluginInfoStore::createPluginInfoForPluginAtIndex(unsigned i)
{
PluginDatabase *db = PluginDatabase::installedPlugins();
PluginInfo* info = new PluginInfo;
PluginPackage* package = db->plugins()[i];
info->name = package->name();
info->file = package->fileName();
info->desc = package->description();
const MIMEToDescriptionsMap& mimeToDescriptions = package->mimeToDescriptions();
MIMEToDescriptionsMap::const_iterator end = mimeToDescriptions.end();
for (MIMEToDescriptionsMap::const_iterator it = mimeToDescriptions.begin(); it != end; ++it) {
MimeClassInfo* mime = new MimeClassInfo;
info->mimes.append(mime);
mime->type = it->first;
mime->desc = it->second;
mime->plugin = info;
Vector<String> extensions = package->mimeToExtensions().get(mime->type);
for (unsigned i = 0; i < extensions.size(); i++) {
if (i > 0)
mime->suffixes += ",";
mime->suffixes += extensions[i];
}
}
return info;
}
示例5: initPlugins
void PluginData::initPlugins(const Page*)
{
PluginDatabase* db = PluginDatabase::installedPlugins();
const Vector<PluginPackage*> &plugins = db->plugins();
for (unsigned int i = 0; i < plugins.size(); ++i) {
PluginInfo info;
PluginPackage* package = plugins[i];
info.name = package->name();
info.file = package->fileName();
info.desc = package->description();
const MIMEToDescriptionsMap& mimeToDescriptions = package->mimeToDescriptions();
MIMEToDescriptionsMap::const_iterator end = mimeToDescriptions.end();
for (MIMEToDescriptionsMap::const_iterator it = mimeToDescriptions.begin(); it != end; ++it) {
MimeClassInfo mime;
mime.type = it->key;
mime.desc = it->value;
mime.extensions = package->mimeToExtensions().get(mime.type);
info.mimes.append(mime);
}
m_plugins.append(info);
}
}
示例6: initPlugins
void PluginData::initPlugins(const Page* page)
{
PluginDatabase *db = PluginDatabase::installedPlugins();
const Vector<PluginPackage*> plugins = db->plugins();
m_plugins.resize(plugins.size());
for (unsigned i = 0; i < plugins.size(); ++i) {
PluginPackage* package = plugins[i];
m_plugins[i].name = package->name();
m_plugins[i].file = package->fileName();
m_plugins[i].desc = package->description();
const MIMEToDescriptionsMap& mimeToDescriptions = package->mimeToDescriptions();
unsigned j=0;
m_plugins[i].mimes.resize(mimeToDescriptions.size());
MIMEToDescriptionsMap::const_iterator end = mimeToDescriptions.end();
for (MIMEToDescriptionsMap::const_iterator it = mimeToDescriptions.begin(); it != end; ++it) {
m_plugins[i].mimes[j].type = it->key;
m_plugins[i].mimes[j].desc = it->value;
m_plugins[i].mimes[j].extensions = package->mimeToExtensions().get(m_plugins[i].mimes[j].type);
j++;
}
}
}
示例7: compare
int PluginPackage::compare(const PluginPackage& compareTo) const
{
// Sort plug-ins that allow multiple instances first.
bool AallowsMultipleInstances = !quirks().contains(PluginQuirkDontAllowMultipleInstances);
bool BallowsMultipleInstances = !compareTo.quirks().contains(PluginQuirkDontAllowMultipleInstances);
if (AallowsMultipleInstances != BallowsMultipleInstances)
return AallowsMultipleInstances ? -1 : 1;
// Sort plug-ins in a preferred path first.
bool AisInPreferredDirectory = PluginDatabase::isPreferredPluginDirectory(parentDirectory());
bool BisInPreferredDirectory = PluginDatabase::isPreferredPluginDirectory(compareTo.parentDirectory());
if (AisInPreferredDirectory != BisInPreferredDirectory)
return AisInPreferredDirectory ? -1 : 1;
int diff = strcmp(name().utf8().data(), compareTo.name().utf8().data());
if (diff)
return diff;
if (diff = compareFileVersion(compareTo.version()))
return diff;
return strcmp(parentDirectory().utf8().data(), compareTo.parentDirectory().utf8().data());
}
示例8: initPlugins
void PluginData::initPlugins()
{
#if QT_VERSION >= 0x040400
QWebPage* webPage = static_cast<ChromeClientQt*>(m_page->chrome()->client())->m_webPage;
QWebPluginFactory* factory = webPage->pluginFactory();
if (factory) {
QList<QWebPluginFactory::Plugin> qplugins = factory->plugins();
for (int i = 0; i < qplugins.count(); ++i) {
const QWebPluginFactory::Plugin& qplugin = qplugins.at(i);
PluginInfo* info = new PluginInfo;
info->name = qplugin.name;
info->desc = qplugin.description;
for (int j = 0; j < qplugin.mimeTypes.count(); ++j) {
const QWebPluginFactory::MimeType& mimeType = qplugin.mimeTypes.at(j);
MimeClassInfo* mimeInfo = new MimeClassInfo;
mimeInfo->type = mimeType.name;
mimeInfo->desc = mimeType.description;
mimeInfo->suffixes = mimeType.fileExtensions.join(QLatin1String("; "));
info->mimes.append(mimeInfo);
}
m_plugins.append(info);
}
}
#endif
PluginDatabase *db = PluginDatabase::installedPlugins();
const Vector<PluginPackage*> &plugins = db->plugins();
for (unsigned int i = 0; i < plugins.size(); ++i) {
PluginInfo* info = new PluginInfo;
PluginPackage* package = plugins[i];
info->name = package->name();
info->file = package->fileName();
info->desc = package->description();
const MIMEToDescriptionsMap& mimeToDescriptions = package->mimeToDescriptions();
MIMEToDescriptionsMap::const_iterator end = mimeToDescriptions.end();
for (MIMEToDescriptionsMap::const_iterator it = mimeToDescriptions.begin(); it != end; ++it) {
MimeClassInfo* mime = new MimeClassInfo;
info->mimes.append(mime);
mime->type = it->first;
mime->desc = it->second;
mime->plugin = info;
Vector<String> extensions = package->mimeToExtensions().get(mime->type);
for (unsigned i = 0; i < extensions.size(); i++) {
if (i > 0)
mime->suffixes += ",";
mime->suffixes += extensions[i];
}
}
m_plugins.append(info);
}
}