From f82086e6d3b1de254afd7dc90163cfb28a1664fd Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Sun, 10 Dec 2017 00:45:49 -0500 Subject: [PATCH] first pass at adding infra for registerDefaults --- atom/browser/api/atom_api_system_preferences.h | 1 + .../api/atom_api_system_preferences_mac.mm | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/atom/browser/api/atom_api_system_preferences.h b/atom/browser/api/atom_api_system_preferences.h index ea5daed94a..658f6eebb4 100644 --- a/atom/browser/api/atom_api_system_preferences.h +++ b/atom/browser/api/atom_api_system_preferences.h @@ -73,6 +73,7 @@ class SystemPreferences : public mate::EventEmitter void UnsubscribeLocalNotification(int request_id); v8::Local GetUserDefault(const std::string& name, const std::string& type); + void registerDefaults(const base::DictionaryValue& defaults); void SetUserDefault(const std::string& name, const std::string& type, mate::Arguments* args); diff --git a/atom/browser/api/atom_api_system_preferences_mac.mm b/atom/browser/api/atom_api_system_preferences_mac.mm index 58e9b848e2..1317b3026e 100644 --- a/atom/browser/api/atom_api_system_preferences_mac.mm +++ b/atom/browser/api/atom_api_system_preferences_mac.mm @@ -144,6 +144,24 @@ v8::Local SystemPreferences::GetUserDefault( } } +void SystemPreferences::RegisterDefaults(const base::DictionaryValue& defaults) { + NSString *userDefaultsValuesPath; + NSDictionary *userDefaultsValuesDict; + NSDictionary *initialValuesDict; + NSArray *resettableUserDefaultsKeys; + + userDefaultsValuesPath=[[NSBundle mainBundle] pathForResource:@"UserDefaults" + ofType:@"plist"]; + userDefaultsValuesDict=[NSDictionary dictionaryWithContentsOfFile:userDefaultsValuesPath]; + + [[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsValuesDict]; + + resettableUserDefaultsKeys=[NSArray arrayWithObjects:@"Value1",@"Value2",@"Value3",nil]; + initialValuesDict=[userDefaultsValuesDict dictionaryWithValuesForKeys:resettableUserDefaultsKeys]; + + [[NSUserDefaultsController sharedUserDefaultsController] setInitialValues:initialValuesDict]; +} + void SystemPreferences::SetUserDefault(const std::string& name, const std::string& type, mate::Arguments* args) {