void Settings::remove(const StringView& _name) const { ini_t* ini = INI_T(m_ini); FilePath uri(_name); const StringView path = strTrim(uri.getPath(), "/"); const StringView& fileName = uri.getFileName(); int32_t section = INI_GLOBAL_SECTION; if (!path.isEmpty() ) { section = ini_find_section(ini, path.getPtr(), path.getLength() ); if (INI_NOT_FOUND == section) { section = INI_GLOBAL_SECTION; } } int32_t property = ini_find_property(ini, section, fileName.getPtr(), fileName.getLength() ); if (INI_NOT_FOUND == property) { return; } ini_property_remove(ini, section, property); if (INI_GLOBAL_SECTION != section && 0 == ini_property_count(ini, section) ) { ini_section_remove(ini, section); } }
static bool loadZum1(std::string const& dataIn) { // Remove the header data const std::string data = dataIn.substr(5); createDefaultEmpty(); currentDoc().width_ = 0; currentDoc().height_ = 0; ini_t * ini = ini_load(data.c_str(), nullptr); { // Load columns section const int columnsSection = ini_find_section(ini, "columns", 0); if (columnsSection != INI_NOT_FOUND) { const int columnsCount = ini_property_count(ini, columnsSection); for (int i = 0; i < columnsCount; ++i) { const int col = Index::strToColumn(std::string(ini_property_name(ini, columnsSection, i))); const int width = std::atoi(ini_property_value(ini, columnsSection, i)); currentDoc().columnWidth_[col] = width; } } } { // Load data section const int dataSection = ini_find_section(ini, "data", 0); if (dataSection == INI_NOT_FOUND) { logError("Could not locate the data section in the document"); ini_destroy(ini); return false; } const int dataCount = ini_property_count(ini, dataSection); for (int i = 0; i < dataCount; ++i) { const Index idx = Index::fromStr(std::string(ini_property_name(ini, dataSection, i))); const std::string value = ini_property_value(ini, dataSection, i); setText(idx, value); } } { // Load format section const int formatSection = ini_find_section(ini, "format", 0); if (formatSection != INI_NOT_FOUND) { const int formatCount = ini_property_count(ini, formatSection); for (int i = 0; i < formatCount; ++i) { const Index idx = Index::fromStr(std::string(ini_property_name(ini, formatSection, i))); const std::string value = ini_property_value(ini, formatSection, i); getCell(idx).format = parseFormat(value); } } } ini_destroy(ini); evaluateDocument(); return true; }