From c8233a08a925a341ca16671d110d492fb8205406 Mon Sep 17 00:00:00 2001 From: Denis Dolzhenko Date: Wed, 9 Nov 2016 11:38:23 +0200 Subject: [PATCH] TSAM-9756 Threat list don't display lastest messages when receive new messages Change-Id: I6e0205c828aee99c35fcb0ce4f0fac011a8b0326 Signed-off-by: Denis Dolzhenko --- src/MsgThread/Controller/inc/ThreadList.h | 2 +- src/MsgThread/Controller/src/ThreadList.cpp | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/MsgThread/Controller/inc/ThreadList.h b/src/MsgThread/Controller/inc/ThreadList.h index 961dc9dd..f816ad7e 100644 --- a/src/MsgThread/Controller/inc/ThreadList.h +++ b/src/MsgThread/Controller/inc/ThreadList.h @@ -74,8 +74,8 @@ namespace Msg void updateItems(const MsgIdList &idList); void updateItems(); void updateItem(ThreadListItem &item); - void insertItem(const MsgThreadItem &msgThreadItem); void insertItem(ThreadId id); + void navigateTo(ThreadListItem &item); ThreadListItem *getItem(ThreadId id) const; bool isAllThreadListItemChecked() const; void updateSelectAllItem(); diff --git a/src/MsgThread/Controller/src/ThreadList.cpp b/src/MsgThread/Controller/src/ThreadList.cpp index 6def2cca..f60b6a6a 100644 --- a/src/MsgThread/Controller/src/ThreadList.cpp +++ b/src/MsgThread/Controller/src/ThreadList.cpp @@ -177,16 +177,15 @@ int ThreadList::cmpFunc(const ListItem &item1, const ListItem &item2) return threadItem2.getRawTime() - threadItem1.getRawTime(); } -void ThreadList::insertItem(const MsgThreadItem &item) -{ - ListView::sortedInsertItem(*new ThreadListItem(item, m_App)); -} - void ThreadList::insertItem(ThreadId id) { MsgThreadItemRef threadItem = m_App.getMsgEngine().getStorage().getThread(id); if(threadItem) - insertItem(*threadItem); + { + auto newItem = new ThreadListItem(*threadItem, m_App); + ListView::sortedInsertItem(*newItem); + navigateTo(*newItem); + } } ThreadListItem *ThreadList::getItem(ThreadId id) const @@ -240,6 +239,11 @@ void ThreadList::deleteItems() updateSelectAllItem(); } +void ThreadList::navigateTo(ThreadListItem &item) +{ + ListView::showItem(item, ELM_GENLIST_ITEM_SCROLLTO_TOP); +} + void ThreadList::updateItems(const MsgIdList &idList) { auto threadIdSet = getThreadIdSet(idList); @@ -281,10 +285,12 @@ void ThreadList::updateItem(ThreadListItem &item) newItem->setCheckedState(item.getCheckedState(), false); item.destroy(); ListView::sortedInsertItem(*newItem); + navigateTo(*newItem); } else { item.update(*msgThread, true); + navigateTo(item); } } -- 2.34.1