Skip to content
Snippets Groups Projects
Commit 4c23a013 authored by Rye Mutt's avatar Rye Mutt :bread:
Browse files

Fix up FS search floater

parent 97d0bc77
No related branches found
No related tags found
No related merge requests found
...@@ -48,7 +48,8 @@ ...@@ -48,7 +48,8 @@
#include "llloadingindicator.h" #include "llloadingindicator.h"
#include "lllogininstance.h" #include "lllogininstance.h"
#include "llnotificationsutil.h" #include "llnotificationsutil.h"
#include "llpanelclassified.h" #include "llpanelprofile.h"
#include "llpanelprofileclassifieds.h"
#include "llparcel.h" #include "llparcel.h"
#include "llproductinforequest.h" #include "llproductinforequest.h"
#include "llqueryflags.h" #include "llqueryflags.h"
...@@ -156,6 +157,9 @@ class FSSearchAvatarPropertiesObserver : public LLAvatarPropertiesObserver ...@@ -156,6 +157,9 @@ class FSSearchAvatarPropertiesObserver : public LLAvatarPropertiesObserver
void processProperties(void* data, EAvatarProcessorType type) void processProperties(void* data, EAvatarProcessorType type)
{ {
if (!data)
return;
if (APT_PROPERTIES == type) if (APT_PROPERTIES == type)
{ {
LLAvatarData* avatar_data = static_cast<LLAvatarData*>(data); LLAvatarData* avatar_data = static_cast<LLAvatarData*>(data);
...@@ -165,6 +169,12 @@ class FSSearchAvatarPropertiesObserver : public LLAvatarPropertiesObserver ...@@ -165,6 +169,12 @@ class FSSearchAvatarPropertiesObserver : public LLAvatarPropertiesObserver
LLAvatarPropertiesProcessor::getInstance()->removeObserver(avatar_data->avatar_id, this); LLAvatarPropertiesProcessor::getInstance()->removeObserver(avatar_data->avatar_id, this);
} }
} }
else if (APT_PROPERTIES_LEGACY == type)
{
LLAvatarData avatar_data(*static_cast<LLAvatarLegacyData*>(data));
mParent->displayAvatarDetails(&avatar_data);
LLAvatarPropertiesProcessor::getInstance()->removeObserver(avatar_data.avatar_id, this);
}
if (APT_CLASSIFIED_INFO == type) if (APT_CLASSIFIED_INFO == type)
{ {
LLAvatarClassifiedInfo* c_info = static_cast<LLAvatarClassifiedInfo*>(data); LLAvatarClassifiedInfo* c_info = static_cast<LLAvatarClassifiedInfo*>(data);
...@@ -178,7 +188,7 @@ class FSSearchAvatarPropertiesObserver : public LLAvatarPropertiesObserver ...@@ -178,7 +188,7 @@ class FSSearchAvatarPropertiesObserver : public LLAvatarPropertiesObserver
LL_INFOS("Search") << "Classified stat request via capability" << LL_ENDL; LL_INFOS("Search") << "Classified stat request via capability" << LL_ENDL;
LLSD body; LLSD body;
body["classified_id"] = c_info->classified_id; body["classified_id"] = c_info->classified_id;
LLCoreHttpUtil::HttpCoroutineAdapter::callbackHttpPost(url, body, boost::bind(&LLPanelClassifiedInfo::handleSearchStatResponse, c_info->classified_id, _1)); LLCoreHttpUtil::HttpCoroutineAdapter::callbackHttpPost(url, body, boost::bind(&LLPanelProfileClassified::handleSearchStatResponse, c_info->classified_id, _1));
} }
} }
} }
...@@ -241,7 +251,7 @@ class FSDispatchClassifiedClickThrough : public LLDispatchHandler ...@@ -241,7 +251,7 @@ class FSDispatchClassifiedClickThrough : public LLDispatchHandler
S32 map_clicks = atoi(strings[2].c_str()); S32 map_clicks = atoi(strings[2].c_str());
S32 profile_clicks = atoi(strings[3].c_str()); S32 profile_clicks = atoi(strings[3].c_str());
LLPanelClassifiedInfo::setClickThrough( LLPanelProfileClassified::setClickThrough(
classified_id, teleport_clicks, map_clicks, profile_clicks, false); classified_id, teleport_clicks, map_clicks, profile_clicks, false);
return true; return true;
...@@ -264,10 +274,12 @@ FSFloaterSearch::FSFloaterSearch(const Params& key) ...@@ -264,10 +274,12 @@ FSFloaterSearch::FSFloaterSearch(const Params& key)
mRemoteParcelObserver = new FSSearchRemoteParcelInfoObserver(this, false); mRemoteParcelObserver = new FSSearchRemoteParcelInfoObserver(this, false);
mRemoteParcelEventLocationObserver = new FSSearchRemoteParcelInfoObserver(this, true); mRemoteParcelEventLocationObserver = new FSSearchRemoteParcelInfoObserver(this, true);
mAvatarPropertiesObserver = new FSSearchAvatarPropertiesObserver(this); mAvatarPropertiesObserver = new FSSearchAvatarPropertiesObserver(this);
mEventNotifierConnection = gEventNotifier.setNewEventCallback(boost::bind(&FSFloaterSearch::displayEventDetails, this, boost::placeholders::_1));
} }
FSFloaterSearch::~FSFloaterSearch() FSFloaterSearch::~FSFloaterSearch()
{ {
mEventNotifierConnection.disconnect();
delete mRemoteParcelObserver; delete mRemoteParcelObserver;
delete mRemoteParcelEventLocationObserver; delete mRemoteParcelEventLocationObserver;
delete mAvatarPropertiesObserver; delete mAvatarPropertiesObserver;
...@@ -361,7 +373,7 @@ void FSFloaterSearch::onTabChange() ...@@ -361,7 +373,7 @@ void FSFloaterSearch::onTabChange()
mDetailsPanel->setVisible(false); mDetailsPanel->setVisible(false);
mPanelWeb->resetFocusOnLoad(); mPanelWeb->resetFocusOnLoad();
} }
else else if (active_panel == mPanelPeople)
{ {
mDetailsPanel->setVisible(mHasSelection); mDetailsPanel->setVisible(mHasSelection);
} }
...@@ -404,12 +416,10 @@ void FSFloaterSearch::onSelectedItem(const LLUUID& selected_item, ESearchCategor ...@@ -404,12 +416,10 @@ void FSFloaterSearch::onSelectedItem(const LLUUID& selected_item, ESearchCategor
switch (type) switch (type)
{ {
case SC_AVATAR: case SC_AVATAR:
{ {
{ LLAvatarPropertiesProcessor::getInstance()->addObserver(selected_item, mAvatarPropertiesObserver);
LLAvatarPropertiesProcessor::getInstance()->addObserver(selected_item, mAvatarPropertiesObserver); LLAvatarPropertiesProcessor::getInstance()->sendAvatarPropertiesRequest(selected_item);
LLAvatarPropertiesProcessor::getInstance()->sendAvatarPropertiesRequest(selected_item); }
}
}
break; break;
case SC_GROUP: case SC_GROUP:
mGroupPropertiesRequest = new FSSearchGroupInfoObserver(selected_item, this); mGroupPropertiesRequest = new FSSearchGroupInfoObserver(selected_item, this);
...@@ -484,7 +494,7 @@ void FSFloaterSearch::displayParcelDetails(const LLParcelData& parcel_data) ...@@ -484,7 +494,7 @@ void FSFloaterSearch::displayParcelDetails(const LLParcelData& parcel_data)
setLoadingProgress(false); setLoadingProgress(false);
} }
void FSFloaterSearch::displayAvatarDetails(LLAvatarData*& avatar_data) void FSFloaterSearch::displayAvatarDetails(LLAvatarData* avatar_data)
{ {
if (avatar_data) if (avatar_data)
{ {
...@@ -501,7 +511,7 @@ void FSFloaterSearch::displayAvatarDetails(LLAvatarData*& avatar_data) ...@@ -501,7 +511,7 @@ void FSFloaterSearch::displayAvatarDetails(LLAvatarData*& avatar_data)
mDetailTitle->setValue(LLTrans::getString("LoadingData")); mDetailTitle->setValue(LLTrans::getString("LoadingData"));
mDetailDesc->setValue(avatar_data->about_text); mDetailDesc->setValue(avatar_data->about_text);
mDetailSnapshot->setValue(avatar_data->image_id); mDetailSnapshot->setValue(avatar_data->image_id);
mDetailAux1->setValue(getString("string.age", map)); mDetailAux1->setValue(avatar_data->hide_age ? "" : getString("string.age", map));
LLAvatarNameCache::get(avatar_data->avatar_id, boost::bind(&FSFloaterSearch::avatarNameUpdatedCallback,this, _1, _2)); LLAvatarNameCache::get(avatar_data->avatar_id, boost::bind(&FSFloaterSearch::avatarNameUpdatedCallback,this, _1, _2));
childSetVisible("people_profile_btn", true); childSetVisible("people_profile_btn", true);
childSetVisible("people_message_btn", true); childSetVisible("people_message_btn", true);
...@@ -569,13 +579,13 @@ void FSFloaterSearch::displayClassifiedDetails(LLAvatarClassifiedInfo*& c_info) ...@@ -569,13 +579,13 @@ void FSFloaterSearch::displayClassifiedDetails(LLAvatarClassifiedInfo*& c_info)
} }
} }
void FSFloaterSearch::displayEventDetails(U32 eventId, F64 eventEpoch, const std::string& eventDateStr, const std::string &eventName, const std::string &eventDesc, const std::string &simName, U32 eventDuration, U32 eventFlags, U32 eventCover, LLVector3d eventGlobalPos) bool FSFloaterSearch::displayEventDetails(LLEventStruct event)
{ {
if (eventFlags == EVENT_FLAG_ADULT) if (event.flags == EVENT_FLAG_ADULT)
{ {
mDetailMaturity->setValue("Parcel_R_Dark"); mDetailMaturity->setValue("Parcel_R_Dark");
} }
else if (eventFlags == EVENT_FLAG_MATURE) else if (event.flags == EVENT_FLAG_MATURE)
{ {
mDetailMaturity->setValue("Parcel_M_Dark"); mDetailMaturity->setValue("Parcel_M_Dark");
} }
...@@ -587,25 +597,25 @@ void FSFloaterSearch::displayEventDetails(U32 eventId, F64 eventEpoch, const std ...@@ -587,25 +597,25 @@ void FSFloaterSearch::displayEventDetails(U32 eventId, F64 eventEpoch, const std
S32 region_x; S32 region_x;
S32 region_y; S32 region_y;
S32 region_z; S32 region_z;
region_x = (S64)ll_round(eventGlobalPos.mdV[VX]) % REGION_WIDTH_UNITS; region_x = (S64)ll_round(event.globalPos.mdV[VX]) % REGION_WIDTH_UNITS;
region_y = (S64)ll_round(eventGlobalPos.mdV[VY]) % REGION_WIDTH_UNITS; region_y = (S64)ll_round(event.globalPos.mdV[VY]) % REGION_WIDTH_UNITS;
region_z = (S32)ll_round(eventGlobalPos.mdV[VZ]); region_z = (S32)ll_round(event.globalPos.mdV[VZ]);
LLStringUtil::format_map_t map; LLStringUtil::format_map_t map;
map["DURATION"] = llformat("%d:%.2d", eventDuration / 60, eventDuration % 60); map["DURATION"] = llformat("%d:%.2d", event.duration / 60, event.duration % 60);
map["LOCATION"] = llformat("%s (%d, %d, %d)", simName.c_str(), region_x, region_y, region_z); map["LOCATION"] = llformat("%s (%d, %d, %d)", event.simName.c_str(), region_x, region_y, region_z);
if (eventCover > 0) if (event.cover > 0)
{ {
map["COVERCHARGE"] = llformat("L$%d", eventCover); map["COVERCHARGE"] = llformat("L$%d", event.cover);
mDetailAux2->setValue(getString("string.covercharge", map)); mDetailAux2->setValue(getString("string.covercharge", map));
} }
mParcelGlobal = eventGlobalPos; mParcelGlobal = event.globalPos;
mEventID = eventId; mEventID = event.eventId;
mDetailsPanel->setVisible(mTabContainer->getCurrentPanel()->getName() == "panel_ls_events"); mDetailsPanel->setVisible(mTabContainer->getCurrentPanel()->getName() == "panel_ls_events");
mHasSelection = true; mHasSelection = true;
mDetailMaturity->setVisible(true); mDetailMaturity->setVisible(true);
mDetailTitle->setValue(eventName); mDetailTitle->setValue(event.eventName);
mDetailDesc->setValue(eventDesc); mDetailDesc->setValue(event.desc);
mDetailAux1->setValue(getString("string.duration", map)); mDetailAux1->setValue(getString("string.duration", map));
mDetailLocation->setValue(getString("string.location", map)); mDetailLocation->setValue(getString("string.location", map));
mDetailSnapshotParcel->setValue(LLUUID::null); mDetailSnapshotParcel->setValue(LLUUID::null);
...@@ -613,7 +623,8 @@ void FSFloaterSearch::displayEventDetails(U32 eventId, F64 eventEpoch, const std ...@@ -613,7 +623,8 @@ void FSFloaterSearch::displayEventDetails(U32 eventId, F64 eventEpoch, const std
childSetVisible("map_btn", true); childSetVisible("map_btn", true);
childSetVisible("event_reminder_btn", true); childSetVisible("event_reminder_btn", true);
LLWorldMapMessage::getInstance()->sendNamedRegionRequest(simName, boost::bind(&FSFloaterSearch::regionHandleCallback, this, _1, eventGlobalPos), "", false); LLWorldMapMessage::getInstance()->sendNamedRegionRequest(event.simName, boost::bind(&FSFloaterSearch::regionHandleCallback, this, _1, event.globalPos), "", false);
return true;
} }
void FSFloaterSearch::regionHandleCallback(U64 region_handle, LLVector3d pos_global) void FSFloaterSearch::regionHandleCallback(U64 region_handle, LLVector3d pos_global)
...@@ -2993,7 +3004,7 @@ void FSPanelSearchWeb::loadURL(const SearchQuery &p) ...@@ -2993,7 +3004,7 @@ void FSPanelSearchWeb::loadURL(const SearchQuery &p)
} }
// add the search query string // add the search query string
subs["QUERY"] = LLURI::escape(p.query); subs["QUERY"] = LLURI::escape(p.query.getValue());
// add the permissions token that login.cgi gave us // add the permissions token that login.cgi gave us
// We use "search_token", and fallback to "auth_token" if not present. // We use "search_token", and fallback to "auth_token" if not present.
......
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
#include "llsearchcombobox.h" #include "llsearchcombobox.h"
#include "llscrolllistctrl.h" #include "llscrolllistctrl.h"
#include "lltabcontainer.h" #include "lltabcontainer.h"
#include "lleventnotifier.h"
class FSSearchRemoteParcelInfoObserver; class FSSearchRemoteParcelInfoObserver;
class LLAvatarPropertiesObserver; class LLAvatarPropertiesObserver;
...@@ -48,6 +49,7 @@ class LLGroupMgrObserver; ...@@ -48,6 +49,7 @@ class LLGroupMgrObserver;
class LLSearchEditor; class LLSearchEditor;
class LLSearchComboBox; class LLSearchComboBox;
class FSFloaterSearch; class FSFloaterSearch;
class LLPanelProfile;
class FSScrollListCtrl; class FSScrollListCtrl;
struct SearchQuery : public LLInitParam::Block<SearchQuery> struct SearchQuery : public LLInitParam::Block<SearchQuery>
...@@ -109,7 +111,6 @@ class FSPanelSearchPeople : public FSSearchPanelBase ...@@ -109,7 +111,6 @@ class FSPanelSearchPeople : public FSSearchPanelBase
LLSD mResultsContent; LLSD mResultsContent;
LLUUID mQueryID; LLUUID mQueryID;
FSFloaterSearch* mParent;
LLSearchComboBox* mSearchComboBox; LLSearchComboBox* mSearchComboBox;
LLScrollListCtrl* mSearchResults; LLScrollListCtrl* mSearchResults;
}; };
...@@ -144,7 +145,6 @@ class FSPanelSearchGroups : public FSSearchPanelBase ...@@ -144,7 +145,6 @@ class FSPanelSearchGroups : public FSSearchPanelBase
LLSD mResultsContent; LLSD mResultsContent;
LLUUID mQueryID; LLUUID mQueryID;
FSFloaterSearch* mParent;
LLSearchComboBox* mSearchComboBox; LLSearchComboBox* mSearchComboBox;
LLScrollListCtrl* mSearchResults; LLScrollListCtrl* mSearchResults;
}; };
...@@ -179,7 +179,6 @@ class FSPanelSearchPlaces : public FSSearchPanelBase ...@@ -179,7 +179,6 @@ class FSPanelSearchPlaces : public FSSearchPanelBase
LLSD mResultsContent; LLSD mResultsContent;
LLUUID mQueryID; LLUUID mQueryID;
FSFloaterSearch* mParent;
LLSearchComboBox* mSearchComboBox; LLSearchComboBox* mSearchComboBox;
LLScrollListCtrl* mSearchResults; LLScrollListCtrl* mSearchResults;
LLComboBox* mPlacesCategory; LLComboBox* mPlacesCategory;
...@@ -213,7 +212,6 @@ class FSPanelSearchLand : public FSSearchPanelBase ...@@ -213,7 +212,6 @@ class FSPanelSearchLand : public FSSearchPanelBase
LLSD mResultsContent; LLSD mResultsContent;
LLUUID mQueryID; LLUUID mQueryID;
FSFloaterSearch* mParent;
LLLineEditor* mPriceEditor; LLLineEditor* mPriceEditor;
LLLineEditor* mAreaEditor; LLLineEditor* mAreaEditor;
LLScrollListCtrl* mSearchResults; LLScrollListCtrl* mSearchResults;
...@@ -249,7 +247,6 @@ class FSPanelSearchClassifieds : public FSSearchPanelBase ...@@ -249,7 +247,6 @@ class FSPanelSearchClassifieds : public FSSearchPanelBase
LLSD mResultsContent; LLSD mResultsContent;
LLUUID mQueryID; LLUUID mQueryID;
FSFloaterSearch* mParent;
LLSearchComboBox* mSearchComboBox; LLSearchComboBox* mSearchComboBox;
LLScrollListCtrl* mSearchResults; LLScrollListCtrl* mSearchResults;
LLComboBox* mClassifiedsCategory; LLComboBox* mClassifiedsCategory;
...@@ -291,7 +288,6 @@ class FSPanelSearchEvents : public FSSearchPanelBase ...@@ -291,7 +288,6 @@ class FSPanelSearchEvents : public FSSearchPanelBase
LLSD mResultsContent; LLSD mResultsContent;
LLUUID mQueryID; LLUUID mQueryID;
FSFloaterSearch* mParent;
LLSearchComboBox* mSearchComboBox; LLSearchComboBox* mSearchComboBox;
LLScrollListCtrl* mSearchResults; LLScrollListCtrl* mSearchResults;
LLRadioGroup* mEventsMode; LLRadioGroup* mEventsMode;
...@@ -347,18 +343,9 @@ class FSFloaterSearch : public LLFloater ...@@ -347,18 +343,9 @@ class FSFloaterSearch : public LLFloater
void onSelectedEvent(const S32 selected_event); void onSelectedEvent(const S32 selected_event);
void displayParcelDetails(const LLParcelData& parcel_data); void displayParcelDetails(const LLParcelData& parcel_data);
void displayClassifiedDetails(LLAvatarClassifiedInfo*& c_info); void displayClassifiedDetails(LLAvatarClassifiedInfo*& c_info);
void displayAvatarDetails(LLAvatarData*& avatar_data); void displayAvatarDetails(LLAvatarData* avatar_data);
void displayGroupDetails(LLGroupMgrGroupData*& group_data); void displayGroupDetails(LLGroupMgrGroupData*& group_data);
void displayEventDetails(U32 eventId, bool displayEventDetails(LLEventStruct event);
F64 eventEpoch,
const std::string& eventDateStr,
const std::string &eventName,
const std::string &eventDesc,
const std::string &simName,
U32 eventDuration,
U32 eventFlags,
U32 eventCover,
LLVector3d eventGlobalPos);
void displayEventParcelImage(const LLParcelData& parcel_data); void displayEventParcelImage(const LLParcelData& parcel_data);
void setLoadingProgress(bool started); void setLoadingProgress(bool started);
...@@ -392,6 +379,7 @@ class FSFloaterSearch : public LLFloater ...@@ -392,6 +379,7 @@ class FSFloaterSearch : public LLFloater
FSSearchRemoteParcelInfoObserver* mRemoteParcelEventLocationObserver; FSSearchRemoteParcelInfoObserver* mRemoteParcelEventLocationObserver;
LLAvatarPropertiesObserver* mAvatarPropertiesObserver; LLAvatarPropertiesObserver* mAvatarPropertiesObserver;
LLGroupMgrObserver* mGroupPropertiesRequest; LLGroupMgrObserver* mGroupPropertiesRequest;
boost::signals2::connection mEventNotifierConnection;
FSPanelSearchPeople* mPanelPeople; FSPanelSearchPeople* mPanelPeople;
FSPanelSearchGroups* mPanelGroups; FSPanelSearchGroups* mPanelGroups;
......
...@@ -305,8 +305,11 @@ class LLPanelProfileClassified ...@@ -305,8 +305,11 @@ class LLPanelProfileClassified
S32 mPriceForListing; S32 mPriceForListing;
public:
static void handleSearchStatResponse(LLUUID classifiedId, LLSD result); static void handleSearchStatResponse(LLUUID classifiedId, LLSD result);
private:
typedef std::list<LLPanelProfileClassified*> panel_list_t; typedef std::list<LLPanelProfileClassified*> panel_list_t;
static panel_list_t sAllPanels; static panel_list_t sAllPanels;
......
...@@ -87,6 +87,7 @@ ...@@ -87,6 +87,7 @@
<combo_box.item label="" value="filter_separator" enabled="false" /> <combo_box.item label="" value="filter_separator" enabled="false" />
<combo_box.item label="Discussion" name="discussion" value="18" /> <combo_box.item label="Discussion" name="discussion" value="18" />
<combo_box.item label="Sports" name="sports" value="19" /> <combo_box.item label="Sports" name="sports" value="19" />
<combo_box.item label="Live DJ" name="dj" value="30" />
<combo_box.item label="Live Music" name="music" value="20" /> <combo_box.item label="Live Music" name="music" value="20" />
<!-- <combo_box.item label="???" name="mystery_category" value="21" /> --> <!-- <combo_box.item label="???" name="mystery_category" value="21" /> -->
<combo_box.item label="Commercial" name="commercial" value="22" /> <combo_box.item label="Commercial" name="commercial" value="22" />
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment