meow-7.2.2
Gilbert Gonzales 2013-05-02 16:41:53 -07:00
commit f9dc6d9708
3 changed files with 73 additions and 17 deletions

View File

@ -111,12 +111,11 @@ public:
{
mPanelPeople->connectToFacebook(query_map["code"]);
mPanelPeople = NULL;
return true;
}
}
return true;
}
}
return false;
}
};
@ -1687,10 +1686,22 @@ void LLPanelPeople::showFacebookFriends(const LLSD& friends)
void LLPanelPeople::addTestParticipant()
{
std::string suffix("Aa");
std::string prefix("Test Name");
for(int i = 0; i < 300; ++i)
{
LLPersonTabModel * person_folder_model = dynamic_cast<LLPersonTabModel *>(mPersonFolderView->mPersonFolderModelMap.begin()->second);
addParticipantToModel(person_folder_model, gAgent.getID(), "Test Name");
std::string name = prefix + " " + suffix;
addParticipantToModel(person_folder_model, gAgent.getID(), name);
// Next suffix : Aa, Ab, Ac ... Az, Ba, Bb, Bc ... Bz, Ca, Cb ...
suffix[1]+=1;
if (suffix[1]=='{')
{
suffix[1]='a';
suffix[0]+=1;
if (suffix[0]=='[')
suffix[0]='A';
}
}
}

View File

@ -31,21 +31,23 @@
#include "llevents.h"
#include "llsdutil.h"
#include "llstring.h"
//
// LLPersonModelCommon
//
LLPersonModelCommon::LLPersonModelCommon(std::string display_name, LLFolderViewModelInterface& root_view_model) :
LLFolderViewModelItemCommon(root_view_model),
mName(display_name),
LLFolderViewModelItemCommon(root_view_model),
mID(LLUUID().generateNewID())
{
renameItem(display_name);
}
LLPersonModelCommon::LLPersonModelCommon(LLFolderViewModelInterface& root_view_model) :
LLFolderViewModelItemCommon(root_view_model),
LLFolderViewModelItemCommon(root_view_model),
mName(""),
mSearchableName(""),
mID(LLUUID().generateNewID())
{
}
@ -55,6 +57,14 @@ LLPersonModelCommon::~LLPersonModelCommon()
}
BOOL LLPersonModelCommon::renameItem(const std::string& new_name)
{
mName = new_name;
mSearchableName = new_name;
LLStringUtil::toUpper(mSearchableName);
return TRUE;
}
void LLPersonModelCommon::postEvent(const std::string& event_type, LLPersonTabModel* folder, LLPersonModel* person)
{
LLUUID folder_id = folder->getID();
@ -84,6 +94,39 @@ void LLPersonModelCommon::showProperties(void)
{
}
bool LLPersonModelCommon::filter( LLFolderViewFilter& filter)
{
// See LLFolderViewModelItemInventory::filter()
/*
if (!filter.isModified())
{
llinfos << "Merov : LLPersonModelCommon::filter, exit, no modif" << llendl;
return true;
}
*/
if (!mChildren.empty())
{
//llinfos << "Merov : LLPersonModelCommon::filter, filtering folder = " << getDisplayName() << llendl;
setPassedFilter(1, -1, filter.getStringMatchOffset(this), filter.getFilterStringSize());
for (child_list_t::iterator iter = mChildren.begin(), end_iter = mChildren.end();
iter != end_iter;
++iter)
{
// LLFolderViewModelItem
LLPersonModelCommon* item = dynamic_cast<LLPersonModelCommon*>(*iter);
item->filter(filter);
}
}
else
{
const bool passed_filter = filter.check(this);
setPassedFilter(passed_filter, -1, filter.getStringMatchOffset(this), filter.getFilterStringSize());
}
filter.clearModified();
return true;
}
//
// LLPersonTabModel
//
@ -186,7 +229,7 @@ void LLPersonViewFilter::setFilterSubString(const std::string& string)
if (mFilterSubString != filter_sub_string_new)
{
// *TODO : Add logic to support more and less restrictive filtering
mFilterModified = FILTER_RESTART;
setModified(FILTER_RESTART);
mFilterSubString = filter_sub_string_new;
}
}
@ -198,9 +241,7 @@ bool LLPersonViewFilter::showAllResults() const
bool LLPersonViewFilter::check(const LLFolderViewModelItem* item)
{
std::string::size_type string_offset = mFilterSubString.size() ? item->getSearchableName().find(mFilterSubString) : std::string::npos;
return (mFilterSubString.size() == 0 || string_offset != std::string::npos);
return (mFilterSubString.size() ? (item->getSearchableName().find(mFilterSubString) != std::string::npos) : true);
}
std::string::size_type LLPersonViewFilter::getStringMatchOffset(LLFolderViewModelItem* item) const

View File

@ -46,13 +46,14 @@ public:
// Stub those things we won't really be using in this conversation context
virtual const std::string& getName() const { return mName; }
virtual const std::string& getDisplayName() const { return mName; }
virtual const std::string& getSearchableName() const { return mName; }
virtual const std::string& getSearchableName() const { return mSearchableName; }
virtual LLPointer<LLUIImage> getIcon() const { return NULL; }
virtual LLPointer<LLUIImage> getOpenIcon() const { return getIcon(); }
virtual LLFontGL::StyleFlags getLabelStyle() const { return LLFontGL::NORMAL; }
virtual std::string getLabelSuffix() const { return LLStringUtil::null; }
virtual BOOL isItemRenameable() const { return TRUE; }
virtual BOOL renameItem(const std::string& new_name) { mName = new_name; return TRUE; }
virtual BOOL renameItem(const std::string& new_name);
virtual BOOL isItemMovable( void ) const { return FALSE; }
virtual BOOL isItemRemovable( void ) const { return FALSE; }
virtual BOOL isItemInTrash( void) const { return FALSE; }
@ -70,10 +71,12 @@ public:
virtual bool hasChildren() const { return FALSE; }
virtual bool potentiallyVisible() { return true; }
virtual bool filter( LLFolderViewFilter& filter) { return false; }
virtual bool filter( LLFolderViewFilter& filter);
virtual bool descendantsPassedFilter(S32 filter_generation = -1) { return true; }
virtual void setPassedFilter(bool passed, S32 filter_generation, std::string::size_type string_offset = std::string::npos, std::string::size_type string_size = 0) { }
virtual bool passedFilter(S32 filter_generation = -1) { return true; }
// virtual void setPassedFilter(bool passed, S32 filter_generation, std::string::size_type string_offset = std::string::npos, std::string::size_type string_size = 0) { }
virtual bool passedFilter(S32 filter_generation = -1) { return mPassedFilter; }
// The action callbacks
virtual void performAction(LLInventoryModel* model, std::string action);
@ -97,7 +100,8 @@ public:
protected:
std::string mName; // Name of the session or the participant
std::string mName; // Name of the person
std::string mSearchableName; // Name used in string matching for this person
LLUUID mID;
};
@ -175,7 +179,7 @@ public:
// +-------------------------------------------------------------------+
// Note : we currently filter the whole person list at once, no need to count then.
void setFilterCount(S32 count) { }
S32 getFilterCount() const { return 0; }
S32 getFilterCount() const { return 1; }
void decrementFilterCount() { }
// +-------------------------------------------------------------------+