diff --git a/macosx/Controller.h b/macosx/Controller.h index 87044b771..0a4e072fe 100644 --- a/macosx/Controller.h +++ b/macosx/Controller.h @@ -61,11 +61,6 @@ IBOutlet StatusBarView * fStatusBar; IBOutlet NSTextField * fTotalDLField, * fTotalULField, * fTotalTorrentsField; - IBOutlet NSMenuItem * fNameSortItem, * fStateSortItem, * fProgressSortItem, - * fTrackerSortItem, * fDateSortItem, * fOrderSortItem, - * fNameSortActionItem, * fStateSortActionItem, * fProgressSortActionItem, - * fTrackerSortActionItem, * fDateSortActionItem, * fOrderSortActionItem; - IBOutlet StatusBarView * fFilterBar; IBOutlet NSButton * fNoFilterButton, * fDownloadFilterButton, * fSeedFilterButton, * fPauseFilterButton; IBOutlet NSSearchField * fSearchFilterField; diff --git a/macosx/Controller.m b/macosx/Controller.m index ae73fe72e..5cb883385 100644 --- a/macosx/Controller.m +++ b/macosx/Controller.m @@ -58,6 +58,16 @@ #define SORT_TRACKER @"Tracker" #define SORT_ORDER @"Order" +typedef enum +{ + SORT_ORDER_TAG = 0, + SORT_DATE_TAG = 1, + SORT_NAME_TAG = 2, + SORT_PROGRESS_TAG = 3, + SORT_STATE_TAG = 4, + SORT_TRACKER_TAG = 5 +} sortTag; + #define FILTER_NONE @"None" #define FILTER_DOWNLOAD @"Download" #define FILTER_SEED @"Seed" @@ -292,47 +302,6 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi [history release]; } - //set sort - #warning clean up - NSString * sortType = [fDefaults stringForKey: @"Sort"]; - - NSMenuItem * currentSortItem, * currentSortActionItem; - if ([sortType isEqualToString: SORT_NAME]) - { - currentSortItem = fNameSortItem; - currentSortActionItem = fNameSortActionItem; - } - else if ([sortType isEqualToString: SORT_STATE]) - { - currentSortItem = fStateSortItem; - currentSortActionItem = fStateSortActionItem; - } - else if ([sortType isEqualToString: SORT_PROGRESS]) - { - currentSortItem = fProgressSortItem; - currentSortActionItem = fProgressSortActionItem; - } - else if ([sortType isEqualToString: SORT_TRACKER]) - { - currentSortItem = fTrackerSortItem; - currentSortActionItem = fTrackerSortActionItem; - } - else if ([sortType isEqualToString: SORT_ORDER]) - { - currentSortItem = fOrderSortItem; - currentSortActionItem = fOrderSortActionItem; - } - else - { - //safety - if (![sortType isEqualToString: SORT_DATE]) - [fDefaults setObject: SORT_DATE forKey: @"Sort"]; - currentSortItem = fDateSortItem; - currentSortActionItem = fDateSortActionItem; - } - [currentSortItem setState: NSOnState]; - [currentSortActionItem setState: NSOnState]; - //set filter NSString * filterType = [fDefaults stringForKey: @"Filter"]; @@ -1709,93 +1678,39 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi - (void) setSort: (id) sender { - NSString * oldSortType = [fDefaults stringForKey: @"Sort"]; - - //get checked items - NSMenuItem * prevSortItem, * prevSortActionItem; - if ([oldSortType isEqualToString: SORT_NAME]) + NSString * sortType; + switch ([sender tag]) { - prevSortItem = fNameSortItem; - prevSortActionItem = fNameSortActionItem; - } - else if ([oldSortType isEqualToString: SORT_STATE]) - { - prevSortItem = fStateSortItem; - prevSortActionItem = fStateSortActionItem; - } - else if ([oldSortType isEqualToString: SORT_PROGRESS]) - { - prevSortItem = fProgressSortItem; - prevSortActionItem = fProgressSortActionItem; - } - else if ([oldSortType isEqualToString: SORT_TRACKER]) - { - prevSortItem = fTrackerSortItem; - prevSortActionItem = fTrackerSortActionItem; - } - else if ([oldSortType isEqualToString: SORT_ORDER]) - { - prevSortItem = fOrderSortItem; - prevSortActionItem = fOrderSortActionItem; - } - else - { - prevSortItem = fDateSortItem; - prevSortActionItem = fDateSortActionItem; - } - - if (sender != prevSortItem && sender != prevSortActionItem) - { - //get new items to check - NSMenuItem * currentSortItem, * currentSortActionItem; - NSString * sortType; - if (sender == fNameSortItem || sender == fNameSortActionItem) - { - currentSortItem = fNameSortItem; - currentSortActionItem = fNameSortActionItem; - sortType = SORT_NAME; - } - else if (sender == fStateSortItem || sender == fStateSortActionItem) - { - currentSortItem = fStateSortItem; - currentSortActionItem = fStateSortActionItem; - sortType = SORT_STATE; - } - else if (sender == fProgressSortItem || sender == fProgressSortActionItem) - { - currentSortItem = fProgressSortItem; - currentSortActionItem = fProgressSortActionItem; - sortType = SORT_PROGRESS; - } - else if (sender == fTrackerSortItem || sender == fTrackerSortActionItem) - { - currentSortItem = fTrackerSortItem; - currentSortActionItem = fTrackerSortActionItem; - sortType = SORT_TRACKER; - } - else if (sender == fOrderSortItem || sender == fOrderSortActionItem) - { - currentSortItem = fOrderSortItem; - currentSortActionItem = fOrderSortActionItem; + case SORT_ORDER_TAG: sortType = SORT_ORDER; - [fDefaults setBool: NO forKey: @"SortReverse"]; - } - else - { - currentSortItem = fDateSortItem; - currentSortActionItem = fDateSortActionItem; + break; + + case SORT_DATE_TAG: sortType = SORT_DATE; - } + break; - [fDefaults setObject: sortType forKey: @"Sort"]; - - [prevSortItem setState: NSOffState]; - [prevSortActionItem setState: NSOffState]; - [currentSortItem setState: NSOnState]; - [currentSortActionItem setState: NSOnState]; + case SORT_NAME_TAG: + sortType = SORT_NAME; + break; + + case SORT_PROGRESS_TAG: + sortType = SORT_PROGRESS; + break; + + case SORT_STATE_TAG: + sortType = SORT_STATE; + break; + + case SORT_TRACKER_TAG: + sortType = SORT_TRACKER; + break; + + default: + return; } - + + [fDefaults setObject: sortType forKey: @"Sort"]; [self sortTorrents]; } @@ -2001,7 +1916,7 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi [self applyFilter: nil]; } -#warning improve +#warning improve with matrix - (void) switchFilter: (id) sender { NSString * filterType = [fDefaults stringForKey: @"Filter"]; @@ -2858,7 +2773,35 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi //enable sort options if (action == @selector(setSort:)) + { + NSString * sortType; + switch ([menuItem tag]) + { + case SORT_ORDER_TAG: + sortType = SORT_ORDER; + break; + case SORT_DATE_TAG: + sortType = SORT_DATE; + break; + case SORT_NAME_TAG: + sortType = SORT_NAME; + break; + case SORT_PROGRESS_TAG: + sortType = SORT_PROGRESS; + break; + case SORT_STATE_TAG: + sortType = SORT_STATE; + break; + case SORT_TRACKER_TAG: + sortType = SORT_TRACKER; + break; + default: + sortType = @""; + } + + [menuItem setState: [sortType isEqualToString: [fDefaults stringForKey: @"Sort"]] ? NSOnState : NSOffState]; return [fWindow isVisible]; + } if (action == @selector(toggleSmallView:)) { diff --git a/macosx/English.lproj/MainMenu.nib/classes.nib b/macosx/English.lproj/MainMenu.nib/classes.nib index a23cce249..4c90bdf54 100644 --- a/macosx/English.lproj/MainMenu.nib/classes.nib +++ b/macosx/English.lproj/MainMenu.nib/classes.nib @@ -145,10 +145,6 @@ fActionButton NSButton - fDateSortActionItem - NSMenuItem - fDateSortItem - NSMenuItem fDockMenu NSMenu fDownloadFilterButton @@ -161,10 +157,6 @@ NSMenuItem fFilterBar StatusBarView - fNameSortActionItem - NSMenuItem - fNameSortItem - NSMenuItem fNextFilterItem NSMenuItem fNextInfoTabItem @@ -173,20 +165,12 @@ NSButton fOpenIgnoreDownloadFolder NSMenuItem - fOrderSortActionItem - NSMenuItem - fOrderSortItem - NSMenuItem fPauseFilterButton NSButton fPrevFilterItem NSMenuItem fPrevInfoTabItem NSMenuItem - fProgressSortActionItem - NSMenuItem - fProgressSortItem - NSMenuItem fScrollView NSScrollView fSearchFilterField @@ -195,10 +179,6 @@ NSButton fSpeedLimitButton NSButton - fStateSortActionItem - NSMenuItem - fStateSortItem - NSMenuItem fStatusBar StatusBarView fTableView @@ -209,10 +189,6 @@ NSTextField fTotalULField NSTextField - fTrackerSortActionItem - NSMenuItem - fTrackerSortItem - NSMenuItem fURLSheetTextField NSTextField fURLSheetWindow @@ -290,21 +266,13 @@ SUPERCLASS NSPopUpButton - - CLASS - ImageBackgroundView - LANGUAGE - ObjC - SUPERCLASS - NSView - CLASS StatusBarView LANGUAGE ObjC SUPERCLASS - ImageBackgroundView + NSView IBVersion diff --git a/macosx/English.lproj/MainMenu.nib/info.nib b/macosx/English.lproj/MainMenu.nib/info.nib index 3ca84a6bb..d4ab2a89e 100644 --- a/macosx/English.lproj/MainMenu.nib/info.nib +++ b/macosx/English.lproj/MainMenu.nib/info.nib @@ -10,7 +10,8 @@ 5 IBOpenObjects - 2 + 1639 + 1895 IBSystem Version 9A581 diff --git a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib index e1b1049cd..b8c4dc4ca 100644 Binary files a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib and b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib differ diff --git a/macosx/StatusBarView.m b/macosx/StatusBarView.m index 9d6633fbb..0736dcf6d 100644 --- a/macosx/StatusBarView.m +++ b/macosx/StatusBarView.m @@ -29,13 +29,13 @@ - (id) initWithFrame: (NSRect) rect { - if ((self = [super initWithFrame: rect])) + if ((self = [super initWithFrame: rect])) { NSColor * beginningColor = [NSColor colorWithCalibratedRed: 208.0/255.0 green: 208.0/255.0 blue: 208.0/255.0 alpha: 1.0]; NSColor * endingColor = [NSColor colorWithCalibratedRed: 233.0/255.0 green: 233.0/255.0 blue: 233.0/255.0 alpha: 1.0]; fGradient = [[CTGradient gradientWithBeginningColor: beginningColor endingColor: endingColor] retain]; - } - return self; + } + return self; } - (void) dealloc