preferences: hide some advanced settings

Refs #66840

Change-Id: Ibcbe5c39d83372972d4df0e151ede6229fe5f590
diff --git a/PreferencesViewController.mm b/PreferencesViewController.mm
index f2bdde3..4feaa01 100644
--- a/PreferencesViewController.mm
+++ b/PreferencesViewController.mm
@@ -40,9 +40,12 @@
 
 @interface PreferencesViewController ()
 
+@property NSButton* toggleAdvancedSettings;
+
 @end
 
 @implementation PreferencesViewController
+@synthesize toggleAdvancedSettings;
 
 static NSString* const kProfilePrefsIdentifier = @"ProfilesPrefsIdentifier";
 static NSString* const kGeneralPrefsIdentifier = @"GeneralPrefsIdentifier";
@@ -50,6 +53,7 @@
 static NSString* const kAncragePrefsIdentifer = @"AncragePrefsIdentifer";
 static NSString* const kVideoPrefsIdentifer = @"VideoPrefsIdentifer";
 static NSString* const kDonePrefsIdentifer = @"DonePrefsIdentifer";
+static NSString* const kPowerSettingsIdentifer = @"PowerSettingsIdentifer";
 
 -(void)loadView
 {
@@ -172,12 +176,16 @@
         [item setAction:@selector(displayAudio:)];
     }
 
-//    if ([itemIdentifier isEqualToString: kAncragePrefsIdentifer]) {
-//        item = [[NSToolbarItem alloc] initWithItemIdentifier: kAncragePrefsIdentifer];
-//        [item setImage: [NSImage imageNamed: @"ancrage"]];
-//        [item setLabel: @"Ancrage"];
-//        [item setAction:@selector(displayAncrage:)];
-//    }
+    if ([itemIdentifier isEqualToString: kPowerSettingsIdentifer]) {
+        item = [[NSToolbarItem alloc] initWithItemIdentifier: kPowerSettingsIdentifer];
+        toggleAdvancedSettings = [[NSButton alloc] initWithFrame:NSMakeRect(0,0,20,20)];
+        [toggleAdvancedSettings setButtonType:NSSwitchButton];
+        [toggleAdvancedSettings setTitle:@""];
+        [toggleAdvancedSettings setState:[[NSUserDefaults standardUserDefaults] boolForKey:@"show_advanced"]];
+        [item setLabel:@"Show Advanced"];
+        [item setView:toggleAdvancedSettings];
+        [item setAction:@selector(togglePowerSettings:)];
+    }
 
     if ([itemIdentifier isEqualToString: kDonePrefsIdentifer]) {
         item = [[NSToolbarItem alloc] initWithItemIdentifier: kDonePrefsIdentifer];
@@ -194,33 +202,45 @@
     }
 
     return item;
-
 }
 
 -(NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar*)toolbar
 {
-    return [NSArray arrayWithObjects:
-            NSToolbarSpaceItemIdentifier,
-            NSToolbarFlexibleSpaceItemIdentifier,
-            kProfilePrefsIdentifier,
-            kGeneralPrefsIdentifier,
-            kAudioPrefsIdentifer,
-            kVideoPrefsIdentifer,
- //           kAncragePrefsIdentifer,
-            NSToolbarFlexibleSpaceItemIdentifier,
-            kDonePrefsIdentifer,
-            nil];
+
+    NSMutableArray* items = [NSMutableArray arrayWithObjects:
+                      kPowerSettingsIdentifer,
+                      NSToolbarFlexibleSpaceItemIdentifier,
+                      kGeneralPrefsIdentifier,
+                      kAudioPrefsIdentifer,
+                      kVideoPrefsIdentifer,
+                      //           kAncragePrefsIdentifer,
+                      NSToolbarFlexibleSpaceItemIdentifier,
+                      kDonePrefsIdentifer,
+                      nil];
+
+    if([[NSUserDefaults standardUserDefaults] boolForKey:@"show_advanced"]) {
+        [items insertObject:NSToolbarSpaceItemIdentifier atIndex:5];
+        [items insertObject:kProfilePrefsIdentifier atIndex:2];
+    } else
+        [items insertObject:NSToolbarSpaceItemIdentifier atIndex:5];
+
+    return items;
 }
 
 -(NSArray *)toolbarSelectableItemIdentifiers:(NSToolbar *)toolbar
 {
-    return [NSArray arrayWithObjects:
-            kProfilePrefsIdentifier,
-            kGeneralPrefsIdentifier,
-            kAudioPrefsIdentifer,
- //           kAncragePrefsIdentifer,
-            kVideoPrefsIdentifer,
-            nil];
+    NSMutableArray* items = [NSMutableArray arrayWithObjects:
+                             kPowerSettingsIdentifer,
+                             kGeneralPrefsIdentifier,
+                             kAudioPrefsIdentifer,
+                             kVideoPrefsIdentifer,
+                             nil];
+
+    if([[NSUserDefaults standardUserDefaults] boolForKey:@"show_advanced"])
+        [items insertObject:kProfilePrefsIdentifier atIndex:1];
+
+
+    return items;
 }
 
 -(NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar*)toolbar