diff options
| author | Merov Linden <merov@lindenlab.com> | 2013-04-19 16:51:44 -0700 | 
|---|---|---|
| committer | Merov Linden <merov@lindenlab.com> | 2013-04-19 16:51:44 -0700 | 
| commit | 2cc1fb250f78df3a4b8f33b13b30defef7efb78a (patch) | |
| tree | 3090305f95c8c564913579a407749544a7f712d2 /indra/newview | |
| parent | 03ad10d258095487d6ae8f26634932bc832f10df (diff) | |
CHUI-849 : Use a time limit for filtering instead of number limit, use a different limit for visible and unvisible lists
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 24 | ||||
| -rwxr-xr-x | indra/newview/llconversationmodel.h | 5 | ||||
| -rw-r--r-- | indra/newview/llfolderviewmodelinventory.cpp | 9 | ||||
| -rw-r--r-- | indra/newview/llinventoryfilter.cpp | 27 | ||||
| -rw-r--r-- | indra/newview/llinventoryfilter.h | 10 | 
5 files changed, 17 insertions, 58 deletions
| diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index a28c6366c0..cd2b15ef2b 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -3391,27 +3391,27 @@          <key>Value</key>              <real>10.0</real>          </map> -    <key>FilterItemsPerFrame</key> +    <key>FilterItemsMaxTimePerFrameVisible</key>      <map> -      <key>Comment</key> -      <string>Maximum number of inventory items to match against search filter every frame (lower to increase framerate while searching, higher to improve search speed)</string> -      <key>Persist</key> -      <integer>1</integer> -      <key>Type</key> -      <string>S32</string> -      <key>Value</key> -      <integer>500</integer> +        <key>Comment</key> +        <string>Max time devoted to items filtering per frame for visible inventory listings (in milliseconds)</string> +        <key>Persist</key> +        <integer>1</integer> +        <key>Type</key> +        <string>S32</string> +        <key>Value</key> +        <integer>10</integer>      </map> -    <key>FilterItemsMaxTimePerFrame</key> +    <key>FilterItemsMaxTimePerFrameUnvisible</key>      <map>          <key>Comment</key> -        <string>Max time devoted to items filtering per frame (in milliseconds)</string> +        <string>Max time devoted to items filtering per frame for non visible inventory listings (in milliseconds)</string>          <key>Persist</key>          <integer>1</integer>          <key>Type</key>          <string>S32</string>          <key>Value</key> -        <integer>100</integer> +        <integer>1</integer>      </map>      <key>FindLandArea</key>      <map> diff --git a/indra/newview/llconversationmodel.h b/indra/newview/llconversationmodel.h index 5c942b1c40..d8cdcdfc97 100755 --- a/indra/newview/llconversationmodel.h +++ b/indra/newview/llconversationmodel.h @@ -252,14 +252,9 @@ public:  	const std::string& 	getName() const { return mEmpty; }  	const std::string& 	getFilterText() { return mEmpty; }  	void 				setModified(EFilterModified behavior = FILTER_RESTART) { } -		 -	void 				setFilterCount(S32 count) { } -	S32 				getFilterCount() const { return 0; } -	void 				decrementFilterCount() { }    	void 				resetTime(S32 timeout) { }      bool                isTimedOut() { return false; } -	void 				incrementFilterCount() { } // Temp!  	bool 				isDefault() const { return true; }  	bool 				isNotDefault() const { return false; } diff --git a/indra/newview/llfolderviewmodelinventory.cpp b/indra/newview/llfolderviewmodelinventory.cpp index ce957edcbd..4a51d26693 100644 --- a/indra/newview/llfolderviewmodelinventory.cpp +++ b/indra/newview/llfolderviewmodelinventory.cpp @@ -191,6 +191,7 @@ bool LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter)  		return true;  	} +    // *TODO : Revise the logic for fast pass on less restrictive filter case      /*       const S32 sufficient_pass_generation = filter.getFirstSuccessGeneration();      if (getLastFilterGeneration() >= sufficient_pass_generation @@ -218,7 +219,6 @@ bool LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter)  		for (child_list_t::iterator iter = mChildren.begin(), end_iter = mChildren.end(); iter != end_iter; ++iter)  		{  			continue_filtering = filterChildItem((*iter), filter); -            //if (filter.getFilterCount() <= 0)              if (!continue_filtering)  			{  				break; @@ -226,13 +226,10 @@ bool LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter)  		}  	} -	// If we didn't use all filter iterations that means we filtered all of our descendants so filter ourselves now -	//if (filter.getFilterCount() > 0) +	// If we didn't use all the filter time that means we filtered all of our descendants so we can filter ourselves now      if (continue_filtering)  	{ -        // This is where filter count is hit and filter check on the item done (CHUI-849) -		//filter.decrementFilterCount(); -		filter.incrementFilterCount(); // Temp +        // This is where filter check on the item done (CHUI-849)  		const bool passed_filter = filter.check(this);  		setPassedFilter(passed_filter, filter_generation, filter.getStringMatchOffset(this), filter.getFilterStringSize());          continue_filtering = !filter.isTimedOut(); diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index 3b712925e1..3c6974cf6d 100644 --- a/indra/newview/llinventoryfilter.cpp +++ b/indra/newview/llinventoryfilter.cpp @@ -70,8 +70,7 @@ LLInventoryFilter::LLInventoryFilter(const Params& p)  	mFilterSubString(p.substring),  	mCurrentGeneration(0),  	mFirstRequiredGeneration(0), -	mFirstSuccessGeneration(0), -	mFilterCount(0) +	mFirstSuccessGeneration(0)  {  	// copy mFilterOps into mDefaultFilterOps  	markDefault(); @@ -1012,25 +1011,6 @@ LLInventoryFilter::EFolderShow LLInventoryFilter::getShowFolderState() const  	return mFilterOps.mShowFolderState;   } -void LLInventoryFilter::setFilterCount(S32 count)  -{  -	mFilterCount = count;  -} -S32 LLInventoryFilter::getFilterCount() const -{ -	return mFilterCount; -} - -void LLInventoryFilter::decrementFilterCount()  -{  -	mFilterCount--;  -} - -void LLInventoryFilter::incrementFilterCount() -{ -	mFilterCount++; -} -  bool LLInventoryFilter::isTimedOut()  {  	return mFilterTime.hasExpired(); @@ -1038,15 +1018,12 @@ bool LLInventoryFilter::isTimedOut()  void LLInventoryFilter::resetTime(S32 timeout)  { -    mFilterCount = 0;  	mFilterTime.reset();      F32 time_in_sec = (F32)(timeout)/1000.0;  	mFilterTime.setTimerExpirySec(time_in_sec);  } - - -S32 LLInventoryFilter::getCurrentGeneration() const  +S32 LLInventoryFilter::getCurrentGeneration() const  {   	return mCurrentGeneration;  } diff --git a/indra/newview/llinventoryfilter.h b/indra/newview/llinventoryfilter.h index 034fcf4a62..ce516af0b9 100644 --- a/indra/newview/llinventoryfilter.h +++ b/indra/newview/llinventoryfilter.h @@ -215,18 +215,10 @@ public:  	void 				setModified(EFilterModified behavior = FILTER_RESTART);  	// +-------------------------------------------------------------------+ -	// + Count -	// +-------------------------------------------------------------------+ -	void 				setFilterCount(S32 count); -	S32 				getFilterCount() const; -	void 				decrementFilterCount(); - -	// +-------------------------------------------------------------------+  	// + Time  	// +-------------------------------------------------------------------+  	void 				resetTime(S32 timeout);      bool                isTimedOut(); -	void 				incrementFilterCount(); // Temp!  	// +-------------------------------------------------------------------+  	// + Default @@ -275,9 +267,7 @@ private:  	S32						mFirstRequiredGeneration;  	S32						mFirstSuccessGeneration; -	S32						mFilterCount;  	EFilterModified 		mFilterModified; -  	LLTimer                 mFilterTime;  	std::string 			mFilterText; | 
