diff options
| -rw-r--r-- | indra/llaudio/llaudioengine.cpp | 2 | ||||
| -rw-r--r-- | indra/llmath/llvolume.h | 2 | ||||
| -rw-r--r-- | indra/llprimitive/llmodel.cpp | 1 | ||||
| -rw-r--r-- | indra/llprimitive/llmodel.h | 16 | ||||
| -rw-r--r-- | indra/newview/VIEWER_VERSION.txt | 2 | ||||
| -rw-r--r-- | indra/newview/llagentcamera.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llfloaterpreference.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/llinventoryfunctions.cpp | 17 | ||||
| -rw-r--r-- | indra/newview/llmodelpreview.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llmodelpreview.h | 1 | ||||
| -rw-r--r-- | indra/newview/llpanelprofileclassifieds.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_publish_classified.xml | 2 | 
12 files changed, 57 insertions, 9 deletions
| diff --git a/indra/llaudio/llaudioengine.cpp b/indra/llaudio/llaudioengine.cpp index a387bb23cd..ece0a12a7a 100644 --- a/indra/llaudio/llaudioengine.cpp +++ b/indra/llaudio/llaudioengine.cpp @@ -398,7 +398,7 @@ void LLAudioEngine::idle()  	for (source_map::value_type& src_pair : mAllSources)  	{  		LLAudioSource *sourcep = src_pair.second; -		if (sourcep->isMuted() && sourcep->isSyncMaster() && sourcep->getPriority() > max_sm_priority) +		if (!sourcep->isMuted() && sourcep->isSyncMaster() && sourcep->getPriority() > max_sm_priority)  		{  			sync_masterp = sourcep;  			master_channelp = sync_masterp->getChannel(); diff --git a/indra/llmath/llvolume.h b/indra/llmath/llvolume.h index afed98ff36..71878b8cb6 100644 --- a/indra/llmath/llvolume.h +++ b/indra/llmath/llvolume.h @@ -1000,7 +1000,7 @@ class LLVolume : public LLRefCount  	friend class LLVolumeLODGroup;  protected: -	~LLVolume(); // use unref +	virtual ~LLVolume(); // use unref  public:  	typedef std::vector<LLVolumeFace> face_list_t; diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp index ee493968de..68a7f29378 100644 --- a/indra/llprimitive/llmodel.cpp +++ b/indra/llprimitive/llmodel.cpp @@ -67,6 +67,7 @@ LLModel::~LLModel()  	{  		LLConvexDecomposition::getInstance()->deleteDecomposition(mDecompID);  	} +    mPhysics.mMesh.clear();  }  //static diff --git a/indra/llprimitive/llmodel.h b/indra/llprimitive/llmodel.h index 4505d6b3b9..040257e00e 100644 --- a/indra/llprimitive/llmodel.h +++ b/indra/llprimitive/llmodel.h @@ -106,6 +106,8 @@ public:  		std::vector<LLVector3> mPositions;  		std::vector<LLVector3> mNormals; +        ~PhysicsMesh() {} +  		void clear()  		{  			mPositions.clear(); @@ -131,6 +133,7 @@ public:  	public:  		Decomposition() { }  		Decomposition(LLSD& data); +		~Decomposition() { }  		void fromLLSD(LLSD& data);  		LLSD asLLSD() const;  		bool hasHullList() const; @@ -365,7 +368,7 @@ class LLModelInstanceBase  {  public:  	LLPointer<LLModel> mModel; -	LLPointer<LLModel> mLOD[5]; +	LLPointer<LLModel> mLOD[LLModel::NUM_LODS];  	LLUUID mMeshID;  	LLMatrix4 mTransform; @@ -380,6 +383,15 @@ public:  		: mModel(NULL)  	{  	} + +    virtual ~LLModelInstanceBase() +    { +        mModel = NULL; +        for (int j = 0; j < LLModel::NUM_LODS; ++j) +        { +            mLOD[j] = NULL; +        } +    };  };  typedef std::vector<LLModelInstanceBase> model_instance_list; @@ -399,6 +411,8 @@ public:  	LLModelInstance(LLSD& data); +    ~LLModelInstance() {} +  	LLSD asLLSD();  }; diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt index 0e7b60da8a..a8a1887568 100644 --- a/indra/newview/VIEWER_VERSION.txt +++ b/indra/newview/VIEWER_VERSION.txt @@ -1 +1 @@ -7.1.2
\ No newline at end of file +7.1.2 diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp index 8977b145d1..0d0d6e7e46 100644 --- a/indra/newview/llagentcamera.cpp +++ b/indra/newview/llagentcamera.cpp @@ -1779,7 +1779,7 @@ LLVector3d LLAgentCamera::calcCameraPositionTargetGlobal(BOOL *hit_limit)  		head_offset.clearVec();  		F32 fixup; -		if (gAgentAvatarp->hasPelvisFixup(fixup)) +        if (gAgentAvatarp->hasPelvisFixup(fixup) && !gAgentAvatarp->isSitting())  		{  			head_offset[VZ] -= fixup;  		} diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index aa723eb3a8..6b8e2898a0 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -1016,7 +1016,6 @@ void LLFloaterPreference::onBtnCancel(const LLSD& userdata)  	if (userdata.asString() == "closeadvanced")  	{  		LLFloaterReg::hideInstance("prefs_graphics_advanced"); -		updateMaxComplexity();  	}  	else  	{ diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index 4aeacae6ed..6ac8bbee76 100644 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -2949,6 +2949,23 @@ bool get_selection_object_uuids(LLFolderView *root, uuid_vec_t& ids)  void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root, const std::string& action, BOOL user_confirm)  {  	std::set<LLFolderViewItem*> selected_items = root->getSelectionList(); +    if (selected_items.empty() +        && action != "wear" +        && action != "wear_add" +        && !isRemoveAction(action)) +    { +        // Was item removed while user was checking menu? +        // "wear" and removal exlusions are due to use of +        // getInventorySelectedUUIDs() below +        LL_WARNS("Inventory") << "Menu tried to operate on empty selection" << LL_ENDL; + +        if (("copy" == action) || ("cut" == action)) +        { +            LLClipboard::instance().reset(); +        } + +        return; +    }      // Prompt the user and check for authorization for some marketplace active listing edits  	if (user_confirm && (("delete" == action) || ("cut" == action) || ("rename" == action) || ("properties" == action) || ("task_properties" == action) || ("open" == action))) diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp index ccae1030f1..ad22e84c6e 100644 --- a/indra/newview/llmodelpreview.cpp +++ b/indra/newview/llmodelpreview.cpp @@ -220,6 +220,16 @@ LLModelPreview::~LLModelPreview()          mPreviewAvatar->markDead();          mPreviewAvatar = NULL;      } + +    mUploadData.clear(); +    mTextureSet.clear(); + +    for (U32 i = 0; i < LLModel::NUM_LODS; i++) +    { +        clearModel(i); +    } +    mBaseModel.clear(); +    mBaseScene.clear();  }  void LLModelPreview::updateDimentionsAndOffsets() diff --git a/indra/newview/llmodelpreview.h b/indra/newview/llmodelpreview.h index df7320768c..d4d5d087bd 100644 --- a/indra/newview/llmodelpreview.h +++ b/indra/newview/llmodelpreview.h @@ -310,7 +310,6 @@ protected:      vv_LLVolumeFace_t mBaseModelFacesCopy;      U32 mGroup; -    std::map<LLPointer<LLModel>, U32> mObject;      // Amount of triangles in original(base) model      U32 mMaxTriangleLimit; diff --git a/indra/newview/llpanelprofileclassifieds.cpp b/indra/newview/llpanelprofileclassifieds.cpp index 3fbaad4dee..e0902c5ce4 100644 --- a/indra/newview/llpanelprofileclassifieds.cpp +++ b/indra/newview/llpanelprofileclassifieds.cpp @@ -955,7 +955,7 @@ void LLPanelProfileClassified::onSaveClick()      }      if(isNew() || isNewWithErrors())      { -        if(gStatusBar->getBalance() < getPriceForListing()) +        if(gStatusBar->getBalance() < MINIMUM_PRICE_FOR_LISTING)          {              LLNotificationsUtil::add("ClassifiedInsufficientFunds");              return; @@ -1428,6 +1428,14 @@ void LLPanelProfileClassified::doSave()  void LLPanelProfileClassified::onPublishFloaterPublishClicked()  { +    if (mPublishFloater->getPrice() < MINIMUM_PRICE_FOR_LISTING) +    { +        LLSD args; +        args["MIN_PRICE"] = MINIMUM_PRICE_FOR_LISTING; +        LLNotificationsUtil::add("MinClassifiedPrice", args); +        return; +    } +      setPriceForListing(mPublishFloater->getPrice());      doSave(); diff --git a/indra/newview/skins/default/xui/en/floater_publish_classified.xml b/indra/newview/skins/default/xui/en/floater_publish_classified.xml index 84e0b489d0..3e68011b6c 100644 --- a/indra/newview/skins/default/xui/en/floater_publish_classified.xml +++ b/indra/newview/skins/default/xui/en/floater_publish_classified.xml @@ -25,6 +25,7 @@ Remember, Classified fees are non-refundable.      </text>      <spinner       decimal_digits="0" +     allow_digits_only="true"       follows="left|top"       font="SansSerif"       halign="left" @@ -36,7 +37,6 @@ Remember, Classified fees are non-refundable.       layout="topleft"       left="15"       value="50" -     min_val="50"       max_val="999999"       name="price_for_listing"       top_pad="10" | 
