function SearchManager:AddSearch(saveData)
local search = SearchState:New(self, saveData)
local enabledSearches = {}
for i = 1, #self.searches do
if (self.searches[i]:GetSaveData().enabled) then
table.insert(enabledSearches, self.searches[i])
end
end
while (#enabledSearches >= 10) do
self:RemoveSearch(table.remove(enabledSearches, 1))
end
local newIndex = #self.searches + 1
search.sortIndex = newIndex -- this is so we do not have to refresh the list twice
self.searches[newIndex] = search
self.saveData.searches[newIndex] = search:GetSaveData()
AGS.internal:FireCallbacks(AGS.callback.SEARCH_LIST_CHANGED, REQUIRES_FULL_UPDATE)
return search
end