[Radar] Feature Request: Make sort order persist
This commit is contained in:
@@ -8048,6 +8048,20 @@ This should be as low as possible, but too low may break functionality</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RadarSortOrder</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sort order for the radar, map of column names to ascending boolean</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>LLSD</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<string>distance</string>
|
||||
<boolean>1</boolean>
|
||||
</array>
|
||||
</map>
|
||||
<key>FloaterLandRect5</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
||||
@@ -257,6 +257,14 @@ LLFloaterAvatarList::LLFloaterAvatarList() : LLFloater(std::string("radar")),
|
||||
LLFloaterAvatarList::~LLFloaterAvatarList()
|
||||
{
|
||||
mCleanup = true;
|
||||
LLSD sort;
|
||||
for (const auto& col : mAvatarList->getSortColumns())
|
||||
{
|
||||
sort.append(mAvatarList->getColumn(col.first)->mName);
|
||||
sort.append(col.second);
|
||||
}
|
||||
|
||||
gSavedSettings.setLLSD("RadarSortOrder", sort);
|
||||
mAvatars.clear();
|
||||
}
|
||||
|
||||
@@ -425,7 +433,13 @@ BOOL LLFloaterAvatarList::postBuild()
|
||||
|
||||
// Get a pointer to the scroll list from the interface
|
||||
mAvatarList = getChild<LLScrollListCtrl>("avatar_list");
|
||||
mAvatarList->sortByColumn("distance", true);
|
||||
const LLSD sort = gSavedSettings.getLLSD("RadarSortOrder");
|
||||
for (auto it = sort.beginArray(), end = sort.endArray(); it < end; ++it)
|
||||
{
|
||||
const auto& column_name = (*it);
|
||||
const auto& ascending = (*++it);
|
||||
mAvatarList->sortByColumn(column_name.asStringRef(), ascending.asBoolean());
|
||||
}
|
||||
mAvatarList->setCommitOnSelectionChange(true);
|
||||
mAvatarList->setCommitCallback(boost::bind(&LLFloaterAvatarList::onSelectName,this));
|
||||
mAvatarList->setDoubleClickCallback(boost::bind(&LLFloaterAvatarList::onClickFocus,this));
|
||||
|
||||
Reference in New Issue
Block a user