diff options
| -rw-r--r-- | indra/llmessage/llexperiencecache.cpp | 4 | ||||
| -rwxr-xr-x | indra/newview/CMakeLists.txt | 4 | ||||
| -rwxr-xr-x | indra/newview/llcompilequeue.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llexperienceassociationresponder.cpp | 14 | ||||
| -rw-r--r-- | indra/newview/llexperienceassociationresponder.h | 4 | ||||
| -rw-r--r-- | indra/newview/llfloaterexperienceprofile.cpp | 18 | ||||
| -rw-r--r-- | indra/newview/llfloaterexperiences.cpp | 2 | ||||
| -rwxr-xr-x | indra/newview/llfloaterland.cpp | 30 | ||||
| -rwxr-xr-x | indra/newview/llfloaterregioninfo.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llpanelexperiencepicker.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llpanelexperiences.cpp | 43 | ||||
| -rw-r--r-- | indra/newview/llpanelexperiences.h | 12 | ||||
| -rw-r--r-- | indra/newview/llpanelgroupexperiences.cpp | 2 | ||||
| -rwxr-xr-x | indra/newview/llpreviewscript.cpp | 2 | 
14 files changed, 105 insertions, 40 deletions
diff --git a/indra/llmessage/llexperiencecache.cpp b/indra/llmessage/llexperiencecache.cpp index 1fb77c4391..52b60a176e 100644 --- a/indra/llmessage/llexperiencecache.cpp +++ b/indra/llmessage/llexperiencecache.cpp @@ -257,7 +257,7 @@ namespace LLExperienceCache  		LLSDSerialize::toPrettyXML(data, ostr);  	} -	class LLExperienceResponder : public LLCurl::Responder +	class LLExperienceResponder : public LLHTTPClient::Responder  	{  	public:  		LLExperienceResponder(const ask_queue_t& keys) @@ -266,7 +266,7 @@ namespace LLExperienceCache  		} -		/*virtual*/ void httpSuccess() +		/*virtual*/ void httpCompleted()  		{  			LLSD experiences = getContent()["experience_keys"];  			LLSD::array_const_iterator it = experiences.beginArray(); diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 1f88fdc4f0..cfa523da0d 100755 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -232,6 +232,8 @@ set(viewer_SOURCE_FILES      llfloatereditwater.cpp      llfloaterenvironmentsettings.cpp      llfloaterevent.cpp +    llfloaterfacebook.cpp +    llfloaterflickr.cpp      llfloaterexperiencepicker.cpp      llfloaterexperienceprofile.cpp      llfloaterexperiences.cpp @@ -840,6 +842,8 @@ set(viewer_HEADER_FILES      llfloatereditwater.h      llfloaterenvironmentsettings.h      llfloaterevent.h +    llfloaterfacebook.h +    llfloaterflickr.h      llfloaterexperiencepicker.h      llfloaterexperienceprofile.h      llfloaterexperiences.h diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp index 9e554ba0eb..d9fd4509a5 100755 --- a/indra/newview/llcompilequeue.cpp +++ b/indra/newview/llcompilequeue.cpp @@ -251,11 +251,11 @@ public:  	LLUUID mParent; -	virtual void result(const LLSD& content) +	/*virtual*/ void httpSuccess()  	{	 -		sendResult(content); +		sendResult(getContent());  	} -	virtual void error(U32 status, const std::string& reason) +	/*virtual*/ void httpFailure()  	{  		sendResult(LLSD());  	} diff --git a/indra/newview/llexperienceassociationresponder.cpp b/indra/newview/llexperienceassociationresponder.cpp index 33ada4906d..b50c81eedc 100644 --- a/indra/newview/llexperienceassociationresponder.cpp +++ b/indra/newview/llexperienceassociationresponder.cpp @@ -61,19 +61,19 @@ void ExperienceAssociationResponder::fetchAssociatedExperience(LLSD& request, ca      }  } -void ExperienceAssociationResponder::error( U32 status, const std::string& reason ) +void ExperienceAssociationResponder::httpFailure()  {      LLSD msg; -    msg["error"]=(LLSD::Integer)status; -    msg["message"]=reason; -    LL_INFOS("ExperienceAssociation") << "Failed to look up associated experience: " << status << ": " << reason << LL_ENDL; +    msg["error"]=(LLSD::Integer)getStatus(); +    msg["message"]=getReason(); +    LL_INFOS("ExperienceAssociation") << "Failed to look up associated experience: " << getStatus() << ": " << getReason() << LL_ENDL;      sendResult(msg);  } -void ExperienceAssociationResponder::result( const LLSD& content ) +void ExperienceAssociationResponder::httpSuccess()  { -    if(!content.has("experience")) +    if(!getContent().has("experience"))      {          LLSD msg; @@ -83,7 +83,7 @@ void ExperienceAssociationResponder::result( const LLSD& content )          return;      } -    LLExperienceCache::get(content["experience"].asUUID(), boost::bind(&ExperienceAssociationResponder::sendResult, this, _1)); +    LLExperienceCache::get(getContent()["experience"].asUUID(), boost::bind(&ExperienceAssociationResponder::sendResult, this, _1));  } diff --git a/indra/newview/llexperienceassociationresponder.h b/indra/newview/llexperienceassociationresponder.h index 8ff62a3dbc..2bdc3d251b 100644 --- a/indra/newview/llexperienceassociationresponder.h +++ b/indra/newview/llexperienceassociationresponder.h @@ -41,8 +41,8 @@ public:      ExperienceAssociationResponder(callback_t callback); -    virtual void result(const LLSD& content); -    virtual void error(U32 status, const std::string& reason); +    /*virtual*/ void httpSuccess(); +    /*virtual*/ void httpFailure();      static void fetchAssociatedExperience(const LLUUID& object_it, const LLUUID& item_id, callback_t callback); diff --git a/indra/newview/llfloaterexperienceprofile.cpp b/indra/newview/llfloaterexperienceprofile.cpp index f80fdd9cfe..764d9088a1 100644 --- a/indra/newview/llfloaterexperienceprofile.cpp +++ b/indra/newview/llfloaterexperienceprofile.cpp @@ -138,9 +138,9 @@ public:      HandleResponder(const LLHandle<T>& parent):mParent(parent){}      LLHandle<T> mParent; -    virtual void error(U32 status, const std::string& reason) +    virtual void httpFailure()      { -        LL_WARNS() << "HandleResponder failed with code: " << status<< ", reason: " << reason << LL_ENDL; +        LL_WARNS() << "HandleResponder failed with code: " << getStatus() << ", reason: " << getReason() << LL_ENDL;      }  }; @@ -151,12 +151,12 @@ public:      {      } -    virtual void result(const LLSD& content) +    virtual void httpSuccess()      {          LLFloaterExperienceProfile* parent=mParent.get();          if(parent)          { -            parent->onSaveComplete(content); +            parent->onSaveComplete(getContent());          }      }  }; @@ -225,14 +225,14 @@ public:      } -    virtual void result(const LLSD& content) +    virtual void httpSuccess()      {          if(mId.notNull())          { -            post(getPermission(content)); +            post(getPermission(getContent()));              return;          } -        LLEventPumps::instance().obtain("experience_permission").post(content); +        LLEventPumps::instance().obtain("experience_permission").post(getContent());      }      void post( const char* perm ) @@ -257,7 +257,7 @@ public:      {      } -    virtual void result(const LLSD& content) +    virtual void httpSuccess()      {          LLFloaterExperienceProfile* parent = mParent.get();          if(!parent) @@ -275,7 +275,7 @@ public:              if(url.empty())                  enabled = false;          } -        if(enabled && content["status"].asBoolean()) +        if(enabled && getContent()["status"].asBoolean())          {              parent->getChild<LLLayoutPanel>(PNL_TOP)->setVisible(TRUE);              parent->getChild<LLButton>(BTN_EDIT)->setVisible(TRUE); diff --git a/indra/newview/llfloaterexperiences.cpp b/indra/newview/llfloaterexperiences.cpp index 98b26f5ac9..ac79c9ab43 100644 --- a/indra/newview/llfloaterexperiences.cpp +++ b/indra/newview/llfloaterexperiences.cpp @@ -43,7 +43,7 @@  #define SHOW_RECENT_TAB (0) -class LLExperienceListResponder : public LLCurl::Responder +class LLExperienceListResponder : public LLHTTPClient::Responder  {  public:      typedef std::map<std::string, std::string> NameMap; diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 8d2d29ace1..4fda1ebb7d 100755 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -3012,21 +3012,31 @@ void LLPanelLandExperiences::refreshPanel(LLPanelExperienceListEditor* panel, U3  	LLParcel *parcel = mParcel->getParcel();  	// Display options -	if (parcel == NULL || panel == NULL) +	if (panel == NULL)  	{  		return;  	} - -	LLAccessEntry::map entries = parcel->getExperienceKeysByType(xp_type); -	LLAccessEntry::map::iterator it = entries.begin(); -	LLSD ids = LLSD::emptyArray(); -	for (/**/; it != entries.end(); ++it) +	if (parcel == NULL) +	{ +		// disable the panel +		panel->setEnabled(FALSE); +		panel->setExperienceIds(LLSD::emptyArray()); +	} +	else  	{ -		ids.append(it->second.mID); +		// enable the panel +		panel->setEnabled(TRUE); +		LLAccessEntry::map entries = parcel->getExperienceKeysByType(xp_type); +		LLAccessEntry::map::iterator it = entries.begin(); +		LLSD ids = LLSD::emptyArray(); +		for (/**/; it != entries.end(); ++it) +		{ +			ids.append(it->second.mID); +		} +		panel->setExperienceIds(ids); +		panel->setReadonly(!LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_OPTIONS)); +		panel->refreshExperienceCounter();  	} -	panel->setExperienceIds(ids); -	panel->setReadonly(!LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_OPTIONS)); -	panel->refreshExperienceCounter();  }  void LLPanelLandExperiences::refresh() diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index 487610b797..f70152fc59 100755 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -3620,7 +3620,7 @@ void LLPanelRegionExperiences::processResponse( const LLSD& content )  } -class LLRegionExperienceResponder : public LLCurl::Responder +class LLRegionExperienceResponder : public LLHTTPClient::Responder  {  public:  	typedef boost::function<void (const LLSD&)> callback_t; diff --git a/indra/newview/llpanelexperiencepicker.cpp b/indra/newview/llpanelexperiencepicker.cpp index 3a55295d8c..0a572a8a5c 100644 --- a/indra/newview/llpanelexperiencepicker.cpp +++ b/indra/newview/llpanelexperiencepicker.cpp @@ -57,7 +57,7 @@ const static std::string columnSpace = " ";  static LLPanelInjector<LLPanelExperiencePicker> t_panel_status("llpanelexperiencepicker"); -class LLExperienceSearchResponder : public LLCurl::Responder +class LLExperienceSearchResponder : public LLHTTPClient::Responder  {  public:  	LLUUID mQueryID; diff --git a/indra/newview/llpanelexperiences.cpp b/indra/newview/llpanelexperiences.cpp index 0d67dbf916..2885ef9305 100644 --- a/indra/newview/llpanelexperiences.cpp +++ b/indra/newview/llpanelexperiences.cpp @@ -38,9 +38,13 @@  #include "lllayoutstack.h" +  static LLPanelInjector<LLPanelExperiences> register_experiences_panel("experiences_panel"); +//comparators +static const LLExperienceItemComparator NAME_COMPARATOR; +  LLPanelExperiences::LLPanelExperiences(  )  	: mExperiencesList(NULL)  { @@ -54,6 +58,7 @@ BOOL LLPanelExperiences::postBuild( void )  	{  		mExperiencesList->setNoItemsCommentText(getString("no_experiences"));  	} +	mExperiencesList->setComparator(&NAME_COMPARATOR);  	return TRUE;  } @@ -81,6 +86,8 @@ void LLPanelExperiences::setExperienceList( const LLSD& experiences )          item->init(public_key);          mExperiencesList->addItem(item, public_key);      } + +	mExperiencesList->sort();  }  LLPanelExperiences* LLPanelExperiences::create(const std::string& name) @@ -112,6 +119,7 @@ void LLPanelExperiences::addExperience( const LLUUID& id )          item->init(id);          mExperiencesList->addItem(item, id); +		mExperiencesList->sort();      }  } @@ -137,21 +145,32 @@ void LLPanelExperiences::enableButton( bool enable )  LLExperienceItem::LLExperienceItem() +	: mName(NULL)  {  	buildFromFile("panel_experience_list_item.xml");  }  void LLExperienceItem::init( const LLUUID& id)  { -    getChild<LLUICtrl>("experience_name")->setValue(LLSLURL("experience", id, "profile").getSLURLString()); +    mName = getChild<LLUICtrl>("experience_name"); +	mName->setValue(LLSLURL("experience", id, "profile").getSLURLString());  } -  LLExperienceItem::~LLExperienceItem()  {  } +std::string LLExperienceItem::getExperienceName() const +{ +	if (mName) +	{ +		return mName->getValue(); +	} +	 +	return ""; +} +  void LLPanelSearchExperiences::doSearch()  { @@ -169,3 +188,23 @@ BOOL LLPanelSearchExperiences::postBuild( void )      childSetAction("search_button", boost::bind(&LLPanelSearchExperiences::doSearch, this));      return TRUE;  } + +bool LLExperienceItemComparator::compare(const LLPanel* item1, const LLPanel* item2) const +{ +	const LLExperienceItem* experience_item1 = dynamic_cast<const LLExperienceItem*>(item1); +	const LLExperienceItem* experience_item2 = dynamic_cast<const LLExperienceItem*>(item2); +	 +	if (!experience_item1 || !experience_item2) +	{ +		LL_ERRS() << "item1 and item2 cannot be null" << LL_ENDL; +		return true; +	} + +	std::string name1 = experience_item1->getExperienceName(); +	std::string name2 = experience_item2->getExperienceName(); + +	LLStringUtil::toUpper(name1); +	LLStringUtil::toUpper(name2); + +	return name1 < name2; +} diff --git a/indra/newview/llpanelexperiences.h b/indra/newview/llpanelexperiences.h index c525b1f548..0370499583 100644 --- a/indra/newview/llpanelexperiences.h +++ b/indra/newview/llpanelexperiences.h @@ -71,6 +71,16 @@ private:  	LLFlatListView* mExperiencesList;  }; +class LLExperienceItemComparator : public LLFlatListView::ItemComparator +{ +	LOG_CLASS(LLExperienceItemComparator); + +public: +	LLExperienceItemComparator() {}; +	virtual ~LLExperienceItemComparator() {}; +	 +	virtual bool compare(const LLPanel* item1, const LLPanel* item2) const; +};  class LLExperienceItem   	: public LLPanel @@ -80,6 +90,8 @@ public:  	~LLExperienceItem();  	void init(const LLUUID& experience_id); +	std::string getExperienceName() const;  protected: +	LLUICtrl* mName;  };  #endif // LL_LLPANELEXPERIENCES_H diff --git a/indra/newview/llpanelgroupexperiences.cpp b/indra/newview/llpanelgroupexperiences.cpp index 4f8c5eb94f..140a71a528 100644 --- a/indra/newview/llpanelgroupexperiences.cpp +++ b/indra/newview/llpanelgroupexperiences.cpp @@ -42,7 +42,7 @@  static LLPanelInjector<LLPanelGroupExperiences> t_panel_group_experiences("panel_group_experiences"); -class LLGroupExperienceResponder : public LLCurl::Responder +class LLGroupExperienceResponder : public LLHTTPClient::Responder  {  public:  	LLHandle<LLPanelGroupExperiences> mHandle; diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index 780c41172d..1732d4b3e5 100755 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -123,7 +123,7 @@ static bool have_script_upload_cap(LLUUID& object_id)  } -class ExperienceResponder : public LLCurl::Responder +class ExperienceResponder : public LLHTTPClient::Responder  {  public:      ExperienceResponder(const LLHandle<LLLiveLSLEditor>& parent):mParent(parent)  | 
