From cad8a59a9406bbe8e2906172fb45a24e19c2d5ed Mon Sep 17 00:00:00 2001 From: Basile Burg <basile.b@gmx.com> Date: Fri, 10 Aug 2018 00:55:24 +0200 Subject: [PATCH] libman, remove deactivated or deleted entries from dcd --- src/ce_libman.pas | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/ce_libman.pas b/src/ce_libman.pas index 52a399e1..6e63236b 100644 --- a/src/ce_libman.pas +++ b/src/ce_libman.pas @@ -455,23 +455,31 @@ end; procedure TLibraryManager.updateDCD; var itm: TLibraryItem; - str: TStringList; + add: TStringList; + rem: TStringList; i: Integer; begin - if not DcdWrapper.available then exit; - // note: new libraries are directly handled but those who are removed - // remain in cache until next session. - str := TStringList.Create; + if not DcdWrapper.available then + exit; + + add := TStringList.Create; + rem := TStringList.Create; try for i := 0 to fCollection.Count-1 do begin itm := TLibraryItem(fCollection.Items[i]); if itm.enabled then - str.Add(itm.libSourcePath); + add.Add(itm.libSourcePath) + else + rem.Add(itm.libSourcePath); end; - DcdWrapper.addImportFolders(str); + if add.Count > 0 then + DcdWrapper.addImportFolders(add); + if rem.Count > 0 then + DCDWrapper.remImportFolders(rem); finally - str.Free; + add.Free; + rem.Free; end; end;