@@ -113,7 +113,7 @@ function aPlayersTab.Create(tab)
113113 addEventHandler (" onClientGUIClick" , aPlayersTab .Context , aPlayersTab .onContextClick )
114114 addEventHandler (" onClientGUIClick" , aPlayersTab .InfoContext , aPlayersTab .onContextClick )
115115 addEventHandler (" onClientGUIClick" , aPlayersTab .Tab , aPlayersTab .onClientClick )
116- addEventHandler (" onClientGUIChanged" , aPlayersTab .PlayerListSearch , aPlayersTab .onPlayerListSearch )
116+ addEventHandler (" onClientGUIChanged" , aPlayersTab .PlayerListSearch , aPlayersTab .onGUIChange )
117117 addEventHandler (" onClientPlayerChangeNick" , root , aPlayersTab .onClientPlayerChangeNick )
118118 addEventHandler (" aClientPlayerJoin" , root , aPlayersTab .onClientPlayerJoin )
119119 addEventHandler (" onClientPlayerQuit" , root , aPlayersTab .onClientPlayerQuit )
@@ -321,23 +321,9 @@ function aPlayersTab.onClientClick(button)
321321 end
322322end
323323
324- function aPlayersTab .onPlayerListSearch ()
325- guiGridListClear (aPlayersTab .PlayerList )
326- local text = guiGetText (source )
327- if (text == " " ) then
328- for id , player in ipairs (getElementsByType (" player" )) do
329- local row = guiGridListAddRow (aPlayersTab .PlayerList )
330- guiGridListSetItemText (aPlayersTab .PlayerList , row , 1 , getPlayerName (player ), false , false )
331- guiGridListSetItemData (aPlayersTab .PlayerList , row , 1 , player )
332- end
333- else
334- for id , player in ipairs (getElementsByType (" player" )) do
335- if (string.find (string.upper (getPlayerName (player )), string.upper (text ))) then
336- local row = guiGridListAddRow (aPlayersTab .PlayerList )
337- guiGridListSetItemText (aPlayersTab .PlayerList , row , 1 , getPlayerName (player ), false , false )
338- guiGridListSetItemData (aPlayersTab .PlayerList , row , 1 , player )
339- end
340- end
324+ function aPlayersTab .onGUIChange ()
325+ if (source == aPlayersTab .PlayerListSearch ) then
326+ aPlayersTab .Refresh ()
341327 end
342328end
343329
@@ -551,21 +537,25 @@ end
551537
552538function aPlayersTab .Refresh ()
553539 local selected = getSelectedPlayer ()
554- local list = aPlayersTab .PlayerList
555- guiGridListClear (list )
556540 local strip = guiCheckBoxGetSelected (aPlayersTab .ColorCodes )
541+ local filter = guiGetText (aPlayersTab .PlayerListSearch ):lower ()
542+ local sortDirection = guiGetProperty (aPlayersTab .PlayerList , " SortDirection" )
543+ guiGridListClear (aPlayersTab .PlayerList )
544+ guiSetProperty (aPlayersTab .PlayerList , " SortDirection" , " None" )
557545 for id , player in ipairs (getElementsByType (" player" )) do
558- local row = guiGridListAddRow (list )
559546 local name = getPlayerName (player )
560- if (strip ) then
561- name = stripColorCodes (name )
562- end
563- guiGridListSetItemText (list , row , 1 , name , false , false )
564- guiGridListSetItemData (list , row , 1 , player )
565- if (player == selected ) then
566- guiGridListSetSelectedItem (list , row , 1 )
547+ if name :find (filter ) or name :lower ():find (filter ) then
548+ if (strip ) then
549+ name = stripColorCodes (name )
550+ end
551+ local row = guiGridListAddRow (aPlayersTab .PlayerList , name )
552+ guiGridListSetItemData (aPlayersTab .PlayerList , row , 1 , player )
553+ if (player == selected ) then
554+ guiGridListSetSelectedItem (aPlayersTab .PlayerList , row , 1 )
555+ end
567556 end
568557 end
558+ guiSetProperty (aPlayersTab .PlayerList , " SortDirection" , sortDirection )
569559end
570560
571561function getSelectedPlayer ()
0 commit comments