Added interface for shuffle albums mode.

CQTexperiment
vspader 2009-03-09 21:04:46 -07:00
parent 30f6ac7e70
commit 7819210b96
8 changed files with 278 additions and 74 deletions

View File

@ -28,6 +28,7 @@
17342ABF0D5FD36400E8D854 /* OpenURLPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = 17342ABD0D5FD36400E8D854 /* OpenURLPanel.xib */; };
173855FF0E0CC81F00488CD4 /* FileTreeOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 173855FE0E0CC81F00488CD4 /* FileTreeOutlineView.m */; };
173A43A10F3FD26500676A7B /* ToolTipWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 173A43A00F3FD26500676A7B /* ToolTipWindow.m */; };
1745CBA50F661DBB00E513F7 /* shuffle_albums.png in Resources */ = {isa = PBXBuildFile; fileRef = 1745CBA40F661DBB00E513F7 /* shuffle_albums.png */; };
1752C36C0F59E00100F85F28 /* PlaybackButtons.m in Sources */ = {isa = PBXBuildFile; fileRef = 1752C36B0F59E00100F85F28 /* PlaybackButtons.m */; };
1755E1F90BA0D2B600CA3560 /* PlaylistLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 1755E1F70BA0D2B600CA3560 /* PlaylistLoader.m */; };
1766C6930B911DF1004A7AE4 /* AudioScrobbler.m in Sources */ = {isa = PBXBuildFile; fileRef = 1766C68F0B911DF1004A7AE4 /* AudioScrobbler.m */; };
@ -559,6 +560,7 @@
173855FE0E0CC81F00488CD4 /* FileTreeOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FileTreeOutlineView.m; path = FileTree/FileTreeOutlineView.m; sourceTree = "<group>"; };
173A439F0F3FD26500676A7B /* ToolTipWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ToolTipWindow.h; path = ToolTip/ToolTipWindow.h; sourceTree = "<group>"; };
173A43A00F3FD26500676A7B /* ToolTipWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ToolTipWindow.m; path = ToolTip/ToolTipWindow.m; sourceTree = "<group>"; };
1745CBA40F661DBB00E513F7 /* shuffle_albums.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = shuffle_albums.png; path = Images/shuffle_albums.png; sourceTree = "<group>"; };
1752C36A0F59E00100F85F28 /* PlaybackButtons.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlaybackButtons.h; path = Window/PlaybackButtons.h; sourceTree = "<group>"; };
1752C36B0F59E00100F85F28 /* PlaybackButtons.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PlaybackButtons.m; path = Window/PlaybackButtons.m; sourceTree = "<group>"; };
1755E1F60BA0D2B600CA3560 /* PlaylistLoader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PlaylistLoader.h; sourceTree = "<group>"; };
@ -956,6 +958,7 @@
1766C88C0B912FB4004A7AE4 /* info_off.png */,
1766C88D0B912FB4004A7AE4 /* info_on.png */,
1766C8900B912FB4004A7AE4 /* shuffle_off.png */,
1745CBA40F661DBB00E513F7 /* shuffle_albums.png */,
1766C8910B912FB4004A7AE4 /* shuffle_on.png */,
177EC0350B8BC2FF0000BC8C /* next.png */,
177EC0370B8BC2FF0000BC8C /* pause.png */,
@ -1840,6 +1843,7 @@
17D1B0D20F6320EA00694C57 /* InfoInspector.xib in Resources */,
17D1B1DC0F6330D400694C57 /* Feedback.xib in Resources */,
1778D3B00F645A190037E7A0 /* missingArt.png in Resources */,
1745CBA50F661DBB00E513F7 /* shuffle_albums.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View File

@ -468,7 +468,7 @@
<reference key="NSSuperview" ref="585628045"/>
<bool key="NSEnabled">YES</bool>
<object class="NSImageCell" key="NSCell" id="23346814">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags">604110336</int>
<int key="NSCellFlags2">33685504</int>
<reference key="NSSupport" ref="26"/>
<int key="NSAlign">0</int>
@ -1260,9 +1260,9 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilderKit</string>
<string>com.apple.InterfaceBuilderKit</string>
<string>{{395, 420}, {351, 498}}</string>
<string>{{548, 275}, {351, 498}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{395, 420}, {351, 498}}</string>
<string>{{548, 275}, {351, 498}}</string>
<reference ref="6"/>
<boolean value="YES" id="5"/>
<reference ref="5"/>

View File

@ -8,10 +8,10 @@
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="57"/>
<integer value="1063"/>
<integer value="2439"/>
<integer value="2234"/>
<integer value="21"/>
<integer value="1063"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -2559,7 +2559,7 @@ OQA</bytes>
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMenuItem" id="511061619">
<reference key="NSMenu" ref="649813002"/>
<string key="NSTitle">Repeat All</string>
<string key="NSTitle">All</string>
<string key="NSKeyEquiv">r</string>
<int key="NSKeyEquivModMask">1572864</int>
<int key="NSMnemonicLoc">2147483647</int>
@ -2568,7 +2568,7 @@ OQA</bytes>
</object>
<object class="NSMenuItem" id="2155">
<reference key="NSMenu" ref="649813002"/>
<string key="NSTitle">Repeat Album</string>
<string key="NSTitle">Album</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
@ -2577,7 +2577,7 @@ OQA</bytes>
</object>
<object class="NSMenuItem" id="1028939869">
<reference key="NSMenu" ref="649813002"/>
<string key="NSTitle">Repeat One</string>
<string key="NSTitle">One</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
@ -2597,7 +2597,7 @@ OQA</bytes>
</object>
<object class="NSMenuItem" id="664230412">
<reference key="NSMenu" ref="649813002"/>
<string key="NSTitle">Repeat None</string>
<string key="NSTitle">None</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
@ -2607,14 +2607,45 @@ OQA</bytes>
</object>
</object>
</object>
<object class="NSMenuItem" id="711304399">
<object class="NSMenuItem" id="2708">
<reference key="NSMenu" ref="905547314"/>
<string key="NSTitle">Shuffle</string>
<string key="NSKeyEquiv">s</string>
<int key="NSKeyEquivModMask">1572864</int>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="80764106"/>
<reference key="NSMixedImage" ref="510491962"/>
<string key="NSAction">submenuAction:</string>
<object class="NSMenu" key="NSSubmenu" id="822542407">
<string key="NSTitle">Shuffle</string>
<object class="NSMutableArray" key="NSMenuItems">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMenuItem" id="2328">
<reference key="NSMenu" ref="822542407"/>
<string key="NSTitle">All</string>
<string key="NSKeyEquiv">s</string>
<int key="NSKeyEquivModMask">1572864</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="80764106"/>
<reference key="NSMixedImage" ref="510491962"/>
</object>
<object class="NSMenuItem" id="393127194">
<reference key="NSMenu" ref="822542407"/>
<string key="NSTitle">Albums</string>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="80764106"/>
<reference key="NSMixedImage" ref="510491962"/>
</object>
<object class="NSMenuItem" id="474556434">
<reference key="NSMenu" ref="822542407"/>
<string key="NSTitle">Off</string>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="80764106"/>
<reference key="NSMixedImage" ref="510491962"/>
</object>
</object>
</object>
</object>
<object class="NSMenuItem" id="109158246">
<reference key="NSMenu" ref="905547314"/>
@ -5724,35 +5755,6 @@ OQA</bytes>
</object>
<int key="connectionID">2412</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: shuffle</string>
<reference key="source" ref="711304399"/>
<reference key="destination" ref="710316598"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="711304399"/>
<reference key="NSDestination" ref="710316598"/>
<string key="NSLabel">value: shuffle</string>
<string key="NSBinding">value</string>
<string key="NSKeyPath">shuffle</string>
<object class="NSDictionary" key="NSOptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>NSAllowsEditingMultipleValuesSelection</string>
<string>NSConditionallySetsEnabled</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="6"/>
<reference ref="6"/>
</object>
</object>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">2415</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">toggleSideView:</string>
@ -5825,6 +5827,66 @@ OQA</bytes>
</object>
<int key="connectionID">2437</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: shuffle</string>
<reference key="source" ref="2328"/>
<reference key="destination" ref="710316598"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="2328"/>
<reference key="NSDestination" ref="710316598"/>
<string key="NSLabel">value: shuffle</string>
<string key="NSBinding">value</string>
<string key="NSKeyPath">shuffle</string>
<object class="NSDictionary" key="NSOptions">
<string key="NS.key.0">NSValueTransformerName</string>
<string key="NS.object.0">ShuffleAllTransformer</string>
</object>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">2445</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: shuffle</string>
<reference key="source" ref="393127194"/>
<reference key="destination" ref="710316598"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="393127194"/>
<reference key="NSDestination" ref="710316598"/>
<string key="NSLabel">value: shuffle</string>
<string key="NSBinding">value</string>
<string key="NSKeyPath">shuffle</string>
<object class="NSDictionary" key="NSOptions">
<string key="NS.key.0">NSValueTransformerName</string>
<string key="NS.object.0">ShuffleAlbumsTransformer</string>
</object>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">2448</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: shuffle</string>
<reference key="source" ref="474556434"/>
<reference key="destination" ref="710316598"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="474556434"/>
<reference key="NSDestination" ref="710316598"/>
<string key="NSLabel">value: shuffle</string>
<string key="NSBinding">value</string>
<string key="NSKeyPath">shuffle</string>
<object class="NSDictionary" key="NSOptions">
<string key="NS.key.0">NSValueTransformerName</string>
<string key="NS.object.0">ShuffleOffTransformer</string>
</object>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">2451</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@ -6312,7 +6374,6 @@ OQA</bytes>
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="109158246"/>
<reference ref="55030879"/>
<reference ref="711304399"/>
<reference ref="461973770"/>
<reference ref="112724873"/>
<reference ref="1052715157"/>
@ -6327,6 +6388,7 @@ OQA</bytes>
<reference ref="344629379"/>
<reference ref="320432454"/>
<reference ref="1071718027"/>
<reference ref="2708"/>
</object>
<reference key="parent" ref="795702409"/>
</object>
@ -6340,11 +6402,6 @@ OQA</bytes>
<reference key="object" ref="55030879"/>
<reference key="parent" ref="905547314"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1120</int>
<reference key="object" ref="711304399"/>
<reference key="parent" ref="905547314"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1132</int>
<reference key="object" ref="461973770"/>
@ -7552,6 +7609,41 @@ OQA</bytes>
<reference key="object" ref="242543650"/>
<reference key="parent" ref="293114310"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2438</int>
<reference key="object" ref="2708"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="822542407"/>
</object>
<reference key="parent" ref="905547314"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2439</int>
<reference key="object" ref="822542407"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="474556434"/>
<reference ref="393127194"/>
<reference ref="2328"/>
</object>
<reference key="parent" ref="2708"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2440</int>
<reference key="object" ref="474556434"/>
<reference key="parent" ref="822542407"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2442</int>
<reference key="object" ref="393127194"/>
<reference key="parent" ref="822542407"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2443</int>
<reference key="object" ref="2328"/>
<reference key="parent" ref="822542407"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@ -7582,8 +7674,6 @@ OQA</bytes>
<string>111.ImportedFromIB2</string>
<string>1116.IBPluginDependency</string>
<string>1116.ImportedFromIB2</string>
<string>1120.IBPluginDependency</string>
<string>1120.ImportedFromIB2</string>
<string>1132.IBPluginDependency</string>
<string>1132.ImportedFromIB2</string>
<string>1135.IBPluginDependency</string>
@ -7942,6 +8032,12 @@ OQA</bytes>
<string>2431.IBPluginDependency</string>
<string>2431.ImportedFromIB2</string>
<string>2434.IBPluginDependency</string>
<string>2438.IBPluginDependency</string>
<string>2439.IBEditorWindowLastContentRect</string>
<string>2439.IBPluginDependency</string>
<string>2440.IBPluginDependency</string>
<string>2442.IBPluginDependency</string>
<string>2443.IBPluginDependency</string>
<string>29.IBEditorWindowLastContentRect</string>
<string>29.IBPluginDependency</string>
<string>29.ImportedFromIB2</string>
@ -8077,8 +8173,6 @@ OQA</bytes>
<reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
<string>{{853, 964}, {64, 6}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
@ -8271,7 +8365,7 @@ OQA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{744, 442}, {186, 93}}</string>
<string>{{823, 599}, {136, 93}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{675, 786}, {186, 93}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -8421,7 +8515,13 @@ OQA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{596, 892}, {462, 20}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{823, 609}, {142, 63}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{260, 892}, {462, 20}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
<string>{{112, 736}, {462, 20}}</string>
@ -8433,7 +8533,7 @@ OQA</bytes>
<reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
<string>{{771, 554}, {222, 293}}</string>
<string>{{791, 599}, {222, 293}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
<string>{{307, 443}, {222, 293}}</string>
@ -8507,7 +8607,7 @@ OQA</bytes>
<reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
<string>{{840, 554}, {299, 293}}</string>
<string>{{524, 599}, {299, 293}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
<string>{{376, 543}, {299, 293}}</string>
@ -8535,7 +8635,7 @@ OQA</bytes>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">2437</int>
<int key="maxID">2451</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">

BIN
Images/shuffle_albums.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

View File

@ -23,6 +23,13 @@ typedef enum {
RepeatAll
} RepeatMode;
typedef enum {
ShuffleOff = 0,
ShuffleAlbums,
ShuffleAll
} ShuffleMode;
typedef enum {
URLOriginInternal = 0,
URLOriginExternal,
@ -52,8 +59,8 @@ typedef enum {
//PUBLIC METHODS
- (void)setShuffle:(BOOL)s;
- (BOOL)shuffle;
- (void)setShuffle:(ShuffleMode)s;
- (ShuffleMode)shuffle;
- (void)setRepeat:(RepeatMode)r;
- (RepeatMode)repeat;
- (NSArray *)filterPlaylistOnAlbum:(NSString *)album;

View File

@ -47,10 +47,25 @@
[NSValueTransformer setValueTransformer:repeatModeImageTransformer
forName:@"RepeatModeImageTransformer"];
NSValueTransformer *shuffleOffTransformer = [[[ShuffleModeTransformer alloc] initWithMode:ShuffleOff] autorelease];
[NSValueTransformer setValueTransformer:shuffleOffTransformer
forName:@"ShuffleOffTransformer"];
NSValueTransformer *shuffleAlbumsTransformer = [[[ShuffleModeTransformer alloc] initWithMode:ShuffleAlbums] autorelease];
[NSValueTransformer setValueTransformer:shuffleAlbumsTransformer
forName:@"ShuffleAlbumsTransformer"];
NSValueTransformer *shuffleAllTransformer = [[[ShuffleModeTransformer alloc] initWithMode:ShuffleAll] autorelease];
[NSValueTransformer setValueTransformer:shuffleAllTransformer
forName:@"ShuffleAllTransformer"];
NSValueTransformer *shuffleImageTransformer = [[[ShuffleImageTransformer alloc] init] autorelease];
[NSValueTransformer setValueTransformer:shuffleImageTransformer
forName:@"ShuffleImageTransformer"];
NSValueTransformer *statusImageTransformer = [[[StatusImageTransformer alloc] init] autorelease];
[NSValueTransformer setValueTransformer:statusImageTransformer
forName:@"StatusImageTransformer"];
@ -64,8 +79,8 @@
- (void)initDefaults
{
NSDictionary *defaultsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInteger:RepeatNone], @"repeatMode",
[NSNumber numberWithBool:NO], @"shuffle",
[NSNumber numberWithInteger:RepeatNone], @"repeat",
[NSNumber numberWithInteger:ShuffleOff], @"shuffle",
nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDictionary];
@ -360,7 +375,17 @@
- (IBAction)toggleShuffle:(id)sender
{
[self setShuffle: ![self shuffle]];
ShuffleMode shuffle = [self shuffle];
if (shuffle == ShuffleOff) {
[self setShuffle: ShuffleAlbums];
}
else if (shuffle == ShuffleAlbums) {
[self setShuffle: ShuffleAll];
}
else if (shuffle == ShuffleAll) {
[self setShuffle: ShuffleOff];
}
}
- (IBAction)toggleRepeat:(id)sender
@ -626,26 +651,26 @@
currentEntry = pe;
}
- (void)setShuffle:(BOOL)s
- (void)setShuffle:(ShuffleMode)s
{
[[NSUserDefaults standardUserDefaults] setBool:s forKey:@"shuffle"];
if (s == YES)
[[NSUserDefaults standardUserDefaults] setInteger:s forKey:@"shuffle"];
if (s != ShuffleOff)
[self resetShuffleList];
[playbackController playlistDidChange:self];
}
- (BOOL)shuffle
- (ShuffleMode)shuffle
{
return [[NSUserDefaults standardUserDefaults] boolForKey:@"shuffle"];
return [[NSUserDefaults standardUserDefaults] integerForKey:@"shuffle"];
}
- (void)setRepeat:(RepeatMode)r
{
[[NSUserDefaults standardUserDefaults] setInteger:r forKey:@"repeatMode"];
[[NSUserDefaults standardUserDefaults] setInteger:r forKey:@"repeat"];
[playbackController playlistDidChange:self];
}
- (RepeatMode)repeat
{
return [[NSUserDefaults standardUserDefaults] integerForKey:@"repeatMode"];
return [[NSUserDefaults standardUserDefaults] integerForKey:@"repeat"];
}
- (IBAction)clear:(id)sender

View File

@ -7,8 +7,19 @@
//
#import <Cocoa/Cocoa.h>
#import "PlaylistController.h"
@interface ShuffleImageTransformer : NSValueTransformer {}
@end
@interface ShuffleModeTransformer : NSValueTransformer {
ShuffleMode shuffleMode;
}
- (id)initWithMode:(ShuffleMode)s;
@end

View File

@ -7,8 +7,6 @@
//
#import "ShuffleTransformers.h"
@implementation ShuffleImageTransformer
+ (Class)transformedValueClass { return [NSImage class]; }
@ -16,14 +14,73 @@
// Convert from string to RepeatMode
- (id)transformedValue:(id)value {
NSLog(@"Transforming value: %@", value);
if (value == nil) return nil;
BOOL shuffleEnabled = [value boolValue];
ShuffleMode mode = [value integerValue];
if (shuffleEnabled == YES) {
if (mode == ShuffleOff) {
return [NSImage imageNamed:@"shuffle_off"];
}
else if (mode == ShuffleAlbums) {
return [NSImage imageNamed:@"shuffle_albums"];
}
else if (mode == ShuffleAll) {
return [NSImage imageNamed:@"shuffle_on"];
}
return [NSImage imageNamed:@"shuffle_off"];
return nil;
}
@end
@implementation ShuffleModeTransformer
+ (Class)transformedValueClass { return [NSNumber class]; }
+ (BOOL)allowsReverseTransformation { return YES; }
- (id)initWithMode:(ShuffleMode)s
{
self = [super init];
if (self)
{
shuffleMode = s;
}
return self;
}
// Convert from RepeatMode to BOOL
- (id)transformedValue:(id)value {
NSLog(@"Transforming value: %@", value);
if (value == nil) return nil;
ShuffleMode mode = [value integerValue];
if (shuffleMode == mode) {
return [NSNumber numberWithBool:YES];
}
return [NSNumber numberWithBool:NO];
}
- (id)reverseTransformedValue:(id)value {
if (value == nil) return nil;
BOOL enabled = [value boolValue];
if (enabled) {
return [NSNumber numberWithInt:shuffleMode];
}
else if(shuffleMode == ShuffleOff) {
return [NSNumber numberWithInt:ShuffleAll];
}
else {
return [NSNumber numberWithInt:ShuffleOff];
}
}
@end