IDE: fixed crash popup menu unhide msg type

git-svn-id: trunk@45110 -
This commit is contained in:
mattias 2014-05-20 11:46:21 +00:00
parent 6907de1248
commit 9df573888e

View File

@ -471,9 +471,9 @@ var
MsgQuickFixMenuSection: TIDEMenuSection; MsgQuickFixMenuSection: TIDEMenuSection;
MsgClearMenuItem: TIDEMenuCommand; MsgClearMenuItem: TIDEMenuCommand;
MsgHideMsgOfTypeMenuItem: TIDEMenuCommand; MsgHideMsgOfTypeMenuItem: TIDEMenuCommand;
MsgUnhideMsgTypeMenuSection: TIDEMenuSection; MsgUnhideMsgTypesMenuSection: TIDEMenuSection;
MsgUnhideMsgOfTypeMenuSection: TIDEMenuSection; MsgUnhideMsgOneTypeMenuSection: TIDEMenuSection;
MsgClearHideMsgTypesMenuItem: TIDEMenuCommand; MsgUnhideAllMsgTypesMenuItem: TIDEMenuCommand;
MsgHideBelowMenuSection: TIDEMenuSection; MsgHideBelowMenuSection: TIDEMenuSection;
MsgHideWarningsMenuItem: TIDEMenuCommand; MsgHideWarningsMenuItem: TIDEMenuCommand;
MsgHideNotesMenuItem: TIDEMenuCommand; MsgHideNotesMenuItem: TIDEMenuCommand;
@ -519,12 +519,12 @@ begin
MsgQuickFixMenuSection := RegisterIDEMenuSection(Root, 'Quick Fix'); MsgQuickFixMenuSection := RegisterIDEMenuSection(Root, 'Quick Fix');
MsgClearMenuItem := RegisterIDEMenuCommand(Root, 'Clear', 'Clear'); MsgClearMenuItem := RegisterIDEMenuCommand(Root, 'Clear', 'Clear');
MsgHideMsgOfTypeMenuItem:=RegisterIDEMenuCommand(Root,'HideMsgOfType',''); MsgHideMsgOfTypeMenuItem:=RegisterIDEMenuCommand(Root,'HideMsgOfType','');
MsgUnhideMsgTypeMenuSection:=RegisterIDEMenuSection(Root,'UnhideMsgType'); MsgUnhideMsgTypesMenuSection:=RegisterIDEMenuSection(Root,'UnhideMsgType');
Parent:=MsgUnhideMsgTypeMenuSection; Parent:=MsgUnhideMsgTypesMenuSection;
Parent.ChildsAsSubMenu:=true; Parent.ChildsAsSubMenu:=true;
Parent.Caption:='Unhide message type'; Parent.Caption:='Unhide message type';
MsgUnhideMsgOfTypeMenuSection:=RegisterIDEMenuSection(Parent,'UnhideMsgOfTypeSection'); MsgUnhideMsgOneTypeMenuSection:=RegisterIDEMenuSection(Parent,'UnhideMsgOfTypeSection');
MsgClearHideMsgTypesMenuItem:=RegisterIDEMenuCommand(Parent,'Unhide all','Unhide all'); MsgUnhideAllMsgTypesMenuItem:=RegisterIDEMenuCommand(Parent,'Unhide all','Unhide all');
MsgHideBelowMenuSection:=RegisterIDEMenuSection(Root,'Hide Below Section'); MsgHideBelowMenuSection:=RegisterIDEMenuSection(Root,'Hide Below Section');
Parent:=MsgHideBelowMenuSection; Parent:=MsgHideBelowMenuSection;
Parent.ChildsAsSubMenu:=true; Parent.ChildsAsSubMenu:=true;
@ -2580,7 +2580,7 @@ function TMessagesCtrl.GetHeaderText(View: TLMsgWndView): string;
begin begin
Result:=View.Caption; Result:=View.Caption;
if View.SummaryMsg<>'' then if View.SummaryMsg<>'' then
Result+=', '+View.SummaryMsg; Result+=': '+View.SummaryMsg;
if mcoShowStats in Options then begin if mcoShowStats in Options then begin
Result+=GetStats(View.Lines); Result+=GetStats(View.Lines);
end; end;
@ -2930,16 +2930,18 @@ procedure TMessagesFrame.MsgCtrlPopupMenuPopup(Sender: TObject);
HideItem: TLMVFilterHideMsgType; HideItem: TLMVFilterHideMsgType;
i: Integer; i: Integer;
Item: TIDEMenuCommand; Item: TIDEMenuCommand;
Cnt: Integer;
begin begin
// create one menuitem per filter item // create one menuitem per filter item
MsgUnhideMsgTypeMenuSection.Visible:=MessagesCtrl.ActiveFilter.HideMsgTypeCount>0; Cnt:=MessagesCtrl.ActiveFilter.HideMsgTypeCount;
for i:=0 to MessagesCtrl.ActiveFilter.HideMsgTypeCount-1 do begin MsgUnhideMsgTypesMenuSection.Visible:=Cnt>0;
if i>=MsgUnhideMsgOfTypeMenuSection.Count then begin for i:=0 to Cnt-1 do begin
Item:=RegisterIDEMenuCommand(MsgUnhideMsgOfTypeMenuSection,'MsgUnhideOfType'+IntToStr(i),''); if i>=MsgUnhideMsgOneTypeMenuSection.Count then begin
Item:=RegisterIDEMenuCommand(MsgUnhideMsgOneTypeMenuSection,'MsgUnhideOfType'+IntToStr(i),'');
Item.Tag:=i; Item.Tag:=i;
Item.OnClick:=@UnhideMsgTypeClick; Item.OnClick:=@UnhideMsgTypeClick;
end else end else
Item:=MsgUnhideMsgTypeMenuSection.Items[i] as TIDEMenuCommand; Item:=MsgUnhideMsgOneTypeMenuSection.Items[i] as TIDEMenuCommand;
HideItem:=MessagesCtrl.ActiveFilter.HideMsgTypes[i]; HideItem:=MessagesCtrl.ActiveFilter.HideMsgTypes[i];
s:=HideItem.SubTool; s:=HideItem.SubTool;
if HideItem.MsgID<>0 then if HideItem.MsgID<>0 then
@ -2950,10 +2952,9 @@ procedure TMessagesFrame.MsgCtrlPopupMenuPopup(Sender: TObject);
Item.Caption:=s; Item.Caption:=s;
end; end;
// delete old menu items // delete old menu items
i:=MessagesCtrl.ActiveFilter.HideMsgTypeCount; while MsgUnhideMsgOneTypeMenuSection.Count>Cnt do
while MsgUnhideMsgTypeMenuSection.Count>i do MsgUnhideMsgOneTypeMenuSection[MsgUnhideMsgOneTypeMenuSection.Count-1].Free;
MsgUnhideMsgTypeMenuSection[i].Free; MsgUnhideAllMsgTypesMenuItem.OnClick:=@ClearHideMsgTypesMenuItemClick;
MsgClearHideMsgTypesMenuItem.OnClick:=@ClearHideMsgTypesMenuItemClick;
end; end;
procedure UpdateFilterItems; procedure UpdateFilterItems;