From ec5590ea0a127b9ff783097cc4d40216a15376d7 Mon Sep 17 00:00:00 2001 From: Benjamin Pracht Date: Wed, 1 Dec 2004 21:50:17 +0000 Subject: [PATCH] Fix the search field in OSX playlist --- .../English.lproj/MainMenu.nib/classes.nib | 3 +- .../English.lproj/MainMenu.nib/info.nib | 4 +- .../English.lproj/MainMenu.nib/objects.nib | Bin 62578 -> 62378 bytes modules/gui/macosx/playlist.h | 5 + modules/gui/macosx/playlist.m | 136 +++++++++++++++++- 5 files changed, 141 insertions(+), 7 deletions(-) diff --git a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib index 23646ce864..ac65dfd49b 100644 --- a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib +++ b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib @@ -402,7 +402,7 @@ SUPERCLASS = NSObject; }, { - ACTIONS = {handlePopUp = id; }; + ACTIONS = {handlePopUp = id; searchItem = id; }; CLASS = VLCPlaylist; LANGUAGE = ObjC; OUTLETS = { @@ -412,7 +412,6 @@ "o_outline_view" = id; "o_random_ckb" = id; "o_search_field" = id; - "o_search_keyword" = id; "o_status_field" = id; "o_tc_author" = id; "o_tc_duration" = id; diff --git a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib index a715693b69..86bf1bda41 100644 --- a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib +++ b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib @@ -3,13 +3,13 @@ IBDocumentLocation - 23 -174 505 517 0 0 1024 746 + 45 176 505 517 0 0 1024 746 IBEditorPositions 1617 542 480 104 149 0 0 1024 746 2197 - 259 330 596 367 0 0 1024 746 + 237 313 596 367 0 0 1024 746 29 84 667 419 44 0 0 1024 746 915 diff --git a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib index a7b4cd623ac5d6556f15529818881456b4eb9850..9bb47834420da1e642ce7f152fda57f3526bc6cb 100644 GIT binary patch literal 62378 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 diff --git a/modules/gui/macosx/playlist.h b/modules/gui/macosx/playlist.h index cfef7b42d7..a6e1450fd4 100644 --- a/modules/gui/macosx/playlist.h +++ b/modules/gui/macosx/playlist.h @@ -49,9 +49,14 @@ NSImage *o_descendingSortingImage; NSImage *o_ascendingSortingImage; + + NSMutableDictionary * o_outline_dict; + + bool b_selected_item_met; } - (IBAction)handlePopUp:(id)sender; +- (IBAction)searchItem:(id)sender; - (void)initStrings; diff --git a/modules/gui/macosx/playlist.m b/modules/gui/macosx/playlist.m index 9ef3f4dec2..13ef565ea8 100644 --- a/modules/gui/macosx/playlist.m +++ b/modules/gui/macosx/playlist.m @@ -173,6 +173,8 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/ o_descendingSortingImage = nil; } + o_outline_dict = [[NSMutableDictionary alloc] init]; + [self initStrings]; //[self playlistUpdated]; } @@ -364,6 +366,126 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/ [self playlistUpdated]; } +- (NSMutableArray *)subSearchItem:(playlist_item_t *)p_item +{ + playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, + FIND_ANYWHERE ); + playlist_item_t * p_selected_item; + int i_current, i_selected_row; + + if (!p_playlist) + return NULL; + + i_selected_row = [o_outline_view selectedRow]; + if (i_selected_row < 0) + i_selected_row = 0; + + p_selected_item = (playlist_item_t *)[[o_outline_view itemAtRow: + i_selected_row] pointerValue]; + + for (i_current = 0; i_current < p_item->i_children ; i_current++) + { + char * psz_temp; + NSString * o_current_name, * o_current_author; + + vlc_mutex_lock( &p_playlist->object_lock ); + o_current_name = [NSString stringWithUTF8String: + p_item->pp_children[i_current]->input.psz_name]; + psz_temp = playlist_ItemGetInfo(p_item ,_("Meta-information"),_("Author") ); + o_current_author = [NSString stringWithUTF8String: psz_temp]; + free( psz_temp); + vlc_mutex_unlock( &p_playlist->object_lock ); + + if (p_selected_item == p_item->pp_children[i_current] && + b_selected_item_met == NO) + { + b_selected_item_met = YES; + } + else if (p_selected_item == p_item->pp_children[i_current] && + b_selected_item_met == YES) + { + vlc_object_release(p_playlist); + return NULL; + } + else if (b_selected_item_met == YES && + ([o_current_name rangeOfString:[o_search_field + stringValue] options:NSCaseInsensitiveSearch ].length || + [o_current_author rangeOfString:[o_search_field + stringValue] options:NSCaseInsensitiveSearch ].length)) + { + vlc_object_release(p_playlist); + /*Adds the parent items in the result array as well, so that we can + expand the tree*/ + return [NSMutableArray arrayWithObject: [NSValue + valueWithPointer: p_item->pp_children[i_current]]]; + } + if (p_item->pp_children[i_current]->i_children > 0) + { + id o_result = [self subSearchItem: + p_item->pp_children[i_current]]; + if (o_result != NULL) + { + vlc_object_release(p_playlist); + [o_result insertObject: [NSValue valueWithPointer: + p_item->pp_children[i_current]] atIndex:0]; + return o_result; + } + } + } + vlc_object_release(p_playlist); + return NULL; +} + +- (IBAction)searchItem:(id)sender +{ + playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, + FIND_ANYWHERE ); + playlist_view_t * p_view; + id o_result; + + unsigned int i; + int i_row = -1; + + b_selected_item_met = NO; + + if( p_playlist == NULL ) + return; + + p_view = playlist_ViewFind( p_playlist, VIEW_SIMPLE ); + + if (p_view) + { + /*First, only search after the selected item:* + *(b_selected_item_met = NO) */ + o_result = [self subSearchItem:p_view->p_root]; + if (o_result == NULL) + { + /* If the first search failed, search again from the beginning */ + o_result = [self subSearchItem:p_view->p_root]; + } + if (o_result != NULL) + { + for (i = 0 ; i < [o_result count] - 1 ; i++) + { + [o_outline_view expandItem: [o_outline_dict objectForKey: + [NSString stringWithFormat: @"%p", + [[o_result objectAtIndex: i] pointerValue]]]]; + } + i_row = [o_outline_view rowForItem: [o_outline_dict objectForKey: + [NSString stringWithFormat: @"%p", + [[o_result objectAtIndex: [o_result count] - 1 ] + pointerValue]]]]; + } + if (i_row > -1) + { + [o_outline_view selectRow:i_row byExtendingSelection: NO]; + [o_outline_view scrollRowToVisible: i_row]; + } + } + vlc_object_release(p_playlist); + +} + @end @implementation VLCPlaylist (NSOutlineViewDataSource) @@ -394,8 +516,6 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/ vlc_object_release( p_playlist ); if( i_return == -1 ) i_return = 0; msg_Dbg( p_playlist, "I have %d children", i_return ); - [o_status_field setStringValue: [NSString stringWithFormat: - _NS("%i items in playlist"), i_return]]; return i_return; } @@ -405,6 +525,8 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/ playlist_item_t *p_return = NULL; playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); + NSValue * o_value; + if( p_playlist == NULL ) return nil; @@ -427,7 +549,15 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/ vlc_object_release( p_playlist ); msg_Dbg( p_playlist, "childitem with index %d", index ); - return [[NSValue valueWithPointer: p_return] retain]; + + o_value = [NSValue valueWithPointer: p_return]; + + [o_outline_dict setObject:o_value forKey:[NSString stringWithFormat:@"%p", p_return]]; +// [o_status_field setStringValue: [NSString stringWithFormat: +// _NS("%i items in playlist"), [o_outline_dict count]]]; + + return o_value; + } /* is the item expandable */ -- 2.39.2