Skip to content

Commit

Permalink
add preference to include machine names in top-level menu labels
Browse files Browse the repository at this point in the history
  • Loading branch information
chriswayoub committed Nov 2, 2014
1 parent 55da9ed commit b9507e3
Show file tree
Hide file tree
Showing 6 changed files with 73 additions and 23 deletions.
7 changes: 6 additions & 1 deletion Vagrant Manager/AppDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(taskCompleted:) name:@"vagrant-manager.task-completed" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(themeChanged:) name:@"vagrant-manager.theme-changed" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showRunningVmCountPreferenceChanged:) name:@"vagrant-manager.show-running-vm-count-preference-changed" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(includeMachineNamesInMenuPreferenceChanged:) name:@"vagrant-manager.include-machine-names-in-menu-preference-changed" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showUpdateNotificationPreferenceChanged:) name:@"vagrant-manager.show-update-notification-preference-changed" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(bookmarksUpdated:) name:@"vagrant-manager.bookmarks-updated" object:nil];

Expand Down Expand Up @@ -76,8 +77,12 @@ - (void)showRunningVmCountPreferenceChanged:(NSNotification*)notification {
[self updateRunningVmCount];
}

- (void)includeMachineNamesInMenuPreferenceChanged:(NSNotification*)notification {
[_nativeMenu rebuildMenu];
}

- (void)showUpdateNotificationPreferenceChanged:(NSNotification*)notification {
[[NSNotificationCenter defaultCenter] postNotificationName:@"vagrant-manager.notification-preference-changed" object:nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"vagrant-manager.notification-preference-changed" object:nil];
}

#pragma mark - Vagrant manager control
Expand Down
2 changes: 2 additions & 0 deletions Vagrant Manager/NativeMenu.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,6 @@

@property (weak) id<MenuDelegate> delegate;

- (void)rebuildMenu;

@end
12 changes: 11 additions & 1 deletion Vagrant Manager/NativeMenuItem.m
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,17 @@ - (void)refresh {
if(bookmark) {
self.menuItem.title = [NSString stringWithFormat:@"[B] %@", bookmark.displayName];
} else {
self.menuItem.title = self.instance.displayName;
NSString *title = self.instance.displayName;

if(self.instance.machines.count > 0 && [[NSUserDefaults standardUserDefaults] boolForKey:@"includeMachineNamesInMenu"]) {
NSMutableArray *machineNames = [[NSMutableArray alloc] init];
for(VagrantMachine *machine in self.instance.machines) {
[machineNames addObject:machine.name];
}
title = [title stringByAppendingString:[NSString stringWithFormat:@" (%@)", [machineNames componentsJoinedByString:@", "]]];
}

self.menuItem.title = title;
}

if(!_machineSeparator) {
Expand Down
2 changes: 2 additions & 0 deletions Vagrant Manager/PreferencesWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

@property (weak) IBOutlet NSButton *autoCloseCheckBox;
@property (weak) IBOutlet NSButton *dontShowUpdateCheckBox;
@property (weak) IBOutlet NSButton *includeMachineNamesCheckBox;
@property (weak) IBOutlet NSButton *dontShowRunningVmCountCheckBox;
@property (weak) IBOutlet NSPopUpButton *terminalPreferencePopUpButton;
@property (weak) IBOutlet NSPopUpButton *statusBarIconThemePopUpButton;
Expand All @@ -24,6 +25,7 @@

- (IBAction)autoCloseCheckBoxClicked:(id)sender;
- (IBAction)dontShowUpdateCheckBoxClicked:(id)sender;
- (IBAction)includeMachineNamesCheckBoxClicked:(id)sender;
- (IBAction)dontShowRunningVmCountCheckBoxClicked:(id)sender;
- (IBAction)terminalPreferencePopUpButtonClicked:(id)sender;
- (IBAction)statusBarIconThemePopUpButtonClicked:(id)sender;
Expand Down
9 changes: 9 additions & 0 deletions Vagrant Manager/PreferencesWindow.m
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ - (void)windowDidLoad {
NSString *terminalPreference = [[NSUserDefaults standardUserDefaults] stringForKey:@"terminalPreference"];
BOOL autoCloseTaskWindows = [[NSUserDefaults standardUserDefaults] boolForKey:@"autoCloseTaskWindows"];
BOOL dontShowUpdateNotification = [[NSUserDefaults standardUserDefaults] boolForKey:@"dontShowUpdateNotification"];
BOOL includeMachineNames = [[NSUserDefaults standardUserDefaults] boolForKey:@"includeMachineNamesInMenu"];
BOOL dontShowRunningVmCount = [[NSUserDefaults standardUserDefaults] boolForKey:@"dontShowRunningVmCount"];
BOOL refreshEvery = [[NSUserDefaults standardUserDefaults] boolForKey:@"refreshEvery"];
NSInteger refreshEveryInterval = [[NSUserDefaults standardUserDefaults] integerForKey:@"refreshEveryInterval"];
Expand Down Expand Up @@ -57,6 +58,7 @@ - (void)windowDidLoad {

[self.autoCloseCheckBox setState:autoCloseTaskWindows ? NSOnState : NSOffState];
[self.dontShowUpdateCheckBox setState:dontShowUpdateNotification ? NSOnState : NSOffState];
[self.includeMachineNamesCheckBox setState:includeMachineNames ? NSOnState : NSOffState];
[self.dontShowRunningVmCountCheckBox setState:dontShowRunningVmCount ? NSOnState : NSOffState];
[self.refreshEveryCheckBox setState:refreshEvery ? NSOnState : NSOffState];
[self.intervalMenu selectItemWithTag:refreshEveryInterval];
Expand All @@ -77,6 +79,13 @@ - (IBAction)dontShowUpdateCheckBoxClicked:(id)sender {
[[NSNotificationCenter defaultCenter] postNotificationName:@"vagrant-manager.show-update-notification-preference-changed" object:nil];
}

- (IBAction)includeMachineNamesCheckBoxClicked:(id)sender {
[[NSUserDefaults standardUserDefaults] setBool:(self.includeMachineNamesCheckBox.state == NSOnState) forKey:@"includeMachineNamesInMenu"];
[[NSUserDefaults standardUserDefaults] synchronize];

[[NSNotificationCenter defaultCenter] postNotificationName:@"vagrant-manager.include-machine-names-in-menu-preference-changed" object:nil];
}

- (IBAction)dontShowRunningVmCountCheckBoxClicked:(id)sender {
[[NSUserDefaults standardUserDefaults] setBool:(self.dontShowRunningVmCountCheckBox.state == NSOnState) forKey:@"dontShowRunningVmCount"];
[[NSUserDefaults standardUserDefaults] synchronize];
Expand Down

0 comments on commit b9507e3

Please sign in to comment.