Merged in maxim_productengine/viewer-neko_maint2 (pull request #658)

MAINT-8883 Restore previous selection after updating the list

Approved-by: Andrey Lihatskiy <andreylproductengine@lindenlab.com>
Approved-by: Andrey Kleshchev <andreykproductengine@lindenlab.com>
meow-7.2.2
Maxim Nikolenko 2018-07-18 08:53:46 +00:00
commit 546002d769
2 changed files with 17 additions and 3 deletions

View File

@ -303,6 +303,8 @@ void LLPanelGroupNotices::activate()
{
if(mNoticesList)
mNoticesList->deleteAllItems();
mPrevSelectedNotice = LLUUID();
BOOL can_send = gAgent.hasPowerInGroup(mGroupID,GP_NOTICES_SEND);
BOOL can_receive = gAgent.hasPowerInGroup(mGroupID,GP_NOTICES_RECEIVE);
@ -454,12 +456,18 @@ void LLPanelGroupNotices::refreshNotices()
}
void LLPanelGroupNotices::clearNoticeList()
{
mPrevSelectedNotice = mNoticesList->getStringUUIDSelectedItem();
mNoticesList->deleteAllItems();
}
void LLPanelGroupNotices::onClickRefreshNotices(void* data)
{
LL_DEBUGS() << "LLPanelGroupNotices::onClickGetPastNotices" << LL_ENDL;
LLPanelGroupNotices* self = (LLPanelGroupNotices*)data;
self->mNoticesList->deleteAllItems();
self->clearNoticeList();
LLMessageSystem* msg = gMessageSystem;
msg->newMessage("GroupNoticesListRequest");
@ -547,7 +555,6 @@ void LLPanelGroupNotices::processNotices(LLMessageSystem* msg)
LLSD row;
row["id"] = id;
row["columns"][0]["column"] = "icon";
if (has_attachment)
{
@ -577,7 +584,10 @@ void LLPanelGroupNotices::processNotices(LLMessageSystem* msg)
mNoticesList->updateSort();
if (mPanelViewNotice->getVisible())
{
mNoticesList->selectFirstItem();
if (!mNoticesList->selectByID(mPrevSelectedNotice))
{
mNoticesList->selectFirstItem();
}
}
}

View File

@ -65,6 +65,8 @@ public:
void refreshNotices();
void clearNoticeList();
virtual void setGroupID(const LLUUID& id);
private:
@ -113,6 +115,8 @@ private:
LLOfferInfo* mInventoryOffer;
LLUUID mPrevSelectedNotice;
static std::map<LLUUID,LLPanelGroupNotices*> sInstances;
};