diff options
| -rw-r--r-- | indra/newview/llpanelteleporthistory.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/llteleporthistory.cpp | 9 | ||||
| -rw-r--r-- | indra/newview/llteleporthistory.h | 3 | ||||
| -rw-r--r-- | indra/newview/llteleporthistorystorage.h | 6 | 
4 files changed, 14 insertions, 5 deletions
| diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp index 2c3f76f546..d3543daff0 100644 --- a/indra/newview/llpanelteleporthistory.cpp +++ b/indra/newview/llpanelteleporthistory.cpp @@ -389,6 +389,7 @@ LLTeleportHistoryPanel::~LLTeleportHistoryPanel()  {  	LLTeleportHistoryFlatItemStorage::instance().purge();  	delete mGearMenuHandle.get(); +	mTeleportHistoryChangedConnection.disconnect();  }  BOOL LLTeleportHistoryPanel::postBuild() diff --git a/indra/newview/llteleporthistory.cpp b/indra/newview/llteleporthistory.cpp index 0d8b45db1f..50a088b799 100644 --- a/indra/newview/llteleporthistory.cpp +++ b/indra/newview/llteleporthistory.cpp @@ -56,7 +56,8 @@ const std::string& LLTeleportHistoryItem::getTitle() const  LLTeleportHistory::LLTeleportHistory():  	mCurrentItem(-1),  	mRequestedItem(-1), -	mGotInitialUpdate(false) +	mGotInitialUpdate(false), +	mTeleportHistoryStorage(NULL)  {  	mTeleportFinishedConn = LLViewerParcelMgr::getInstance()->  		setTeleportFinishedCallback(boost::bind(&LLTeleportHistory::updateCurrentLocation, this, _1)); @@ -115,6 +116,10 @@ void LLTeleportHistory::handleLoginComplete()  void LLTeleportHistory::updateCurrentLocation(const LLVector3d& new_pos)  { +	if (!mTeleportHistoryStorage) +	{ +		mTeleportHistoryStorage = LLTeleportHistoryStorage::getInstance(); +	}  	if (mRequestedItem != -1) // teleport within the history in progress?  	{  		mCurrentItem = mRequestedItem; @@ -152,7 +157,7 @@ void LLTeleportHistory::updateCurrentLocation(const LLVector3d& new_pos)  		if (mCurrentItem < 0 || mCurrentItem >= (int) mItems.size()) // sanity check  		{  			llwarns << "Invalid current item. (this should not happen)" << llendl; -			llassert(!"Invalid current teleport histiry item"); +			llassert(!"Invalid current teleport history item");  			return;  		}  		LLVector3 new_pos_local = gAgent.getPosAgentFromGlobal(new_pos); diff --git a/indra/newview/llteleporthistory.h b/indra/newview/llteleporthistory.h index e45dc28f9b..e9c29c39bf 100644 --- a/indra/newview/llteleporthistory.h +++ b/indra/newview/llteleporthistory.h @@ -33,6 +33,7 @@  #include <string>  #include <boost/function.hpp>  #include <boost/signals2.hpp> +#include "llteleporthistorystorage.h"  /** @@ -210,6 +211,8 @@ private:  	 */  	bool					mGotInitialUpdate; +	LLTeleportHistoryStorage*	mTeleportHistoryStorage; +  	/**  	 * Signal emitted when the history gets changed.  	 *  diff --git a/indra/newview/llteleporthistorystorage.h b/indra/newview/llteleporthistorystorage.h index 6cae0a3454..cf4c85a991 100644 --- a/indra/newview/llteleporthistorystorage.h +++ b/indra/newview/llteleporthistorystorage.h @@ -93,9 +93,6 @@ public:  	void removeItem(S32 idx);  	void save(); -	void load(); - -	void dump() const;  	/**  	 * Set a callback to be called upon history changes. @@ -113,6 +110,9 @@ public:  private: +	void load(); +	void dump() const; +	  	void onTeleportHistoryChange();  	bool compareByTitleAndGlobalPos(const LLTeleportHistoryPersistentItem& a, const LLTeleportHistoryPersistentItem& b); | 
