void SessionLayout::_AddGroupMemberToList(IN const std::string& sID, IN const BOOL bCreator) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sID, userInfo)) { LOG__(ERR, _T("can't find the userInfo:%s,GroupId:%s"),util::stringToCString(sID),util::stringToCString(m_sId)); return; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("SessionDialog\\groupMembersListItem.xml"), (UINT)0, NULL, &m_paint_manager); if (!pListElement) { LOG__(ERR, _T("群item创建失败")); return; } CButtonUI* pLogo = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); PTR_VOID(pLogo); pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); if (bCreator) { CButtonUI* pCreator = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("Creator"))); PTR_VOID(pCreator); pCreator->SetVisible(true); pCreator->SetUserData(_T("Creator")); } CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); PTR_VOID(pNameLable); pNameLable->SetText(userInfo.getRealName()); pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pGroupMemberList->Add(pListElement); }
void SessionLayout::_AddGroupMemberToList(IN const std::string& sID) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sID, userInfo)) { APP_LOG(LOG_ERROR, _T("SessionLayout::_updateGroupMembersList(),can't find the userInfo")); return; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("SessionDialog\\groupMembersListItem.xml"), (UINT)0, NULL, &m_paint_manager); if (!pListElement) { APP_LOG(LOG_ERROR, _T("群item创建失败")); return; } CButtonUI* pLogo = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); if (!pLogo) { return; } pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); if (!pNameLable) { return; } pNameLable->SetText(userInfo.getRealName()); pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pGroupMemberList->Add(pListElement); }
void SessionLayout::FreshAllGroupMemberAvatar() { if (!m_pGroupMemberList) { return; } for (int n = 0; n < m_pGroupMemberList->GetCount(); n++) { CListContainerElementUI* pItem = (CListContainerElementUI*)m_pGroupMemberList->GetItemAt(n); if (pItem) { CDuiString userData = pItem->GetUserData(); if (!userData.IsEmpty()) { std::string sid = util::cStringToString(CString(userData)); module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sid, userInfo)) { LOG__(ERR, _T("can't find the userInfo:%s,GroupId:%s"),util::stringToCString(sid),util::stringToCString(m_sId)); continue;; } CButtonUI* btnAvatarInfo = (CButtonUI*)pItem->FindSubControl(_T("AvatarInfo")); if (btnAvatarInfo) { btnAvatarInfo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); } } } } m_pGroupMemberList->SortItems(GroupMemberListItemCompareFunc, 0); }
void SessionLayout::FreshGroupMemberAvatar(IN const std::string& sID) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sID, userInfo)) { APP_LOG(LOG_ERROR, _T("SessionLayout::_updateGroupMembersList(),can't find the userInfo")); return; } if (!m_pGroupMemberList) { return; } for (int n = 0; n < m_pGroupMemberList->GetCount(); n++) { CListContainerElementUI* pItem = (CListContainerElementUI*)m_pGroupMemberList->GetItemAt(n); if (pItem) { CDuiString userData = pItem->GetUserData(); if (!userData.IsEmpty()) { std::string sid = util::cStringToString(CString(userData)); if (sid == sID) { CButtonUI* btnAvatarInfo = (CButtonUI*)pItem->FindSubControl(_T("AvatarInfo")); if (btnAvatarInfo) { btnAvatarInfo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); } } } } } m_pGroupMemberList->SortItems(GroupMemberListItemCompareFunc, 0); }
void CreateDiscussionGrpDialog::_updateSearchResultList(IN const std::vector<std::string>& nameList) { if (nameList.empty()) { return; } for (std::string sid : nameList) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sid, userInfo)) { LOG__(ERR, _T("can't find the userInfo:%s"), util::stringToCString(sid)); return; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("CreateDiscussionGrpDialog\\ListGroupMembersItem.xml"), (UINT)0, NULL, &m_PaintManager); if (!pListElement) { LOG__(ERR, _T("群item创建失败")); return; } pListElement->SetName(_T("SearchResultItem")); CControlUI* pLogo = static_cast<CControlUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); if (!pLogo) { return; } pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); if (!pNameLable) { return; } pNameLable->SetText(userInfo.getRealName()); CButtonUI* pRemoveBtn = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("removebtn"))); if (pRemoveBtn) { pRemoveBtn->SetVisible(false); } pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pListSearchResult->Add(pListElement); } }
void SessionLayout::_UpdateSearchRsultList(IN const std::vector<std::string>& nameList) { if (nameList.empty()) { return; } for (std::string sid : nameList) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sid, userInfo)) { LOG__(ERR, _T("can't find the userInfo:%s,GroupId: %s"),util::stringToCString(sid),util::stringToCString(m_sId)); continue; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("SessionDialog\\groupMembersListItem.xml"), (UINT)0, NULL, &m_paint_manager); if (!pListElement) { LOG__(ERR, _T("creat group item failed")); return; } CButtonUI* pLogo = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); if (!pLogo) { return; } pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); if (!pNameLable) { return; } pNameLable->SetText(userInfo.getRealName()); pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pSearchResultList->Add(pListElement); } }
void SessionLayout::_GetGroupNameListByShortName(IN const CString& sShortName, OUT std::vector<string>& nameList) { for (int n = 0; n < m_pGroupMemberList->GetCount();++n) { CListContainerElementUI* pListElement = static_cast<CListContainerElementUI*>(m_pGroupMemberList->GetItemAt(n)); if (pListElement) { CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); if (!pNameLable) { continue;; } CString Name = pNameLable->GetText(); std::string sid = util::cStringToString(CString(pListElement->GetUserData())); if (util::isIncludeChinese(util::cStringToString(sShortName, CP_ACP)))//检索中文 { if (Name.Find(sShortName) != -1) { nameList.push_back(sid); } } else//检索字母 { CString firstPY = util::HZ2FirstPY(util::cStringToString(Name, CP_ACP)); if (firstPY.Find(sShortName) != -1)//先检索简拼 { nameList.push_back(sid); } else { CString allPY = util::HZ2AllPY(Name);//再检索全拼 if (allPY.Find(sShortName) != -1) { nameList.push_back(sid); } } } } } }
void CreateDiscussionGrpDialog::_AddToGroupMemberList(std::string sid) { if (sid.empty()) { return; } //确认没有重复的项 for (int n = 0; n < m_pListGroupMembers->GetCount();n++) { CControlUI* pItem = m_pListGroupMembers->GetItemAt(n); if (pItem) { CString strId = pItem->GetUserData(); if (!strId.IsEmpty()) { std::string sId = util::cStringToString(strId); if (sId == sid) { return; } } } } //插入ITEM module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sid, userInfo)) { LOG__(DEBG, _T("can't find the userInfo:%s"), util::stringToCString(sid)); return; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("CreateDiscussionGrpDialog\\ListGroupMembersItem.xml"), (UINT)0, NULL, &m_PaintManager); if (!pListElement) { LOG__(ERR, _T("群item创建失败")); return; } CControlUI* pLogo = static_cast<CControlUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); if (!pLogo) { return; } pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); if (!pNameLable) { return; } pNameLable->SetText(userInfo.getRealName()); CButtonUI* pRemoveBtn = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("removebtn"))); if (pRemoveBtn) { //点击删除按钮的时候根据这个来判断是哪个项 pRemoveBtn->SetTag(UINT_PTR(pListElement)); } if (module::getSysConfigModule()->userID() == userInfo.sId)//自己不能删除 { pRemoveBtn->SetVisible(false); } pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pListGroupMembers->Add(pListElement); }