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
commit
546002d769
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue