Exemplo n.º 1
0
void PluginStateService::setPluginStates(QMap<QString, PluginState> pluginStates) noexcept
{
	auto setToNew = QSet<QString>{};
	for (auto &plugin : m_pluginStates.keys())
		if (!pluginStates.contains(plugin))
			setToNew.insert(plugin);

	for (auto &plugin : setToNew)
		setPluginState(plugin, PluginState::New);

	for (auto &plugin : pluginStates.keys())
		setPluginState(plugin, pluginStates.value(plugin));
}
Exemplo n.º 2
0
void PluginManager::loadPlugins()
{
	Q_FOREACH (PluginSpec *spec, m_pluginSpecs)
	setPluginState(spec, State::Resolved);

	QList<PluginSpec *> queue = loadQueue();

	Q_FOREACH (PluginSpec *spec, queue)
	setPluginState(spec, State::Loaded);

	Q_FOREACH (PluginSpec *spec, queue)
	setPluginState(spec, State::Initialized);

	QListIterator<PluginSpec *> it(queue);
	it.toBack();
	while (it.hasPrevious())
		setPluginState(it.previous(), State::Running);

	Q_EMIT pluginsChanged();
}