playCount = "Play Count";
shuffleOn = "Shuffle On";
shuffleOff = "Shuffle Off";
+shufflableOn = "Current Song Skipped When Shuffling";
+shufflableOff = "Current Song Not Skipped When Shuffling";
repeatOff = "Repeat Off";
repeatPlaylist = "Repeat Playlist";
repeatOneTrack = "Repeat One Track";
- (void)toggleSongShufflable
{
- NS_DURING
- BOOL flag = ![[self currentRemote] currentSongShufflable];
- ITDebugLog(@"Toggling shufflability.");
- [[self currentRemote] setCurrentSongShufflable:flag];
- //Show song shufflability status window
- //[statusWindowController showSongShuffabilityWindow:flag];
- NS_HANDLER
- [self networkError:localException];
- NS_ENDHANDLER
+ if ([self songIsPlaying]) {
+ NS_DURING
+ BOOL flag = ![[self currentRemote] currentSongShufflable];
+ ITDebugLog(@"Toggling shufflability.");
+ [[self currentRemote] setCurrentSongShufflable:flag];
+ //Show song shufflability status window
+ [statusWindowController showSongShufflabilityWindow:flag];
+ NS_HANDLER
+ [self networkError:localException];
+ NS_ENDHANDLER
+ }
}
- (void)registerNowOK
- (void)showRatingWindowWithRating:(float)rating;
- (void)showShuffleWindow:(BOOL)shuffle;
- (void)showRepeatWindowWithMode:(StatusWindowRepeatMode)mode;
+- (void)showSongShufflabilityWindow:(BOOL)shufflable;
- (void)showSetupQueryWindow;
- (void)showRegistrationQueryWindow;
- (void)showReconnectQueryWindow;
[_window appear:self];
}
+- (void)showSongShufflabilityWindow:(BOOL)shufflable
+{
+ [_window setImage:[NSImage imageNamed:@"Shuffle"]];
+ [_window setSizing:(ITTransientStatusWindowSizing)[df integerForKey:@"statusWindowSizing"]];
+ [_window buildTextWindowWithString:( !shufflable ? NSLocalizedString(@"shufflableOn", @"Current Song Skipped When Shuffling") : NSLocalizedString(@"shufflableOff", @"Current Song Not Skipped When Shuffling"))];
+ [_window appear:self];
+}
+
- (void)showSetupQueryWindow
{
NSString *message = NSLocalizedString(@"autolaunch_msg", @"Would you like MenuTunes to launch\nautomatically at startup?");
ITDebugLog(@"Not a valid track to set status to, returning.");
return NO;
}
- ITSendAEWithString([NSString stringWithFormat:@"data:long(%lu), '----':obj { form:'prop', want:type('prop'), seld:type('pSfa'), from:obj { form:'indx', want:type('cTrk'), seld:long(%lu), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:'null'() } } }", !shufflable, [self currentSongIndex]], 'core', 'setd', &savedPSN);
+ ITSendAEWithString([NSString stringWithFormat:@"data:long(%lu), '----':obj { form:'prop', want:type('prop'), seld:type('pSfa'), from:obj { form:'indx', want:type('cTrk'), seld:long(%lu), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:'null'() } } }", shufflable, [self currentSongIndex]], 'core', 'setd', &savedPSN);
ITDebugLog(@"Setting current song shufflable status to %i done.", shufflable);
return YES;
}