Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
"type": "Ruby",
"request": "launch",
"program": "${workspaceRoot}/Scripts/update_feed.rb"
},
null
}
]
}
7 changes: 7 additions & 0 deletions Application/AppController.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
@class PlaylistView;
@class PlaylistLoader;
@class PreferencesController;
@class MiniPlayerPlusWindowController;

@interface AppController : NSObject {
IBOutlet NSObjectController *currentEntryController;
Expand All @@ -19,6 +20,8 @@

IBOutlet NSWindow *mainWindow;
IBOutlet NSWindow *miniWindow;
IBOutlet NSWindow *miniPlusWindow;
IBOutlet MiniPlayerPlusWindowController *miniPlayerPlusWindowController;
IBOutlet NSSplitView *mainView;

IBOutlet NSSegmentedControl *playbackButtons;
Expand Down Expand Up @@ -56,6 +59,7 @@
NSMutableSet *expandedNodes;

BOOL miniMode;
BOOL miniPlusMode;
}

@property(strong) IBOutlet NSButton *infoButton;
Expand Down Expand Up @@ -98,6 +102,7 @@
- (void)nodeCollapsed:(NSNotification *)notification;

- (IBAction)toggleMiniMode:(id)sender;
- (IBAction)toggleMiniPlusMode:(id)sender;
- (IBAction)toggleToolbarStyle:(id)sender;

- (BOOL)pathSuggesterEmpty;
Expand All @@ -112,8 +117,10 @@

@property NSWindow *mainWindow;
@property NSWindow *miniWindow;
@property NSWindow *miniPlusWindow;

@property BOOL miniMode;
@property BOOL miniPlusMode;

@property(nonatomic) BOOL floatingMiniWindow;

Expand Down
46 changes: 41 additions & 5 deletions Application/AppController.m
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ @implementation AppController {

@synthesize mainWindow;
@synthesize miniWindow;
@synthesize miniPlusWindow;

+ (void)initialize {
// Register transformers
Expand All @@ -63,7 +64,7 @@ + (void)initialize {
NSValueTransformer *totalTimeTransformer = [TotalTimeTransformer new];
[NSValueTransformer setValueTransformer:totalTimeTransformer
forName:@"TotalTimeTransformer"];

NSValueTransformer *numberHertzToStringTransformer = [NumberHertzToStringTransformer new];
[NSValueTransformer setValueTransformer:numberHertzToStringTransformer
forName:@"NumberHertzToStringTransformer"];
Expand Down Expand Up @@ -174,7 +175,7 @@ - (BOOL)application:(NSApplication *)sender delegateHandlesKey:(NSString *)key {
- (void)awakeFromNib {
[[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"sentryConsented": @(NO),
@"sentryAskedConsent": @(NO) }];

[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.sentryConsented" options:(NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew) context:kAppControllerContext];

[[totalTimeField cell] setBackgroundStyle:NSBackgroundStyleRaised];
Expand Down Expand Up @@ -279,7 +280,11 @@ - (void)awakeFromNib {
}

// Restore mini mode
[self setMiniMode:[[NSUserDefaults standardUserDefaults] boolForKey:@"miniMode"]];
if([[NSUserDefaults standardUserDefaults] boolForKey:@"miniPlusMode"]) {
[self setMiniPlusMode:YES];
} else {
[self setMiniMode:[[NSUserDefaults standardUserDefaults] boolForKey:@"miniMode"]];
}

[self setToolbarStyle:[[NSUserDefaults standardUserDefaults] boolForKey:@"toolbarStyleFull"]];

Expand Down Expand Up @@ -343,7 +348,7 @@ - (void)observeValueForKeyPath:(NSString *)keyPath
if(context != kAppControllerContext) {
return;
}

if([keyPath isEqualToString:@"values.sentryConsented"]) {
BOOL enabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"sentryConsented"];
if(enabled != consentLastEnabled) {
Expand Down Expand Up @@ -371,7 +376,7 @@ - (void)observeValueForKeyPath:(NSString *)keyPath
[fbcon performSelectorOnMainThread:@selector(showWindow:) withObject:nil waitUntilDone:YES];
if([fbcon waitForCompletion]) {
SentryFeedback *feedback = [[SentryFeedback alloc] initWithMessage:[fbcon comments] name:[fbcon name] email:[fbcon email] source:SentryFeedbackSourceCustom associatedEventId:event.eventId attachments:nil];

[SentrySDK captureFeedback:feedback];
}
}
Expand Down Expand Up @@ -949,13 +954,42 @@ - (IBAction)toggleMiniMode:(id)sender {
[self setMiniMode:(!miniMode)];
}

- (IBAction)toggleMiniPlusMode:(id)sender {
[self setMiniPlusMode:(!miniPlusMode)];
}

- (BOOL)miniPlusMode {
return miniPlusMode;
}

- (void)setMiniPlusMode:(BOOL)newMiniPlusMode {
miniPlusMode = newMiniPlusMode;
[[NSUserDefaults standardUserDefaults] setBool:miniPlusMode forKey:@"miniPlusMode"];

if(miniPlusMode) {
// Switching to Mini Plus mode: clear regular mini mode and show mini plus window.
miniMode = NO;
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"miniMode"];
[mainWindow close];
[miniWindow close];
[miniPlusWindow makeKeyAndOrderFront:self];
} else {
// Exiting Mini Plus mode: show main window.
[miniPlusWindow close];
[mainWindow makeKeyAndOrderFront:self];
}
}

- (BOOL)miniMode {
return miniMode;
}

- (void)setMiniMode:(BOOL)newMiniMode {
miniMode = newMiniMode;
miniPlusMode = NO;
[[NSUserDefaults standardUserDefaults] setBool:miniMode forKey:@"miniMode"];
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"miniPlusMode"];
[miniPlusWindow close];

NSWindow *windowToShow = miniMode ? miniWindow : mainWindow;
NSWindow *windowToHide = miniMode ? mainWindow : miniWindow;
Expand All @@ -977,10 +1011,12 @@ - (void)setToolbarStyle:(BOOL)full {
full ? NSWindowToolbarStyleExpanded : NSWindowToolbarStyleUnified;
mainWindow.toolbarStyle = style;
miniWindow.toolbarStyle = style;
miniPlusWindow.toolbarStyle = style;
} else {
NSWindowTitleVisibility titleVisibility = full ? NSWindowTitleVisible : NSWindowTitleHidden;
mainWindow.titleVisibility = titleVisibility;
miniWindow.titleVisibility = titleVisibility;
miniPlusWindow.titleVisibility = titleVisibility;
}

// Fix empty area after changing toolbar style in mini window as it has no content view
Expand Down
1 change: 1 addition & 0 deletions Application/PlaybackEventController.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

IBOutlet NSWindow *mainWindow;
IBOutlet NSWindow *miniWindow;
IBOutlet NSWindow *miniPlusWindow;
}

@end
8 changes: 7 additions & 1 deletion Application/PlaybackEventController.m
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,13 @@ - (void)userNotificationCenter:(NSUserNotificationCenter *)center
break;

case NSUserNotificationActivationTypeContentsClicked: {
NSWindow *window = [[NSUserDefaults standardUserDefaults] boolForKey:@"miniMode"] ? miniWindow : mainWindow;
NSWindow *window;
if([[NSUserDefaults standardUserDefaults] boolForKey:@"miniPlusMode"])
window = miniPlusWindow;
else if([[NSUserDefaults standardUserDefaults] boolForKey:@"miniMode"])
window = miniWindow;
else
window = mainWindow;

[NSApp activateIgnoringOtherApps:YES];
[window makeKeyAndOrderFront:self];
Expand Down
Loading