Esempio n. 1
0
void Index::processMimeApps(const std::string &path)
{
	ConfigReader config(path);
	std::vector<std::string> types;

	types = config.keys("Added Associations");

	for (std::vector<std::string>::size_type i = 0; i < types.size(); ++i)
	{
		std::vector<std::string> identifiers = split(config.value("Added Associations", types.at(i)), ';');

		for (int j = identifiers.size()-1; j >= 0; --j)
		{
			if (knownApplications_.count(identifiers[j]) > 0)
			{
				addToType(types[i], knownApplications_.at(identifiers[j]));
			}
		}
	}

	types = config.keys("Removed Associations");

	for (std::vector<std::string>::size_type i = 0; i < types.size(); ++i)
	{
		std::vector<std::string> identifiers = split(config.value("Removed Associations", types.at(i)), ';');

		for (std::vector<std::string>::size_type j = 0; j < identifiers.size(); ++j)
		{
			removeFromType(types[i], identifiers[j]);
		}
	}
}
Esempio n. 2
0
void Index::processMimeApps(const std::string &path)
{
	ConfigReader config(path);
	std::vector<std::string> types;

	types = config.keys("Added Associations");

	for (std::vector<std::string>::size_type i = 0; i < types.size(); ++i)
	{
		std::vector<std::string> identifiers = split(config.value("Added Associations", types.at(i)), ';');

		for (std::vector<std::string>::reverse_iterator it = identifiers.rbegin(); it != identifiers.rend(); ++it)
		{
			if (knownApplications_.find(*it) != knownApplications_.end())
			{
				addToType(types[i], knownApplications_.at(*it));
			}
		}
	}

	types = config.keys("Removed Associations");

	for (std::vector<std::string>::size_type i = 0; i < types.size(); ++i)
	{
		std::vector<std::string> identifiers = split(config.value("Removed Associations", types.at(i)), ';');

		for (std::vector<std::string>::size_type j = 0; j < identifiers.size(); ++j)
		{
			removeFromType(types[i], identifiers[j]);
		}
	}
}
Esempio n. 3
0
void Index::addApplication(DesktopEntry *entry)
{
	removeApplication(entry->identifier());

	knownApplications_[entry->identifier()] = entry;

	for (std::vector<std::string>::size_type i = 0; i < entry->types().size(); ++i)
	{
		addToType(entry->types().at(i), entry);
	}
}