[Radar] Feature Request: Make sort order persist

This commit is contained in:
Lirusaito
2019-04-28 06:30:20 -04:00
parent b34021abd5
commit 64561fa57b
2 changed files with 29 additions and 1 deletions

View File

@@ -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>

View File

@@ -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));