void FarHrcSettings::writeProfileToRegistry() { HRCParser* hrcParser = parserFactory->getHRCParser(); FileTypeImpl* type = nullptr; SettingsControl ColorerSettings; ColorerSettings.rDeleteSubKey(0, HrcSettings); size_t hrc_subkey; hrc_subkey = ColorerSettings.rGetSubKey(0, HrcSettings); // enum all FileTypes for (int idx = 0; ; idx++) { type = static_cast<FileTypeImpl*>(hrcParser->enumerateFileTypes(idx)); if (!type) { break; } if (type->getParamCount() && type->getParamUserValueCount()) { // params>0 and user values >0 size_t type_subkey = ColorerSettings.rGetSubKey(hrc_subkey, type->getName()->getWChars()); // enum all params std::vector<SString> type_params = type->enumParams(); for (auto paramname = type_params.begin(); paramname != type_params.end(); ++paramname) { const String* v = type->getParamUserValue(*paramname); if (v != nullptr) { ColorerSettings.Set(type_subkey, paramname->getWChars(), v->getWChars()); } } } } }
void FarHrcSettings::writeProfileToRegistry() { HRCParser *hrcParser = parserFactory->getHRCParser(); FileTypeImpl *type = NULL; SettingsControl ColorerSettings; ColorerSettings.rDeleteSubKey(0,HrcSettings); size_t hrc_subkey; hrc_subkey = ColorerSettings.rGetSubKey(0,HrcSettings); // enum all FileTypes for (int idx = 0; ; idx++){ type =(FileTypeImpl *) hrcParser->enumerateFileTypes(idx); if (!type){ break; } const String *p, *v; if (type->getParamCount() && type->getParamNotDefaultValueCount()){// params>0 and user values >0 size_t type_subkey = ColorerSettings.rGetSubKey(hrc_subkey,type->getName()->getWChars()); // enum all params for (int i=0;;i++){ p=type->enumerateParameters(i); if (!p){ break; } v=type->getParamNotDefaultValue(*p); if (v!=NULL){ ColorerSettings.Set(type_subkey,p->getWChars(),v->getWChars()); } } } } }
void FarHrcSettings::readProfileFromRegistry() { HRCParser* hrcParser = parserFactory->getHRCParser(); SettingsControl ColorerSettings; size_t hrc_subkey; hrc_subkey = ColorerSettings.rGetSubKey(0, HrcSettings); FarSettingsEnum fse; fse.StructSize = sizeof(FarSettingsEnum); // enum all the sections in HrcSettings if (ColorerSettings.rEnum(hrc_subkey, &fse)) { for (size_t i = 0; i < fse.Count; i++) { if (fse.Items[i].Type == FST_SUBKEY) { //check whether we have such a scheme DString named = DString(fse.Items[i].Name); FileTypeImpl* type = static_cast<FileTypeImpl*>(hrcParser->getFileType(&named)); if (type) { // enum all params in the section size_t type_subkey; type_subkey = ColorerSettings.rGetSubKey(hrc_subkey, fse.Items[i].Name); FarSettingsEnum type_fse; type_fse.StructSize = sizeof(FarSettingsEnum); if (ColorerSettings.rEnum(type_subkey, &type_fse)) { for (size_t j = 0; j < type_fse.Count; j++) { if (type_fse.Items[j].Type == FST_STRING) { DString name_fse= DString(type_fse.Items[j].Name); if (type->getParamValue(name_fse) == nullptr) { type->addParam(&name_fse); } const wchar_t* p = ColorerSettings.Get(type_subkey, type_fse.Items[j].Name, static_cast<wchar_t*>(nullptr)); if (p) { type->setParamValue(DString(type_fse.Items[j].Name), &DString(p)); } } } } } } } } }