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 uses
Classes, SysUtils, FileUtil, ListFilterEdit, Forms, Controls, Classes, SysUtils, FileUtil, ListFilterEdit, Forms, Controls,
strutils, Graphics, Dialogs, ExtCtrls, Menus, Buttons, ComCtrls, 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; ce_nativeproject, ce_symstring, ce_writableComponent, ce_observer;
type type
@ -79,12 +79,11 @@ type
procedure handleListClick(Sender: TObject); procedure handleListClick(Sender: TObject);
procedure mnuAutoRefreshClick(Sender: TObject); procedure mnuAutoRefreshClick(Sender: TObject);
private private
fToolOutput: TMemoryStream;
fAutoRefresh: Boolean; fAutoRefresh: Boolean;
fSingleClick: Boolean; fSingleClick: Boolean;
fProj: TCENativeProject; fProj: TCENativeProject;
fDoc: TCESynMemo; fDoc: TCESynMemo;
fToolProc: TCheckedAsyncProcess; fToolProc: TCEProcess;
fTodos: TTodoItems; fTodos: TTodoItems;
fMsgs: ICEMessagesDisplay; fMsgs: ICEMessagesDisplay;
fOptions: TCETodoOptions; fOptions: TCETodoOptions;
@ -110,7 +109,6 @@ type
procedure killToolProcess; procedure killToolProcess;
procedure callToolProcess; procedure callToolProcess;
procedure toolTerminated(Sender: TObject); procedure toolTerminated(Sender: TObject);
procedure toolOutputData(Sender: TObject);
procedure procOutputDbg(Sender: TObject); procedure procOutputDbg(Sender: TObject);
procedure clearTodoList; procedure clearTodoList;
procedure fillTodoList; procedure fillTodoList;
@ -199,7 +197,6 @@ var
begin begin
inherited; inherited;
// //
fToolOutput := TMemoryStream.Create;
fOptions := TCETodoOptions.Create(self); fOptions := TCETodoOptions.Create(self);
fOptions.autoRefresh := True; fOptions.autoRefresh := True;
fOptions.Name := 'todolistOptions'; fOptions.Name := 'todolistOptions';
@ -237,7 +234,6 @@ destructor TCETodoListWidget.Destroy;
begin begin
fOptions.saveToFile(getCoeditDocPath + OptFname); fOptions.saveToFile(getCoeditDocPath + OptFname);
killToolProcess; killToolProcess;
fToolOutput.Free;
inherited; inherited;
end; end;
@ -419,13 +415,12 @@ begin
// //
killToolProcess; killToolProcess;
// process parameter // process parameter
fToolProc := TCheckedAsyncProcess.Create(nil); fToolProc := TCEProcess.Create(nil);
fToolProc.Executable := exeFullName(ToolExeName); fToolProc.Executable := exeFullName(ToolExeName);
fToolProc.Options := [poUsePipes]; fToolProc.Options := [poUsePipes];
fToolProc.ShowWindow := swoHIDE; fToolProc.ShowWindow := swoHIDE;
fToolProc.CurrentDirectory := ExtractFileDir(Application.ExeName); fToolProc.CurrentDirectory := ExtractFileDir(Application.ExeName);
fToolProc.OnTerminate := @toolTerminated; fToolProc.OnTerminate := @toolTerminated;
fToolProc.OnReadData := @toolOutputData;
// files passed to the tool argument // files passed to the tool argument
if ctxt = tcProject then if ctxt = tcProject then
@ -458,22 +453,14 @@ begin
end; end;
end; end;
procedure TCETodoListWidget.toolOutputData(Sender: TObject);
begin
processOutputToStream(fToolProc, fToolOutput);
end;
procedure TCETodoListWidget.toolTerminated(Sender: TObject); procedure TCETodoListWidget.toolTerminated(Sender: TObject);
begin 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. //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; fillTodoList;
fToolProc.OnTerminate := nil; fToolProc.OnTerminate := nil;
fToolProc.OnReadData := nil;
fToolOutput.Clear;
end; end;
procedure TCETodoListWidget.clearTodoList; procedure TCETodoListWidget.clearTodoList;