void Settings::to_file(const QString& filename) { QFile::remove(filename); QFile setting_file(filename); if (setting_file.open(QIODevice::WriteOnly)) { QJsonObject obj; for (auto it = map_.constBegin(); it != map_.constEnd() ; ++it) obj[it.key()] = QJsonObject::fromVariantMap(it.value()); QJsonDocument doc(obj); setting_file.write(doc.toJson()); } else { cgogn_log_info("Settings::to_file()") << "Unable to write in the file \"" << filename.toStdString() << "\"."; } }
int main(int argc, char** argv) { std::string filename; if (argc < 2) { cgogn_log_info("topogical_analysis") << "USAGE: " << argv[0] << " [filename]"; filename = std::string(DEFAULT_MESH_PATH) + std::string("/tet/hand.tet"); cgogn_log_info("topogical_analysis") << "Using default mesh \"" << filename << "\"."; } else filename = std::string(argv[1]); QApplication application(argc, argv); qoglviewer::init_ogl_context(); // Instantiate the viewer. TopologicalAnalyser<CMap3> viewer; viewer.setWindowTitle("Topological Analysis"); viewer.import(filename); viewer.show(); // Run main loop. return application.exec(); }
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; }