symlist: uses new TCEProcess

see b911e10e93
This commit is contained in:
Basile Burg 2015-07-15 14:28:57 +02:00
parent b911e10e93
commit 9bb01032b6
1 changed files with 5 additions and 17 deletions

View File

@ -7,7 +7,7 @@ interface
uses uses
Classes, SysUtils, TreeFilterEdit, Forms, Controls, Graphics, ExtCtrls, Menus, Classes, SysUtils, TreeFilterEdit, Forms, Controls, Graphics, ExtCtrls, Menus,
ComCtrls, ce_widget, jsonparser, process, actnlist, Buttons, Clipbrd, LCLProc, ComCtrls, ce_widget, jsonparser, process, actnlist, Buttons, Clipbrd, LCLProc,
ce_common, ce_observer, ce_synmemo, ce_interfaces, ce_writableComponent; ce_common, ce_observer, ce_synmemo, ce_interfaces, ce_writableComponent, ce_processes;
type type
@ -116,7 +116,7 @@ type
fOptions: TCESymbolListOptions; fOptions: TCESymbolListOptions;
fSyms: TSymbolList; fSyms: TSymbolList;
fMsgs: ICEMessagesDisplay; fMsgs: ICEMessagesDisplay;
fToolProc: TCheckedAsyncProcess; fToolProc: TCEProcess;
fActCopyIdent: TAction; fActCopyIdent: TAction;
fActRefresh: TAction; fActRefresh: TAction;
fActRefreshOnChange: TAction; fActRefreshOnChange: TAction;
@ -131,7 +131,6 @@ type
fSmartFilter: boolean; fSmartFilter: boolean;
fAutoExpandErrors: boolean; fAutoExpandErrors: boolean;
fSortSymbols: boolean; fSortSymbols: boolean;
fToolOutput: TMemoryStream;
ndAlias, ndClass, ndEnum, ndFunc, ndUni: TTreeNode; ndAlias, ndClass, ndEnum, ndFunc, ndUni: TTreeNode;
ndImp, ndIntf, ndMix, ndStruct, ndTmp: TTreeNode; ndImp, ndIntf, ndMix, ndStruct, ndTmp: TTreeNode;
ndVar, ndWarn, ndErr: TTreeNode; ndVar, ndWarn, ndErr: TTreeNode;
@ -147,7 +146,6 @@ type
// //
procedure checkIfHasToolExe; procedure checkIfHasToolExe;
procedure callToolProc; procedure callToolProc;
procedure toolOutputData(sender: TObject);
procedure toolTerminated(sender: TObject); procedure toolTerminated(sender: TObject);
// //
procedure docNew(aDoc: TCESynMemo); procedure docNew(aDoc: TCESynMemo);
@ -350,7 +348,6 @@ begin
inherited; inherited;
// allow empty name if owner is nil // allow empty name if owner is nil
fSyms := TSymbolList.create(nil); fSyms := TSymbolList.create(nil);
fToolOutput := TMemoryStream.create;
// //
fOptions := TCESymbolListOptions.Create(self); fOptions := TCESymbolListOptions.Create(self);
fOptions.Name:= 'symbolListOptions'; fOptions.Name:= 'symbolListOptions';
@ -392,7 +389,6 @@ begin
EntitiesConnector.removeObserver(self); EntitiesConnector.removeObserver(self);
// //
killProcess(fToolProc); killProcess(fToolProc);
fToolOutput.free;
fSyms.Free; fSyms.Free;
// //
fOptions.saveToFile(getCoeditDocPath + OptsFname); fOptions.saveToFile(getCoeditDocPath + OptsFname);
@ -665,12 +661,11 @@ begin
// standard process options // standard process options
killProcess(fToolProc); killProcess(fToolProc);
fToolProc := TCheckedAsyncProcess.Create(nil); fToolProc := TCEProcess.Create(nil);
fToolProc.ShowWindow := swoHIDE; fToolProc.ShowWindow := swoHIDE;
fToolProc.Options := [poUsePipes]; fToolProc.Options := [poUsePipes];
fToolProc.Executable := exeFullName(toolExeName); fToolProc.Executable := exeFullName(toolExeName);
fToolProc.OnTerminate := @toolTerminated; fToolProc.OnTerminate := @toolTerminated;
fToolProc.OnReadData := @toolOutputData;
fToolProc.CurrentDirectory := ExtractFileDir(Application.ExeName); fToolProc.CurrentDirectory := ExtractFileDir(Application.ExeName);
// focused source // focused source
@ -683,11 +678,6 @@ begin
fToolProc.Execute; fToolProc.Execute;
end; end;
procedure TCESymbolListWidget.toolOutputData(sender: TObject);
begin
processOutputToStream(TProcess(sender), fToolOutput);
end;
procedure TCESymbolListWidget.toolTerminated(sender: TObject); procedure TCESymbolListWidget.toolTerminated(sender: TObject);
// //
function getCatNode(node: TTreeNode; stype: TSymbolType ): TTreeNode; function getCatNode(node: TTreeNode; stype: TSymbolType ): TTreeNode;
@ -754,12 +744,10 @@ begin
updateVisibleCat; updateVisibleCat;
if fDoc = nil then exit; if fDoc = nil then exit;
// //
processOutputToStream(TProcess(sender), fToolOutput);
fToolOutput.Position := 0;
fSyms.LoadFromTool(fToolOutput);
fToolProc.OnTerminate := nil; fToolProc.OnTerminate := nil;
fToolProc.OnReadData := nil; fToolProc.OnReadData := nil;
fToolOutput.Clear; fToolProc.OutputStack.Position:=0;
fSyms.LoadFromTool(fToolProc.OutputStack);
// //
tree.BeginUpdate; tree.BeginUpdate;
for i := 0 to fSyms.symbols.Count-1 do for i := 0 to fSyms.symbols.Count-1 do