summaryrefslogtreecommitdiff
path: root/indra/newview/llfloatersearch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfloatersearch.cpp')
-rw-r--r--indra/newview/llfloatersearch.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp
index 9b7a4e5134..3c84f5b459 100644
--- a/indra/newview/llfloatersearch.cpp
+++ b/indra/newview/llfloatersearch.cpp
@@ -123,19 +123,32 @@ void LLFloaterSearch::initiateSearch(const LLSD& tokens)
subs["COLLECTION"] = "";
if (subs["TYPE"] == "standard")
{
+ std::string collection_args;
if (mCollectionType.find(collection) != mCollectionType.end())
{
- subs["COLLECTION"] = "&collection_chosen=" + std::string(collection);
+ collection_args = "&collection_chosen=" + std::string(collection);
}
- else
+ else if (tokens.has("collections") && tokens["collections"].isArray())
+ {
+ const LLSD &sd = tokens["collections"];
+ for (LLSD::array_const_iterator it = sd.beginArray();
+ it != sd.endArray();
+ ++it)
+ {
+ if (mCollectionType.find(it->asString()) != mCollectionType.end())
+ {
+ collection_args += "&collection_chosen=" + std::string(*it);
+ }
+ }
+ }
+ if (collection_args.empty())
{
- std::string collection_args("");
for (std::set<std::string>::iterator it = mCollectionType.begin(); it != mCollectionType.end(); ++it)
{
collection_args += "&collection_chosen=" + std::string(*it);
}
- subs["COLLECTION"] = collection_args;
}
+ subs["COLLECTION"] = collection_args;
}
// Default to PG