本文整理汇总了C++中PluginSpec::getCategory方法的典型用法代码示例。如果您正苦于以下问题:C++ PluginSpec::getCategory方法的具体用法?C++ PluginSpec::getCategory怎么用?C++ PluginSpec::getCategory使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PluginSpec
的用法示例。
在下文中一共展示了PluginSpec::getCategory方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadPlugins
bool PluginManager::loadPlugins()
{
QStringList pluginSpecNameFilters;
pluginSpecNameFilters.append("*.xml");
QString filename;
PluginSpec *pluginSpec;
bool disablePluginViewer = false;
QString currentPath = QDir::current().absolutePath();
// Load plugin specs
for (int i = 0; i < pluginPaths.size(); i++)
{
qDebug() << pluginPaths.at(i);
QDir dir(pluginPaths.at(i));
dir.setNameFilters(pluginSpecNameFilters);
QDirIterator dirIterator(dir, QDirIterator::Subdirectories);
while (dirIterator.hasNext())
{
dirIterator.next();
filename = dirIterator.fileInfo().absoluteFilePath();
pluginSpec = new PluginSpec(filename);
qDebug() << "Loaded pluginspec: " << pluginSpec->getVendor() + "." + pluginSpec->getName();
pluginMap.insert(pluginSpec->getVendor() + "." + pluginSpec->getName(), pluginSpec);
}
}
// First load the core plugin
pluginSpec = pluginMap.value(corePluginName);
if ( !(pluginSpec && loadPlugin(pluginSpec) ) )
{
qDebug() << "could not load core plugin";
return false;
}
qDebug() << "read selected Plugins file: " << selectedPluginsFile;
QFile selectedPlugins(selectedPluginsFile);
if (!selectedPlugins.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug() << "could not open file";
}
QString pluginToLoad;
QTextStream in(&selectedPlugins);
pluginToLoad = in.readLine();
while (!pluginToLoad.isNull())
{
qDebug() << "selectedPlugin: " << pluginToLoad;
if (!pluginToLoad.startsWith('#'))
{
pluginConfig.insert(pluginToLoad, true);
pluginSpec = pluginMap.value(pluginToLoad);
if ( !(pluginSpec && loadPlugin(pluginSpec) ) )
{
qDebug() << "could not load plugin: " << pluginToLoad;
QDir::setCurrent(currentPath);
return false;
}
qDebug() << pluginSpec->getCategory();
if (pluginSpec->getCategory() == "GUI")
{
disablePluginViewer = true;
}
}
else
pluginConfig.insert(pluginToLoad.remove("#"), false);
pluginToLoad = in.readLine();
}
if (!disablePluginViewer)
showPluginViewer();
// reset the current path, because plugin loaders would change
// it during the loading process
QDir::setCurrent(currentPath);
return true;
}