bool CSettingsOperations::SerializeSettingBool(std::shared_ptr<const CSettingBool> setting, CVariant &obj) { if (setting == NULL) return false; obj["value"] = setting->GetValue(); obj["default"] = setting->GetDefault(); return true; }
bool CSettingsOperations::SerializeSettingNumber(std::shared_ptr<const CSettingNumber> setting, CVariant &obj) { if (setting == NULL) return false; obj["value"] = setting->GetValue(); obj["default"] = setting->GetDefault(); obj["minimum"] = setting->GetMinimum(); obj["step"] = setting->GetStep(); obj["maximum"] = setting->GetMaximum(); return true; }
bool CSettingsOperations::SerializeSettingList(std::shared_ptr<const CSettingList> setting, CVariant &obj) { if (setting == NULL || !SerializeSetting(setting->GetDefinition(), obj["definition"])) return false; SerializeSettingListValues(CSettingUtils::GetList(setting), obj["value"]); SerializeSettingListValues(CSettingUtils::ListToValues(setting, setting->GetDefault()), obj["default"]); obj["elementtype"] = obj["definition"]["type"]; obj["delimiter"] = setting->GetDelimiter(); obj["minimumItems"] = setting->GetMinimumItems(); obj["maximumItems"] = setting->GetMaximumItems(); return true; }
bool CSettingsOperations::SerializeSettingString(std::shared_ptr<const CSettingString> setting, CVariant &obj) { if (setting == NULL) return false; obj["value"] = setting->GetValue(); obj["default"] = setting->GetDefault(); obj["allowempty"] = setting->AllowEmpty(); switch (setting->GetOptionsType()) { case SettingOptionsTypeStaticTranslatable: { obj["options"] = CVariant(CVariant::VariantTypeArray); const TranslatableStringSettingOptions& options = setting->GetTranslatableOptions(); for (TranslatableStringSettingOptions::const_iterator itOption = options.begin(); itOption != options.end(); ++itOption) { CVariant varOption(CVariant::VariantTypeObject); varOption["label"] = g_localizeStrings.Get(itOption->first); varOption["value"] = itOption->second; obj["options"].push_back(varOption); } break; } case SettingOptionsTypeStatic: { obj["options"] = CVariant(CVariant::VariantTypeArray); const StringSettingOptions& options = setting->GetOptions(); for (StringSettingOptions::const_iterator itOption = options.begin(); itOption != options.end(); ++itOption) { CVariant varOption(CVariant::VariantTypeObject); varOption["label"] = itOption->first; varOption["value"] = itOption->second; obj["options"].push_back(varOption); } break; } case SettingOptionsTypeDynamic: { obj["options"] = CVariant(CVariant::VariantTypeArray); StringSettingOptions options = std::const_pointer_cast<CSettingString>(setting)->UpdateDynamicOptions(); for (StringSettingOptions::const_iterator itOption = options.begin(); itOption != options.end(); ++itOption) { CVariant varOption(CVariant::VariantTypeObject); varOption["label"] = itOption->first; varOption["value"] = itOption->second; obj["options"].push_back(varOption); } break; } case SettingOptionsTypeNone: default: break; } std::shared_ptr<const ISettingControl> control = setting->GetControl(); if (control->GetFormat() == "path") { if (!SerializeSettingPath(std::static_pointer_cast<const CSettingPath>(setting), obj)) return false; } if (control->GetFormat() == "addon") { if (!SerializeSettingAddon(std::static_pointer_cast<const CSettingAddon>(setting), obj)) return false; } if (control->GetFormat() == "date") { if (!SerializeSettingDate(std::static_pointer_cast<const CSettingDate>(setting), obj)) return false; } if (control->GetFormat() == "time") { if (!SerializeSettingTime(std::static_pointer_cast<const CSettingTime>(setting), obj)) return false; } return true; }
bool CSettingsOperations::SerializeSettingInt(std::shared_ptr<const CSettingInt> setting, CVariant &obj) { if (setting == NULL) return false; obj["value"] = setting->GetValue(); obj["default"] = setting->GetDefault(); switch (setting->GetOptionsType()) { case SettingOptionsTypeStaticTranslatable: { obj["options"] = CVariant(CVariant::VariantTypeArray); const TranslatableIntegerSettingOptions& options = setting->GetTranslatableOptions(); for (TranslatableIntegerSettingOptions::const_iterator itOption = options.begin(); itOption != options.end(); ++itOption) { CVariant varOption(CVariant::VariantTypeObject); varOption["label"] = g_localizeStrings.Get(itOption->first); varOption["value"] = itOption->second; obj["options"].push_back(varOption); } break; } case SettingOptionsTypeStatic: { obj["options"] = CVariant(CVariant::VariantTypeArray); const IntegerSettingOptions& options = setting->GetOptions(); for (IntegerSettingOptions::const_iterator itOption = options.begin(); itOption != options.end(); ++itOption) { CVariant varOption(CVariant::VariantTypeObject); varOption["label"] = itOption->first; varOption["value"] = itOption->second; obj["options"].push_back(varOption); } break; } case SettingOptionsTypeDynamic: { obj["options"] = CVariant(CVariant::VariantTypeArray); IntegerSettingOptions options = std::const_pointer_cast<CSettingInt>(setting)->UpdateDynamicOptions(); for (IntegerSettingOptions::const_iterator itOption = options.begin(); itOption != options.end(); ++itOption) { CVariant varOption(CVariant::VariantTypeObject); varOption["label"] = itOption->first; varOption["value"] = itOption->second; obj["options"].push_back(varOption); } break; } case SettingOptionsTypeNone: default: obj["minimum"] = setting->GetMinimum(); obj["step"] = setting->GetStep(); obj["maximum"] = setting->GetMaximum(); break; } return true; }