refactor: SystemPreferences::SetUserDefault (#23412)
This commit is contained in:
parent
3c132dc445
commit
f9c04449f4
1 changed files with 27 additions and 45 deletions
|
@ -311,86 +311,68 @@ void SystemPreferences::RegisterDefaults(gin_helper::Arguments* args) {
|
||||||
void SystemPreferences::SetUserDefault(const std::string& name,
|
void SystemPreferences::SetUserDefault(const std::string& name,
|
||||||
const std::string& type,
|
const std::string& type,
|
||||||
gin_helper::Arguments* args) {
|
gin_helper::Arguments* args) {
|
||||||
const auto throwConversionError = [&] {
|
|
||||||
args->ThrowError("Unable to convert value to: " + type);
|
|
||||||
};
|
|
||||||
|
|
||||||
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
|
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
|
||||||
NSString* key = base::SysUTF8ToNSString(name);
|
NSString* key = base::SysUTF8ToNSString(name);
|
||||||
if (type == "string") {
|
if (type == "string") {
|
||||||
std::string value;
|
std::string value;
|
||||||
if (!args->GetNext(&value)) {
|
if (args->GetNext(&value)) {
|
||||||
throwConversionError();
|
[defaults setObject:base::SysUTF8ToNSString(value) forKey:key];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[defaults setObject:base::SysUTF8ToNSString(value) forKey:key];
|
|
||||||
} else if (type == "boolean") {
|
} else if (type == "boolean") {
|
||||||
bool value;
|
bool value;
|
||||||
if (!args->GetNext(&value)) {
|
if (args->GetNext(&value)) {
|
||||||
throwConversionError();
|
[defaults setBool:value forKey:key];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[defaults setBool:value forKey:key];
|
|
||||||
} else if (type == "float") {
|
} else if (type == "float") {
|
||||||
float value;
|
float value;
|
||||||
if (!args->GetNext(&value)) {
|
if (args->GetNext(&value)) {
|
||||||
throwConversionError();
|
[defaults setFloat:value forKey:key];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[defaults setFloat:value forKey:key];
|
|
||||||
} else if (type == "integer") {
|
} else if (type == "integer") {
|
||||||
int value;
|
int value;
|
||||||
if (!args->GetNext(&value)) {
|
if (args->GetNext(&value)) {
|
||||||
throwConversionError();
|
[defaults setInteger:value forKey:key];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[defaults setInteger:value forKey:key];
|
|
||||||
} else if (type == "double") {
|
} else if (type == "double") {
|
||||||
double value;
|
double value;
|
||||||
if (!args->GetNext(&value)) {
|
if (args->GetNext(&value)) {
|
||||||
throwConversionError();
|
[defaults setDouble:value forKey:key];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[defaults setDouble:value forKey:key];
|
|
||||||
} else if (type == "url") {
|
} else if (type == "url") {
|
||||||
GURL value;
|
GURL value;
|
||||||
if (!args->GetNext(&value)) {
|
if (args->GetNext(&value)) {
|
||||||
throwConversionError();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NSURL* url = net::NSURLWithGURL(value)) {
|
if (NSURL* url = net::NSURLWithGURL(value)) {
|
||||||
[defaults setURL:url forKey:key];
|
[defaults setURL:url forKey:key];
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (type == "array") {
|
} else if (type == "array") {
|
||||||
base::ListValue value;
|
base::ListValue value;
|
||||||
if (!args->GetNext(&value)) {
|
if (args->GetNext(&value)) {
|
||||||
throwConversionError();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NSArray* array = ListValueToNSArray(value)) {
|
if (NSArray* array = ListValueToNSArray(value)) {
|
||||||
[defaults setObject:array forKey:key];
|
[defaults setObject:array forKey:key];
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (type == "dictionary") {
|
} else if (type == "dictionary") {
|
||||||
base::DictionaryValue value;
|
base::DictionaryValue value;
|
||||||
if (!args->GetNext(&value)) {
|
if (args->GetNext(&value)) {
|
||||||
throwConversionError();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NSDictionary* dict = DictionaryValueToNSDictionary(value)) {
|
if (NSDictionary* dict = DictionaryValueToNSDictionary(value)) {
|
||||||
[defaults setObject:dict forKey:key];
|
[defaults setObject:dict forKey:key];
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
args->ThrowError("Invalid type: " + type);
|
args->ThrowError("Invalid type: " + type);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
args->ThrowError("Unable to convert value to: " + type);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string SystemPreferences::GetAccentColor() {
|
std::string SystemPreferences::GetAccentColor() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue