@@ -32,6 +32,7 @@ static strColumnInfo columnInfos[] =
3232 {TEXT (" ModuleName" ), 20 ,},
3333 {TEXT (" FunName" ), 20 ,},
3434 {TEXT (" SourceFile" ), 20 ,},
35+ {TEXT (" TraceInfoLen" ), 20 ,},
3536 {TEXT (" TraceInfo" ), 800 ,}
3637};
3738
@@ -64,9 +65,9 @@ CLogItemView::~CLogItemView()
6465
6566BEGIN_MESSAGE_MAP (CLogItemView, CListView)
6667 ON_COMMAND_EX(ID_EDIT_GOTO, &CLogItemView::OnEditGoTo)
67- ON_COMMAND_EX(ID_EDIT_CLEAR_CACHE, &CLogItemView::OnEditClearCache)
68+ ON_COMMAND_EX(ID_EDIT_CLEAR_CACHE, &CLogItemView::OnEditClearCache)
6869 ON_COMMAND_EX(ID_EDIT_SET_SRC_PATHS, &CLogItemView::OnEditSetSrcPaths)
69- ON_NOTIFY(HDN_ITEMCLICK, 0 , &CLogItemView::OnHdnItemclickListAllLogitems)
70+ ON_NOTIFY(HDN_ITEMCLICK, 0 , &CLogItemView::OnHdnItemclickListAllLogitems)
7071 // ON_NOTIFY_RANGE(LVN_COLUMNCLICK,0,0xffff,OnColumnClick)
7172 // ON_NOTIFY_REFLECT(LVN_GETDISPINFO, OnGetdispinfo)
7273 ON_NOTIFY_REFLECT(NM_CLICK, &CLogItemView::OnNMClick)
@@ -331,6 +332,10 @@ void CLogItemView::GetDispInfo(LVITEM* pItem)
331332 case type_TraceLevel:
332333 StringCchCopy (pItem->pszText ,pItem->cchTextMax - 1 ,pszTraceLevel[pLogItem->level ]);
333334 break ;
335+ case type_TraceInfoLen:
336+ strFormat.Format (TEXT (" %d" ), pLogItem->traceInfoLen );
337+ StringCchCopy (pItem->pszText , pItem->cchTextMax - 1 , (LPCTSTR)strFormat);
338+ break ;
334339 case type_TraceInfo:
335340 if (NULL != pLogItem->pszTraceInfo ){
336341 StringCchCopy (pItem->pszText ,pItem->cchTextMax - 1 , (LPCTSTR)pLogItem->pszTraceInfo );
@@ -672,7 +677,7 @@ CString CLogItemView::_GetSelectedText(int textType)
672677 break ;
673678 }
674679
675- if (NULL == strFormater.GetString ())
680+ if (0 == strFormater.GetStringLength ())
676681 {
677682 // first line
678683 strFormater.AppendFormat (TEXT (" %s" ), strText);
@@ -814,51 +819,62 @@ void CLogItemView::_HighlightSameThread(LogItemPointer pCompareLogItem)
814819 }
815820}
816821
817- int CLogItemView::_GetSelectedIdTypeValue (MachinePIdTIdType& idType ) {
822+ int CLogItemView::_GetSelectedIdTypeValue (MachinePIdTIdTypeList& idTypeList ) {
818823 CLogManager& logManager = GetDocument ()->m_FTLogManager ;
819824
820- LVHITTESTINFO lvHistTestInfo = GetCurrentSelectInfo ();
821- if (lvHistTestInfo.iItem != -1 )
825+ LogIndexContainer selectedItemList;
826+ INT nSelectedSubItem = -1 ;
827+ LONG nSelectCount = _GetSelectedLines (selectedItemList, nSelectedSubItem);
828+ if (nSelectCount > 0 && nSelectedSubItem != -1 )
822829 {
823- const LogItemPointer pLogItem = logManager.GetDisplayLogItem (lvHistTestInfo.iItem );
824- if (pLogItem) {
825- idType.machine = pLogItem->machine ;
826- idType.pid = pLogItem->processId ;
827- idType.tid = pLogItem->threadId ;
830+ for (LogIndexContainerIter iter = selectedItemList.begin (); iter != selectedItemList.end (); ++iter)
831+ {
832+ const LogItemPointer pLogItem = logManager.GetDisplayLogItem (*iter);
833+ if (pLogItem){
834+ MachinePIdTIdType idType;
835+ idType.machine = pLogItem->machine ;
836+ idType.pid = pLogItem->processId ;
837+ idType.tid = pLogItem->threadId ;
838+ idTypeList.push_back (idType);
839+ FTLTRACE (TEXT (" Filter machine=%s, pid=%s, tid=%s" ),
840+ idType.machine .c_str (), idType.pid .c_str (), idType.tid .c_str ());
841+ }
828842 }
829843 }
830- return lvHistTestInfo.iItem ;
844+
845+ return nSelectedSubItem;
831846}
832847
833848void CLogItemView::OnDetailSelectCurrentPid () {
834849 int oldSelectIndex = 0 ;
835- MachinePIdTIdType selectedIdType ;
850+ MachinePIdTIdTypeList selectIdTypeList ;
836851
837- if (-1 != (oldSelectIndex = _GetSelectedIdTypeValue (selectedIdType ))) {
852+ if (-1 != (oldSelectIndex = _GetSelectedIdTypeValue (selectIdTypeList ))) {
838853 CLogManager& logManager = GetDocument ()->m_FTLogManager ;
839854
840855 UINT nCurSelectLine = _GetCurrentFirstSelectLine ();
841- logManager.OnlySelectSpecialItems (selectedIdType , ONLY_SELECT_TYPE::ostProcessId);
842- GetDocument ()->UpdateAllViews (this , VIEW_UPDATE_HINT_FILTER_BY_CHOOSE_PID, (CObject*)&selectedIdType );
843- OnUpdate (this , VIEW_UPDATE_HINT_FILTER_BY_CHOOSE_PID, (CObject*)&selectedIdType );
856+ logManager.OnlySelectSpecialItems (selectIdTypeList , ONLY_SELECT_TYPE::ostProcessId);
857+ GetDocument ()->UpdateAllViews (this , VIEW_UPDATE_HINT_FILTER_BY_CHOOSE_PID, (CObject*)&selectIdTypeList );
858+ OnUpdate (this , VIEW_UPDATE_HINT_FILTER_BY_CHOOSE_PID, (CObject*)&selectIdTypeList );
844859 _GotoSpecialLine (nCurSelectLine);
845860 }
846861}
847862
848863void CLogItemView::OnDetailSelectCurrentTid () {
849864 int oldSelectIndex = 0 ;
850- MachinePIdTIdType selectedIdType ;
851- if (-1 != (oldSelectIndex = _GetSelectedIdTypeValue (selectedIdType ))) {
865+ MachinePIdTIdTypeList selectIdTypeList ;
866+ if (-1 != (oldSelectIndex = _GetSelectedIdTypeValue (selectIdTypeList ))) {
852867 CLogManager& logManager = GetDocument ()->m_FTLogManager ;
853868
854869 UINT nCurSelectLine = _GetCurrentFirstSelectLine ();
855- logManager.OnlySelectSpecialItems (selectedIdType , ONLY_SELECT_TYPE::ostThreadId);
856- GetDocument ()->UpdateAllViews (this , VIEW_UPDATE_HINT_FILTER_BY_CHOOSE_TID, (CObject*)&selectedIdType );
857- OnUpdate (this , VIEW_UPDATE_HINT_FILTER_BY_CHOOSE_TID, (CObject*)&selectedIdType );
870+ logManager.OnlySelectSpecialItems (selectIdTypeList , ONLY_SELECT_TYPE::ostThreadId);
871+ GetDocument ()->UpdateAllViews (this , VIEW_UPDATE_HINT_FILTER_BY_CHOOSE_TID, (CObject*)&selectIdTypeList );
872+ OnUpdate (this , VIEW_UPDATE_HINT_FILTER_BY_CHOOSE_TID, (CObject*)&selectIdTypeList );
858873 _GotoSpecialLine (nCurSelectLine);
859874 }
860875}
861876
877+
862878BOOL CLogItemView::OnEraseBkgnd (CDC* pDC)
863879{
864880// 减少闪烁
0 commit comments