todo list: uses new TCEProcess

see b911e10e93
This commit is contained in:
Basile Burg 2015-07-15 14:35:39 +02:00
parent 6ece0bf0aa
commit 1e4650dccc
1 changed files with 6 additions and 19 deletions

View File

@ -7,7 +7,7 @@ interface
uses
Classes, SysUtils, FileUtil, ListFilterEdit, Forms, Controls,
strutils, Graphics, Dialogs, ExtCtrls, Menus, Buttons, ComCtrls,
ce_widget, process, ce_common, ce_interfaces, ce_synmemo,
ce_widget, process, ce_common, ce_interfaces, ce_synmemo, ce_processes,
ce_nativeproject, ce_symstring, ce_writableComponent, ce_observer;
type
@ -79,12 +79,11 @@ type
procedure handleListClick(Sender: TObject);
procedure mnuAutoRefreshClick(Sender: TObject);
private
fToolOutput: TMemoryStream;
fAutoRefresh: Boolean;
fSingleClick: Boolean;
fProj: TCENativeProject;
fDoc: TCESynMemo;
fToolProc: TCheckedAsyncProcess;
fToolProc: TCEProcess;
fTodos: TTodoItems;
fMsgs: ICEMessagesDisplay;
fOptions: TCETodoOptions;
@ -110,7 +109,6 @@ type
procedure killToolProcess;
procedure callToolProcess;
procedure toolTerminated(Sender: TObject);
procedure toolOutputData(Sender: TObject);
procedure procOutputDbg(Sender: TObject);
procedure clearTodoList;
procedure fillTodoList;
@ -199,7 +197,6 @@ var
begin
inherited;
//
fToolOutput := TMemoryStream.Create;
fOptions := TCETodoOptions.Create(self);
fOptions.autoRefresh := True;
fOptions.Name := 'todolistOptions';
@ -237,7 +234,6 @@ destructor TCETodoListWidget.Destroy;
begin
fOptions.saveToFile(getCoeditDocPath + OptFname);
killToolProcess;
fToolOutput.Free;
inherited;
end;
@ -419,13 +415,12 @@ begin
//
killToolProcess;
// process parameter
fToolProc := TCheckedAsyncProcess.Create(nil);
fToolProc := TCEProcess.Create(nil);
fToolProc.Executable := exeFullName(ToolExeName);
fToolProc.Options := [poUsePipes];
fToolProc.ShowWindow := swoHIDE;
fToolProc.CurrentDirectory := ExtractFileDir(Application.ExeName);
fToolProc.OnTerminate := @toolTerminated;
fToolProc.OnReadData := @toolOutputData;
// files passed to the tool argument
if ctxt = tcProject then
@ -458,22 +453,14 @@ begin
end;
end;
procedure TCETodoListWidget.toolOutputData(Sender: TObject);
begin
processOutputToStream(fToolProc, fToolOutput);
end;
procedure TCETodoListWidget.toolTerminated(Sender: TObject);
begin
processOutputToStream(fToolProc, fToolOutput);
fToolOutput.Position := 0;
//TODO-cbugfix: UTF chars in TODO comments bug either in the widget or the tool, symptom: empty todo list, conditions: to determine.
//fToolOutput.SaveToFile('C:\cetodo_widgetside.txt');
fTodos.loadFromTxtStream(fToolOutput);
fToolProc.OutputStack.Position := 0;
fTodos.loadFromTxtStream(fToolProc.OutputStack);
fillTodoList;
fToolProc.OnTerminate := nil;
fToolProc.OnReadData := nil;
fToolOutput.Clear;
end;
procedure TCETodoListWidget.clearTodoList;