Exemple #1
0
std::unique_ptr<Settings> Settings::from_file(const QString& setting_filename)
{
	std::unique_ptr<Settings> settings = cgogn::make_unique<Settings>();
	QFile setting_file(setting_filename);
	if (setting_file.exists() && setting_file.open(QIODevice::ReadOnly))
	{
		QByteArray data =  setting_file.readAll();

		QJsonParseError parse_error;
		QJsonDocument doc = QJsonDocument::fromJson(data, &parse_error);
		if (parse_error.error != QJsonParseError::NoError)
		{
			cgogn_log_warning("Settings(const QString&)") << "Error while reading the file \"" << setting_filename.toStdString() << "\". Error is : \"" << parse_error.errorString().toStdString() << "\".";
		} else {
			cgogn_log_info("Settings(const QString&)") << "Loaded setting file \"" << setting_filename.toStdString() << "\".";
		}
		const auto obj = doc.object();
		for(auto it = obj.constBegin(); it != obj.constEnd(); ++it)
			settings->add_module(it.key(), it.value().toObject().toVariantMap());
	} else {
		cgogn_log_warning("Settings::from_file()") << "Unable to read the file \"" << setting_filename.toStdString() << "\".";
	}
	return settings;
}
Exemple #2
0
bool FileImport::import_file(const std::string& filename)
{
	Scoped_C_Locale loc;

	if (!filename.empty())
	{
		// test if file exist
		std::ifstream fp(filename.c_str(), std::ios::in);
		if (!fp.good())
		{
			cgogn_log_warning("FileImport::import_file") << "Unable to open file \"" << filename << "\"";
			return false;
		}
	}

	return this->import_file_impl(filename);
}