messages, bulk update

This commit is contained in:
Basile Burg 2015-05-26 13:54:57 +02:00
parent 42b608d5f1
commit f6aab96968
1 changed files with 8 additions and 0 deletions

View File

@ -585,6 +585,7 @@ var
i: Integer; i: Integer;
msgdt: PMessageData; msgdt: PMessageData;
begin begin
list.BeginUpdate;
if aCtxt = amcAll then if aCtxt = amcAll then
List.Items.Clear List.Items.Clear
else for i := List.Items.Count-1 downto 0 do else for i := List.Items.Count-1 downto 0 do
@ -593,6 +594,7 @@ begin
if msgdt^.ctxt = aCtxt then if msgdt^.ctxt = aCtxt then
List.Items.Delete(List.Items[i]); List.Items.Delete(List.Items[i]);
end; end;
list.EndUpdate;
end; end;
procedure TCEMessagesWidget.clearByData(aData: Pointer); procedure TCEMessagesWidget.clearByData(aData: Pointer);
@ -602,12 +604,14 @@ var
begin begin
if aData = nil then if aData = nil then
exit; exit;
list.BeginUpdate;
for i := List.Items.Count-1 downto 0 do for i := List.Items.Count-1 downto 0 do
begin begin
msgdt := PMessageData(List.Items[i].Data); msgdt := PMessageData(List.Items[i].Data);
if (msgdt^.data = aData) then if (msgdt^.data = aData) then
List.Items.Delete(List.Items[i]); List.Items.Delete(List.Items[i]);
end; end;
list.EndUpdate;
end; end;
{$ENDREGION} {$ENDREGION}
@ -626,8 +630,10 @@ end;
procedure TCEMessagesWidget.clearOutOfRangeMessg; procedure TCEMessagesWidget.clearOutOfRangeMessg;
begin begin
list.BeginUpdate;
while List.Items.Count > fMaxMessCnt do while List.Items.Count > fMaxMessCnt do
List.Items.Delete(List.Items.GetFirstNode); List.Items.Delete(List.Items.GetFirstNode);
list.EndUpdate;
end; end;
procedure TCEMessagesWidget.scrollToBack; procedure TCEMessagesWidget.scrollToBack;
@ -664,6 +670,7 @@ var
begin begin
if updating then if updating then
exit; exit;
List.BeginUpdate;
for i := 0 to List.Items.Count-1 do for i := 0 to List.Items.Count-1 do
begin begin
itm := List.Items[i]; itm := List.Items[i];
@ -679,6 +686,7 @@ begin
amcMisc: itm.Visible := aCtxt = amcMisc; amcMisc: itm.Visible := aCtxt = amcMisc;
end; end;
end; end;
list.EndUpdate;
end; end;
function guessMessageKind(const aMessg: string): TCEAppMessageKind; function guessMessageKind(const aMessg: string): TCEAppMessageKind;