mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-06 01:06:01 +02:00
IDE: clean up old external tools
git-svn-id: trunk@45942 -
This commit is contained in:
parent
2a1a95199f
commit
abaf3fb59c
3
.gitattributes
vendored
3
.gitattributes
vendored
@ -5468,8 +5468,6 @@ ide/modematrixopts.pas svneol=native#text/plain
|
|||||||
ide/mouseactiondialog.lfm svneol=native#text/plain
|
ide/mouseactiondialog.lfm svneol=native#text/plain
|
||||||
ide/mouseactiondialog.pas svneol=native#text/pascal
|
ide/mouseactiondialog.pas svneol=native#text/pascal
|
||||||
ide/msgquickfixes.pas svneol=native#text/plain
|
ide/msgquickfixes.pas svneol=native#text/plain
|
||||||
ide/msgview.lfm svneol=native#text/plain
|
|
||||||
ide/msgview.pp svneol=native#text/pascal
|
|
||||||
ide/msgvieweditor.lfm svneol=native#text/plain
|
ide/msgvieweditor.lfm svneol=native#text/plain
|
||||||
ide/msgvieweditor.pas svneol=native#text/pascal
|
ide/msgvieweditor.pas svneol=native#text/pascal
|
||||||
ide/multireplacedlg.lfm svneol=native#text/plain
|
ide/multireplacedlg.lfm svneol=native#text/plain
|
||||||
@ -5479,7 +5477,6 @@ ide/newdialog.pas svneol=native#text/pascal
|
|||||||
ide/newprojectdlg.lfm svneol=native#text/plain
|
ide/newprojectdlg.lfm svneol=native#text/plain
|
||||||
ide/newprojectdlg.pp svneol=native#text/pascal
|
ide/newprojectdlg.pp svneol=native#text/pascal
|
||||||
ide/objectlists.pas svneol=native#text/pascal
|
ide/objectlists.pas svneol=native#text/pascal
|
||||||
ide/outputfilter.pas svneol=native#text/pascal
|
|
||||||
ide/patheditordlg.lfm svneol=native#text/pascal
|
ide/patheditordlg.lfm svneol=native#text/pascal
|
||||||
ide/patheditordlg.pas svneol=native#text/pascal
|
ide/patheditordlg.pas svneol=native#text/pascal
|
||||||
ide/procedurelist.lfm svneol=native#text/plain
|
ide/procedurelist.lfm svneol=native#text/plain
|
||||||
|
@ -50,10 +50,7 @@ uses
|
|||||||
CodeToolManager,
|
CodeToolManager,
|
||||||
// IDEIntf
|
// IDEIntf
|
||||||
LazIDEIntf, IDEMsgIntf, IDEHelpIntf, IDEImagesIntf, IDEWindowIntf, IDEDialogs,
|
LazIDEIntf, IDEMsgIntf, IDEHelpIntf, IDEImagesIntf, IDEWindowIntf, IDEDialogs,
|
||||||
PackageIntf,
|
PackageIntf, IDEExternToolIntf,
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
IDEExternToolIntf,
|
|
||||||
{$ENDIF}
|
|
||||||
// IDE
|
// IDE
|
||||||
LazarusIDEStrConsts, TransferMacros, LazConf, IDEProcs, DialogProcs,
|
LazarusIDEStrConsts, TransferMacros, LazConf, IDEProcs, DialogProcs,
|
||||||
MainBar, ExtToolEditDlg, EnvironmentOpts,
|
MainBar, ExtToolEditDlg, EnvironmentOpts,
|
||||||
@ -190,9 +187,6 @@ type
|
|||||||
// This is used by MakeLazarus and SaveIDEMakeOptions
|
// This is used by MakeLazarus and SaveIDEMakeOptions
|
||||||
function CreateIDEMakeOptions(Flags: TBuildLazarusFlags): TModalResult;
|
function CreateIDEMakeOptions(Flags: TBuildLazarusFlags): TModalResult;
|
||||||
public
|
public
|
||||||
{$IFDEF EnableOldExtTools}
|
|
||||||
ExternalTools: TBaseExternalToolList;
|
|
||||||
{$ENDIF}
|
|
||||||
constructor Create;
|
constructor Create;
|
||||||
function ShowConfigureBuildLazarusDlg(AProfiles: TBuildLazarusProfiles): TModalResult;
|
function ShowConfigureBuildLazarusDlg(AProfiles: TBuildLazarusProfiles): TModalResult;
|
||||||
function MakeLazarus(Profile: TBuildLazarusProfile; Flags: TBuildLazarusFlags): TModalResult;
|
function MakeLazarus(Profile: TBuildLazarusProfile; Flags: TBuildLazarusFlags): TModalResult;
|
||||||
@ -373,11 +367,7 @@ end;
|
|||||||
function TLazarusBuilder.MakeLazarus(Profile: TBuildLazarusProfile;
|
function TLazarusBuilder.MakeLazarus(Profile: TBuildLazarusProfile;
|
||||||
Flags: TBuildLazarusFlags): TModalResult;
|
Flags: TBuildLazarusFlags): TModalResult;
|
||||||
var
|
var
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
Tool: TAbstractExternalTool;
|
Tool: TAbstractExternalTool;
|
||||||
{$ELSE}
|
|
||||||
Tool: TExternalToolOptions;
|
|
||||||
{$ENDIF}
|
|
||||||
Executable, CmdLineParams, Cmd: String;
|
Executable, CmdLineParams, Cmd: String;
|
||||||
EnvironmentOverrides: TStringList;
|
EnvironmentOverrides: TStringList;
|
||||||
|
|
||||||
@ -392,7 +382,6 @@ var
|
|||||||
Params:=Cmd+' '+Params
|
Params:=Cmd+' '+Params
|
||||||
else
|
else
|
||||||
Params:=Cmd;
|
Params:=Cmd;
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
Tool:=ExternalToolList.Add(CurTitle);
|
Tool:=ExternalToolList.Add(CurTitle);
|
||||||
Tool.Reference(Self,ClassName);
|
Tool.Reference(Self,ClassName);
|
||||||
try
|
try
|
||||||
@ -411,18 +400,6 @@ var
|
|||||||
finally
|
finally
|
||||||
Tool.Release(Self);
|
Tool.Release(Self);
|
||||||
end;
|
end;
|
||||||
{$ELSE}
|
|
||||||
if Tool=nil then
|
|
||||||
Tool:=TExternalToolOptions.Create;
|
|
||||||
Tool.Title:=CurTitle;
|
|
||||||
Tool.Filename:=Executable;
|
|
||||||
Tool.WorkingDirectory:=fWorkingDir;
|
|
||||||
Tool.ScanOutputForFPCMessages:=true;
|
|
||||||
Tool.ScanOutputForMakeMessages:=true;
|
|
||||||
Tool.CmdLineParams:=Params;
|
|
||||||
Tool.EnvironmentOverrides.Assign(EnvironmentOverrides);
|
|
||||||
Result:=ExternalTools.Run(Tool,fMacros,false);
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -523,9 +500,6 @@ begin
|
|||||||
Result:=mrOk;
|
Result:=mrOk;
|
||||||
finally
|
finally
|
||||||
EnvironmentOverrides.Free;
|
EnvironmentOverrides.Free;
|
||||||
{$IFDEF EnableOldExtTools}
|
|
||||||
Tool.Free;
|
|
||||||
{$ENDIF}
|
|
||||||
if LazarusIDE<>nil then
|
if LazarusIDE<>nil then
|
||||||
LazarusIDE.MainBarSubTitle:='';
|
LazarusIDE.MainBarSubTitle:='';
|
||||||
end;
|
end;
|
||||||
@ -734,22 +708,14 @@ begin
|
|||||||
if not (Result in [mrOk,mrIgnore]) then begin
|
if not (Result in [mrOk,mrIgnore]) then begin
|
||||||
debugln(['CreateAppleBundle CreateApplicationBundle failed']);
|
debugln(['CreateAppleBundle CreateApplicationBundle failed']);
|
||||||
if IDEMessagesWindow<>nil then
|
if IDEMessagesWindow<>nil then
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
IDEMessagesWindow.AddCustomMessage(mluError,'to create application bundle '+BundleDir);
|
IDEMessagesWindow.AddCustomMessage(mluError,'to create application bundle '+BundleDir);
|
||||||
{$ELSE}
|
|
||||||
IDEMessagesWindow.AddMsg('Error: failed to create application bundle '+BundleDir,fTargetDir,-1);
|
|
||||||
{$ENDIF}
|
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
Result:=CreateAppBundleSymbolicLink(fTargetFilename);
|
Result:=CreateAppBundleSymbolicLink(fTargetFilename);
|
||||||
if not (Result in [mrOk,mrIgnore]) then begin
|
if not (Result in [mrOk,mrIgnore]) then begin
|
||||||
debugln(['CreateAppleBundle CreateAppBundleSymbolicLink failed']);
|
debugln(['CreateAppleBundle CreateAppBundleSymbolicLink failed']);
|
||||||
if IDEMessagesWindow<>nil then
|
if IDEMessagesWindow<>nil then
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
IDEMessagesWindow.AddCustomMessage(mluError,'failed to create application bundle symlink to '+fTargetFilename);
|
IDEMessagesWindow.AddCustomMessage(mluError,'failed to create application bundle symlink to '+fTargetFilename);
|
||||||
{$ELSE}
|
|
||||||
IDEMessagesWindow.AddMsg('Error: failed to create application bundle symlink to '+fTargetFilename,fTargetDir,-1);
|
|
||||||
{$ENDIF}
|
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -42,20 +42,13 @@ uses
|
|||||||
ExprEval, BasicCodeTools, CodeToolManager, DefineTemplates, CodeCache,
|
ExprEval, BasicCodeTools, CodeToolManager, DefineTemplates, CodeCache,
|
||||||
FileProcs, CodeToolsCfgScript, CodeToolsStructs,
|
FileProcs, CodeToolsCfgScript, CodeToolsStructs,
|
||||||
// IDEIntf
|
// IDEIntf
|
||||||
{$IFDEF EnableOldExtTools}
|
|
||||||
SrcEditorIntf,
|
|
||||||
{$ENDIF}
|
|
||||||
ProjectIntf, MacroIntf, IDEDialogs, IDEExternToolIntf,
|
ProjectIntf, MacroIntf, IDEDialogs, IDEExternToolIntf,
|
||||||
CompOptsIntf, LazIDEIntf, MacroDefIntf, IDEMsgIntf,
|
CompOptsIntf, LazIDEIntf, MacroDefIntf, IDEMsgIntf,
|
||||||
// IDE
|
// IDE
|
||||||
LazarusIDEStrConsts, DialogProcs, IDEProcs, CodeToolsOptions, InputHistory,
|
LazarusIDEStrConsts, DialogProcs, IDEProcs, CodeToolsOptions, InputHistory,
|
||||||
EditDefineTree, ProjectResources, MiscOptions, LazConf, EnvironmentOpts,
|
EditDefineTree, ProjectResources, MiscOptions, LazConf, EnvironmentOpts,
|
||||||
TransferMacros, CompilerOptions,
|
TransferMacros, CompilerOptions,
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
ExtTools, etMakeMsgParser, etFPCMsgParser,
|
ExtTools, etMakeMsgParser, etFPCMsgParser,
|
||||||
{$ELSE}
|
|
||||||
OutputFilter,
|
|
||||||
{$ENDIF}
|
|
||||||
Compiler, FPCSrcScan, PackageDefs, PackageSystem, Project, ProjectIcon,
|
Compiler, FPCSrcScan, PackageDefs, PackageSystem, Project, ProjectIcon,
|
||||||
ModeMatrixOpts, BaseBuildManager, ApplicationBundle;
|
ModeMatrixOpts, BaseBuildManager, ApplicationBundle;
|
||||||
|
|
||||||
@ -148,11 +141,6 @@ type
|
|||||||
function CTMacroFuncProjectUnitPath(Data: Pointer): boolean;
|
function CTMacroFuncProjectUnitPath(Data: Pointer): boolean;
|
||||||
function CTMacroFuncProjectIncPath(Data: Pointer): boolean;
|
function CTMacroFuncProjectIncPath(Data: Pointer): boolean;
|
||||||
function CTMacroFuncProjectSrcPath(Data: Pointer): boolean;
|
function CTMacroFuncProjectSrcPath(Data: Pointer): boolean;
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
{$ELSE}
|
|
||||||
function OnRunCompilerWithOptions(ExtTool: TIDEExternalToolOptions;
|
|
||||||
CompOptions: TBaseCompilerOptions): TModalResult;
|
|
||||||
{$ENDIF}
|
|
||||||
procedure OnProjectDestroy(Sender: TObject);
|
procedure OnProjectDestroy(Sender: TObject);
|
||||||
procedure SetUnitSetCache(const AValue: TFPCUnitSetCache);
|
procedure SetUnitSetCache(const AValue: TFPCUnitSetCache);
|
||||||
protected
|
protected
|
||||||
@ -177,9 +165,7 @@ type
|
|||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
procedure SetupTransferMacros;
|
procedure SetupTransferMacros;
|
||||||
procedure TranslateMacros;
|
procedure TranslateMacros;
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
procedure SetupExternalTools;
|
procedure SetupExternalTools;
|
||||||
{$ENDIF}
|
|
||||||
procedure SetupCompilerInterface;
|
procedure SetupCompilerInterface;
|
||||||
procedure SetupInputHistories;
|
procedure SetupInputHistories;
|
||||||
|
|
||||||
@ -243,9 +229,6 @@ type
|
|||||||
var
|
var
|
||||||
MainBuildBoss: TBuildManager = nil;
|
MainBuildBoss: TBuildManager = nil;
|
||||||
TheCompiler: TCompiler = nil;
|
TheCompiler: TCompiler = nil;
|
||||||
{$IFDEF EnableOldExtTools}
|
|
||||||
TheOutputFilter: TOutputFilter = nil;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
@ -337,9 +320,6 @@ begin
|
|||||||
FUnitSetChangeStamp:=TFPCUnitSetCache.GetInvalidChangeStamp;
|
FUnitSetChangeStamp:=TFPCUnitSetCache.GetInvalidChangeStamp;
|
||||||
|
|
||||||
OnBackupFileInteractive:=@BackupFile;
|
OnBackupFileInteractive:=@BackupFile;
|
||||||
{$IFDEF EnableOldExtTools}
|
|
||||||
RunCompilerWithOptions:=@OnRunCompilerWithOptions;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
GetBuildMacroValues:=@OnGetBuildMacroValues;
|
GetBuildMacroValues:=@OnGetBuildMacroValues;
|
||||||
OnAppendCustomOption:=@AppendMatrixCustomOption;
|
OnAppendCustomOption:=@AppendMatrixCustomOption;
|
||||||
@ -348,11 +328,7 @@ end;
|
|||||||
|
|
||||||
destructor TBuildManager.Destroy;
|
destructor TBuildManager.Destroy;
|
||||||
begin
|
begin
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
FreeAndNil(ExternalTools);
|
FreeAndNil(ExternalTools);
|
||||||
{$ELSE}
|
|
||||||
RunCompilerWithOptions:=nil;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
GetBuildMacroValues:=nil;
|
GetBuildMacroValues:=nil;
|
||||||
OnAppendCustomOption:=nil;
|
OnAppendCustomOption:=nil;
|
||||||
@ -508,7 +484,6 @@ begin
|
|||||||
tr('MakeFile',lisTMFunctionChompPathDelimiter);
|
tr('MakeFile',lisTMFunctionChompPathDelimiter);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
procedure TBuildManager.SetupExternalTools;
|
procedure TBuildManager.SetupExternalTools;
|
||||||
begin
|
begin
|
||||||
// setup the external tool queue
|
// setup the external tool queue
|
||||||
@ -519,16 +494,10 @@ begin
|
|||||||
|
|
||||||
FPCMsgFilePool:=TFPCMsgFilePool.Create(nil);
|
FPCMsgFilePool:=TFPCMsgFilePool.Create(nil);
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
procedure TBuildManager.SetupCompilerInterface;
|
procedure TBuildManager.SetupCompilerInterface;
|
||||||
begin
|
begin
|
||||||
TheCompiler := TCompiler.Create;
|
TheCompiler := TCompiler.Create;
|
||||||
{$IFDEF EnableOldExtTools}
|
|
||||||
with TheCompiler do begin
|
|
||||||
OutputFilter:=TheOutputFilter;
|
|
||||||
end;
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBuildManager.SetupInputHistories;
|
procedure TBuildManager.SetupInputHistories;
|
||||||
@ -1371,15 +1340,9 @@ function TBuildManager.CheckAmbiguousSources(const AFilename: string;
|
|||||||
begin
|
begin
|
||||||
Result:=mrOk;
|
Result:=mrOk;
|
||||||
if Compiling then begin
|
if Compiling then begin
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
IDEMessagesWindow.AddCustomMessage(mluError,
|
IDEMessagesWindow.AddCustomMessage(mluError,
|
||||||
Format('ambiguous file found: "%s". Source file is: "%s"',
|
Format('ambiguous file found: "%s". Source file is: "%s"',
|
||||||
[AmbiguousFilename, AFilename]));
|
[AmbiguousFilename, AFilename]));
|
||||||
{$ELSE}
|
|
||||||
TheOutputFilter.ReadConstLine(
|
|
||||||
Format(lisWarningAmbiguousFileFoundSourceFileIs,
|
|
||||||
[AmbiguousFilename, AFilename]), true);
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2275,20 +2238,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
{$ELSE EnableOldExtTools}
|
|
||||||
function TBuildManager.OnRunCompilerWithOptions(
|
|
||||||
ExtTool: TIDEExternalToolOptions; CompOptions: TBaseCompilerOptions): TModalResult;
|
|
||||||
begin
|
|
||||||
if SourceEditorManagerIntf<>nil then
|
|
||||||
SourceEditorManagerIntf.ClearErrorLines;
|
|
||||||
Result:=EnvironmentOptions.ExternalTools.Run(ExtTool,GlobalMacroList,false,
|
|
||||||
CompOptions);
|
|
||||||
if LazarusIDE<>nil then
|
|
||||||
LazarusIDE.DoCheckFilesOnDisk;
|
|
||||||
end;
|
|
||||||
{$Endif EnableOldExtTools}
|
|
||||||
|
|
||||||
procedure TBuildManager.SetUnitSetCache(const AValue: TFPCUnitSetCache);
|
procedure TBuildManager.SetUnitSetCache(const AValue: TFPCUnitSetCache);
|
||||||
begin
|
begin
|
||||||
if FUnitSetCache=AValue then exit;
|
if FUnitSetCache=AValue then exit;
|
||||||
|
@ -41,9 +41,6 @@ uses
|
|||||||
Dialogs, LazConfigStorage, Laz2_XMLCfg, LazUTF8,
|
Dialogs, LazConfigStorage, Laz2_XMLCfg, LazUTF8,
|
||||||
// IDEIntf
|
// IDEIntf
|
||||||
ProjectIntf, ObjectInspector, IDEWindowIntf, IDEOptionsIntf,
|
ProjectIntf, ObjectInspector, IDEWindowIntf, IDEOptionsIntf,
|
||||||
{$IFDEF EnableOldExtTools}
|
|
||||||
CompOptsIntf,
|
|
||||||
{$ENDIF}
|
|
||||||
ComponentReg, IDEExternToolIntf, IDEDialogs, MacroDefIntf,
|
ComponentReg, IDEExternToolIntf, IDEDialogs, MacroDefIntf,
|
||||||
DbgIntfDebuggerBase,
|
DbgIntfDebuggerBase,
|
||||||
// IDE
|
// IDE
|
||||||
@ -222,7 +219,6 @@ const
|
|||||||
);
|
);
|
||||||
|
|
||||||
{ External Tools - the user menu items in the Tools menu }
|
{ External Tools - the user menu items in the Tools menu }
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
type
|
type
|
||||||
TBaseExternalUserTools = class
|
TBaseExternalUserTools = class
|
||||||
public
|
public
|
||||||
@ -233,21 +229,6 @@ type
|
|||||||
TExternalUserToolsClass = class of TBaseExternalUserTools;
|
TExternalUserToolsClass = class of TBaseExternalUserTools;
|
||||||
var
|
var
|
||||||
ExternalUserToolsClass: TExternalUserToolsClass; // set by ExtToolEditDlg to TExternalUserTools
|
ExternalUserToolsClass: TExternalUserToolsClass; // set by ExtToolEditDlg to TExternalUserTools
|
||||||
{$ELSE}
|
|
||||||
type
|
|
||||||
TBaseExternalToolList = class(TList)
|
|
||||||
public
|
|
||||||
function Load(Config: TConfigStorage; const Path: string): TModalResult; virtual; abstract;
|
|
||||||
function Save(Config: TConfigStorage; const Path: string): TModalResult; virtual; abstract;
|
|
||||||
function Run(ExtTool: TIDEExternalToolOptions;
|
|
||||||
Macros: TTransferMacroList;
|
|
||||||
ShowAbort: boolean;
|
|
||||||
CompilerOptions: TLazCompilerOptions = nil): TModalResult; virtual; abstract;
|
|
||||||
end;
|
|
||||||
TExternalToolListClass = class of TBaseExternalToolList;
|
|
||||||
var
|
|
||||||
ExternalToolListClass: TExternalToolListClass; // set by ExtToolDialog
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
type
|
type
|
||||||
TEnvOptParseType = (
|
TEnvOptParseType = (
|
||||||
@ -362,9 +343,7 @@ type
|
|||||||
fMsgViewColors: array[TMsgWndColor] of TColor;
|
fMsgViewColors: array[TMsgWndColor] of TColor;
|
||||||
FShowCompileDialog: Boolean; // show dialog during compile
|
FShowCompileDialog: Boolean; // show dialog during compile
|
||||||
FAutoCloseCompileDialog: Boolean; // auto close dialog after succesed compile
|
FAutoCloseCompileDialog: Boolean; // auto close dialog after succesed compile
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
FMsgViewFilters: TLMsgViewFilters;
|
FMsgViewFilters: TLMsgViewFilters;
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
// compiler + debugger + lazarus files
|
// compiler + debugger + lazarus files
|
||||||
FParseValues: array[TEnvOptParseType] of TParseString;
|
FParseValues: array[TEnvOptParseType] of TParseString;
|
||||||
@ -417,12 +396,8 @@ type
|
|||||||
FBackupInfoOtherFiles: TBackupInfo;
|
FBackupInfoOtherFiles: TBackupInfo;
|
||||||
|
|
||||||
// external tools
|
// external tools
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
fExternalUserTools: TBaseExternalUserTools; // see ExtToolEditDlg.TExternalUserTools
|
fExternalUserTools: TBaseExternalUserTools; // see ExtToolEditDlg.TExternalUserTools
|
||||||
{$ELSE}
|
|
||||||
fExternalTools: TBaseExternalToolList;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
// naming conventions
|
// naming conventions
|
||||||
fPascalFileExtension: TPascalExtType;
|
fPascalFileExtension: TPascalExtType;
|
||||||
fCharcaseFileAction : TCharCaseFileAction;
|
fCharcaseFileAction : TCharCaseFileAction;
|
||||||
@ -712,12 +687,7 @@ type
|
|||||||
write FBackupInfoOtherFiles;
|
write FBackupInfoOtherFiles;
|
||||||
|
|
||||||
// external tools
|
// external tools
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
property ExternalToolMenuItems: TBaseExternalUserTools read fExternalUserTools;
|
property ExternalToolMenuItems: TBaseExternalUserTools read fExternalUserTools;
|
||||||
{$ELSE}
|
|
||||||
property ExternalTools: TBaseExternalToolList read fExternalTools
|
|
||||||
write fExternalTools;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
// naming conventions
|
// naming conventions
|
||||||
property PascalFileExtension: TPascalExtType read fPascalFileExtension
|
property PascalFileExtension: TPascalExtType read fPascalFileExtension
|
||||||
@ -754,9 +724,7 @@ type
|
|||||||
property MsgViewFilenameStyle: TMsgWndFileNameStyle read FMsgViewFilenameStyle
|
property MsgViewFilenameStyle: TMsgWndFileNameStyle read FMsgViewFilenameStyle
|
||||||
write FMsgViewFilenameStyle;
|
write FMsgViewFilenameStyle;
|
||||||
property MsgViewColors[c: TMsgWndColor]: TColor read GetMsgViewColors write SetMsgViewColors;
|
property MsgViewColors[c: TMsgWndColor]: TColor read GetMsgViewColors write SetMsgViewColors;
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
property MsgViewFilters: TLMsgViewFilters read FMsgViewFilters write FMsgViewFilters;
|
property MsgViewFilters: TLMsgViewFilters read FMsgViewFilters write FMsgViewFilters;
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
// glyphs
|
// glyphs
|
||||||
property ShowButtonGlyphs: TApplicationShowGlyphs read FShowButtonGlyphs write FShowButtonGlyphs;
|
property ShowButtonGlyphs: TApplicationShowGlyphs read FShowButtonGlyphs write FShowButtonGlyphs;
|
||||||
@ -1007,9 +975,7 @@ begin
|
|||||||
FMsgViewFilenameStyle:=mwfsShort;
|
FMsgViewFilenameStyle:=mwfsShort;
|
||||||
for c:=low(TMsgWndColor) to high(TMsgWndColor) do
|
for c:=low(TMsgWndColor) to high(TMsgWndColor) do
|
||||||
fMsgViewColors[c]:=MsgWndDefaultColors[c];
|
fMsgViewColors[c]:=MsgWndDefaultColors[c];
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
FMsgViewFilters:=TLMsgViewFilters.Create(nil);
|
FMsgViewFilters:=TLMsgViewFilters.Create(nil);
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
// glyphs
|
// glyphs
|
||||||
FShowButtonGlyphs := sbgSystem;
|
FShowButtonGlyphs := sbgSystem;
|
||||||
@ -1058,12 +1024,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// external tools
|
// external tools
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
fExternalUserTools:=ExternalUserToolsClass.Create;
|
fExternalUserTools:=ExternalUserToolsClass.Create;
|
||||||
{$ELSE}
|
|
||||||
fExternalTools:=ExternalToolListClass.Create;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
// naming
|
// naming
|
||||||
fPascalFileExtension:=petPAS;
|
fPascalFileExtension:=petPAS;
|
||||||
fCharcaseFileAction:=ccfaAutoRename;
|
fCharcaseFileAction:=ccfaAutoRename;
|
||||||
@ -1084,12 +1046,8 @@ var
|
|||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
FreeAndNil(FBuildMatrixOptions);
|
FreeAndNil(FBuildMatrixOptions);
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
FreeAndNil(FMsgViewFilters);
|
FreeAndNil(FMsgViewFilters);
|
||||||
FreeAndNil(fExternalUserTools);
|
FreeAndNil(fExternalUserTools);
|
||||||
{$ELSE}
|
|
||||||
FreeAndNil(fExternalTools);
|
|
||||||
{$ENDIF}
|
|
||||||
FreeAndNil(FRecentOpenFiles);
|
FreeAndNil(FRecentOpenFiles);
|
||||||
FreeAndNil(FRecentProjectFiles);
|
FreeAndNil(FRecentProjectFiles);
|
||||||
FreeAndNil(FRecentPackageFiles);
|
FreeAndNil(FRecentPackageFiles);
|
||||||
@ -1475,9 +1433,7 @@ begin
|
|||||||
for mwc:=low(TMsgWndColor) to high(TMsgWndColor) do
|
for mwc:=low(TMsgWndColor) to high(TMsgWndColor) do
|
||||||
fMsgViewColors[mwc]:=XMLConfig.GetValue(
|
fMsgViewColors[mwc]:=XMLConfig.GetValue(
|
||||||
Path+'MsgView/Colors/'+MsgWndColorNames[mwc],MsgWndDefaultColors[mwc]);
|
Path+'MsgView/Colors/'+MsgWndColorNames[mwc],MsgWndDefaultColors[mwc]);
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
MsgViewFilters.LoadFromXMLConfig(XMLConfig,'MsgView/Filters/');
|
MsgViewFilters.LoadFromXMLConfig(XMLConfig,'MsgView/Filters/');
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
// glyphs
|
// glyphs
|
||||||
FShowButtonGlyphs := TApplicationShowGlyphs(XMLConfig.GetValue(Path+'ShowButtonGlyphs/Value',
|
FShowButtonGlyphs := TApplicationShowGlyphs(XMLConfig.GetValue(Path+'ShowButtonGlyphs/Value',
|
||||||
@ -1512,11 +1468,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// external tools
|
// external tools
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
fExternalUserTools.Load(FConfigStore,Path+'ExternalTools/');
|
fExternalUserTools.Load(FConfigStore,Path+'ExternalTools/');
|
||||||
{$ELSE}
|
|
||||||
fExternalTools.Load(FConfigStore,Path+'ExternalTools/');
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
// naming
|
// naming
|
||||||
LoadPascalFileExt(Path+'');
|
LoadPascalFileExt(Path+'');
|
||||||
@ -1864,9 +1816,7 @@ begin
|
|||||||
for mwc:=low(TMsgWndColor) to high(TMsgWndColor) do
|
for mwc:=low(TMsgWndColor) to high(TMsgWndColor) do
|
||||||
XMLConfig.SetDeleteValue(Path+'MsgView/Colors/'+MsgWndColorNames[mwc],
|
XMLConfig.SetDeleteValue(Path+'MsgView/Colors/'+MsgWndColorNames[mwc],
|
||||||
fMsgViewColors[mwc],MsgWndDefaultColors[mwc]);
|
fMsgViewColors[mwc],MsgWndDefaultColors[mwc]);
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
MsgViewFilters.SaveToXMLConfig(XMLConfig,'MsgView/Filters/');
|
MsgViewFilters.SaveToXMLConfig(XMLConfig,'MsgView/Filters/');
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
// glyphs
|
// glyphs
|
||||||
XMLConfig.SetDeleteValue(Path+'ShowButtonGlyphs/Value',
|
XMLConfig.SetDeleteValue(Path+'ShowButtonGlyphs/Value',
|
||||||
@ -1891,11 +1841,7 @@ begin
|
|||||||
XMLConfig.SetDeleteValue(Path+'Recent/AlreadyPopulated', FAlreadyPopulatedRecentFiles, false);
|
XMLConfig.SetDeleteValue(Path+'Recent/AlreadyPopulated', FAlreadyPopulatedRecentFiles, false);
|
||||||
|
|
||||||
// external tools
|
// external tools
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
fExternalUserTools.Save(FConfigStore,Path+'ExternalTools/');
|
fExternalUserTools.Save(FConfigStore,Path+'ExternalTools/');
|
||||||
{$ELSE}
|
|
||||||
fExternalTools.Save(FConfigStore,Path+'ExternalTools/');
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
// naming
|
// naming
|
||||||
XMLConfig.SetDeleteValue(Path+'Naming/PascalFileExtension',
|
XMLConfig.SetDeleteValue(Path+'Naming/PascalFileExtension',
|
||||||
|
@ -27,8 +27,6 @@ unit etMessageFrame;
|
|||||||
|
|
||||||
{$mode objfpc}{$H+}
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
{$IFDEF EnableOldExtTools}{$Error Wrong}{$ENDIF}
|
|
||||||
|
|
||||||
{$I ide.inc}
|
{$I ide.inc}
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
@ -42,73 +42,15 @@ uses
|
|||||||
Buttons, StdCtrls, ComCtrls, Dialogs, ExtCtrls, ButtonPanel, Menus,
|
Buttons, StdCtrls, ComCtrls, Dialogs, ExtCtrls, ButtonPanel, Menus,
|
||||||
FileProcs,
|
FileProcs,
|
||||||
IDEExternToolIntf, IDEImagesIntf, IDEDialogs, IDEHelpIntf, IDECommands,
|
IDEExternToolIntf, IDEImagesIntf, IDEDialogs, IDEHelpIntf, IDECommands,
|
||||||
{$IFDEF EnableOldExtTools}
|
|
||||||
LazConfigStorage, UTF8Process, CompOptsIntf,
|
|
||||||
{$ENDIF}
|
|
||||||
ProjectIntf,
|
ProjectIntf,
|
||||||
EnvironmentOpts,
|
EnvironmentOpts,
|
||||||
ExtToolEditDlg, KeyMapping, TransferMacros, IDEProcs, LazFileUtils,
|
ExtToolEditDlg, KeyMapping, TransferMacros, IDEProcs, LazFileUtils,
|
||||||
CompilerOptions,
|
CompilerOptions,
|
||||||
{$IFDEF EnableOldExtTools}
|
|
||||||
InfoBuild, OutputFilter,
|
|
||||||
{$ENDIF}
|
|
||||||
LazarusIDEStrConsts, IDEOptionDefs, EditorOptions;
|
LazarusIDEStrConsts, IDEOptionDefs, EditorOptions;
|
||||||
|
|
||||||
const
|
const
|
||||||
MaxExtTools = ecExtToolLast-ecExtToolFirst+1;
|
MaxExtTools = ecExtToolLast-ecExtToolFirst+1;
|
||||||
|
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
|
|
||||||
{$ELSE EnableOldExtTools}
|
|
||||||
|
|
||||||
type
|
|
||||||
TOnNeedsOutputFilter = procedure(var OutputFilter: TOutputFilter;
|
|
||||||
var Abort: boolean) of object;
|
|
||||||
TOnFreeOutputFilter = procedure(OutputFilter: TOutputFilter;
|
|
||||||
ErrorOccurred: boolean) of object;
|
|
||||||
|
|
||||||
{ TExternalToolList -
|
|
||||||
the storage object for all external tools }
|
|
||||||
|
|
||||||
TExternalToolList = class(TBaseExternalToolList)
|
|
||||||
private
|
|
||||||
fOnFreeOutputFilter: TOnFreeOutputFilter;
|
|
||||||
fOnNeedsOutputFilter: TOnNeedsOutputFilter;
|
|
||||||
fRunningTools: TList; // list of TProcess
|
|
||||||
fAllKeys: TKeyCommandRelationList;
|
|
||||||
function GetToolOpts(Index: integer): TExternalToolOptions;
|
|
||||||
procedure SetToolOpts(Index: integer; NewTool: TExternalToolOptions);
|
|
||||||
procedure AddRunningTool(TheProcess: TProcess; ExecuteProcess: boolean);
|
|
||||||
public
|
|
||||||
procedure Add(NewTool: TExternalToolOptions);
|
|
||||||
procedure Assign(Source: TExternalToolList);
|
|
||||||
procedure Clear; override;
|
|
||||||
constructor Create;
|
|
||||||
procedure Delete(Index: integer);
|
|
||||||
destructor Destroy; override;
|
|
||||||
procedure FreeStoppedProcesses;
|
|
||||||
procedure Insert(Index: integer; NewTool: TExternalToolOptions);
|
|
||||||
function Load(Config: TConfigStorage): TModalResult;
|
|
||||||
function Load(Config: TConfigStorage; const Path: string): TModalResult; override;
|
|
||||||
procedure LoadShortCuts(KeyCommandRelationList: TKeyCommandRelationList);
|
|
||||||
function Run(ExtTool: TIDEExternalToolOptions;
|
|
||||||
Macros: TTransferMacroList;
|
|
||||||
ShowAbort: boolean;
|
|
||||||
CompilerOptions: TLazCompilerOptions = nil): TModalResult; override;
|
|
||||||
function Run(Index: integer; Macros: TTransferMacroList;
|
|
||||||
ShowAbort: boolean): TModalResult;
|
|
||||||
function Save(Config: TConfigStorage): TModalResult;
|
|
||||||
function Save(Config: TConfigStorage; const Path: string): TModalResult; override;
|
|
||||||
procedure SaveShortCuts(KeyCommandRelationList: TKeyCommandRelationList);
|
|
||||||
|
|
||||||
property Items[Index: integer]: TExternalToolOptions
|
|
||||||
read GetToolOpts write SetToolOpts; default;
|
|
||||||
property OnFreeOutputFilter: TOnFreeOutputFilter
|
|
||||||
read fOnFreeOutputFilter write fOnFreeOutputFilter;
|
|
||||||
property OnNeedsOutputFilter: TOnNeedsOutputFilter
|
|
||||||
read fOnNeedsOutputFilter write fOnNeedsOutputFilter;
|
|
||||||
end;
|
|
||||||
{$Endif EnableOldExtTools}
|
|
||||||
type
|
type
|
||||||
{ TExternalToolDialog -
|
{ TExternalToolDialog -
|
||||||
the dialog to edit all external tools }
|
the dialog to edit all external tools }
|
||||||
@ -143,34 +85,29 @@ type
|
|||||||
procedure MoveDownButtonClick(Sender: TObject);
|
procedure MoveDownButtonClick(Sender: TObject);
|
||||||
procedure ListboxClick(Sender: TObject);
|
procedure ListboxClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
fExtToolList: TExternalUserTools;
|
fExtToolList: TExternalUserTools;
|
||||||
{$ELSE}
|
|
||||||
fExtToolList: TExternalToolList;
|
|
||||||
{$ENDIF}
|
|
||||||
fTransferMacros: TTransferMacroList;
|
fTransferMacros: TTransferMacroList;
|
||||||
procedure Load;
|
procedure Load;
|
||||||
procedure SetExtToolList(NewExtToolList: {$IFNDEF EnableOldExtTools}TExternalUserTools{$ELSE}TExternalToolList{$ENDIF});
|
procedure SetExtToolList(NewExtToolList: TExternalUserTools);
|
||||||
procedure SetTransferMacros(NewMacros: TTransferMacroList);
|
procedure SetTransferMacros(NewMacros: TTransferMacroList);
|
||||||
function ToolDescription(Index: integer): string;
|
function ToolDescription(Index: integer): string;
|
||||||
procedure EnableButtons;
|
procedure EnableButtons;
|
||||||
public
|
public
|
||||||
constructor Create(AnOwner: TComponent); override;
|
constructor Create(AnOwner: TComponent); override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
property ExtToolList: {$IFNDEF EnableOldExtTools}TExternalUserTools{$ELSE}TExternalToolList{$ENDIF}
|
property ExtToolList: TExternalUserTools read fExtToolList write SetExtToolList;
|
||||||
read fExtToolList write SetExtToolList;
|
|
||||||
property TransferMacros: TTransferMacroList
|
property TransferMacros: TTransferMacroList
|
||||||
read fTransferMacros write SetTransferMacros;
|
read fTransferMacros write SetTransferMacros;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function ShowExtToolDialog(ExtToolList: {$IFNDEF EnableOldExtTools}TExternalUserTools{$ELSE}TExternalToolList{$ENDIF};
|
function ShowExtToolDialog(ExtToolList: TExternalUserTools;
|
||||||
TransferMacros: TTransferMacroList):TModalResult;
|
TransferMacros: TTransferMacroList):TModalResult;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
{$R *.lfm}
|
{$R *.lfm}
|
||||||
|
|
||||||
function ShowExtToolDialog(ExtToolList: {$IFNDEF EnableOldExtTools}TExternalUserTools{$ELSE}TExternalToolList{$ENDIF};
|
function ShowExtToolDialog(ExtToolList: TExternalUserTools;
|
||||||
TransferMacros: TTransferMacroList):TModalResult;
|
TransferMacros: TTransferMacroList):TModalResult;
|
||||||
var
|
var
|
||||||
ExternalToolDialog: TExternalToolDialog;
|
ExternalToolDialog: TExternalToolDialog;
|
||||||
@ -188,369 +125,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
|
|
||||||
{$ELSE EnableOldExtTools}
|
|
||||||
|
|
||||||
{ TExternalToolList }
|
|
||||||
|
|
||||||
function TExternalToolList.GetToolOpts(Index: integer): TExternalToolOptions;
|
|
||||||
begin
|
|
||||||
Result:=TExternalToolOptions(inherited Items[Index]);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TExternalToolList.SetToolOpts(Index: integer;
|
|
||||||
NewTool: TExternalToolOptions);
|
|
||||||
begin
|
|
||||||
inherited Items[Index]:=NewTool;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TExternalToolList.Add(NewTool: TExternalToolOptions);
|
|
||||||
begin
|
|
||||||
inherited Add(NewTool);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TExternalToolList.Assign(Source: TExternalToolList);
|
|
||||||
var
|
|
||||||
i: integer;
|
|
||||||
begin
|
|
||||||
if Source=Self then exit;
|
|
||||||
Clear;
|
|
||||||
if Source=nil then exit;
|
|
||||||
Count:=Source.Count;
|
|
||||||
for i:=0 to Count-1 do begin
|
|
||||||
Items[i]:=TExternalToolOptions.Create;
|
|
||||||
Items[i].Assign(Source[i]);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
constructor TExternalToolList.Create;
|
|
||||||
begin
|
|
||||||
inherited Create;
|
|
||||||
Clear;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TExternalToolList.Delete(Index: integer);
|
|
||||||
begin
|
|
||||||
Items[Index].Free;
|
|
||||||
inherited Delete(Index);
|
|
||||||
end;
|
|
||||||
|
|
||||||
destructor TExternalToolList.Destroy;
|
|
||||||
var
|
|
||||||
i: Integer;
|
|
||||||
begin
|
|
||||||
FreeStoppedProcesses;
|
|
||||||
if fRunningTools<>nil then begin
|
|
||||||
for i:=0 to fRunningTools.Count-1 do
|
|
||||||
TProcess(fRunningTools[i]).Free;
|
|
||||||
fRunningTools.Free;
|
|
||||||
end;
|
|
||||||
fAllKeys.Free;
|
|
||||||
inherited Destroy;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TExternalToolList.Clear;
|
|
||||||
var
|
|
||||||
i: integer;
|
|
||||||
begin
|
|
||||||
for i:=0 to Count-1 do
|
|
||||||
TExternalToolOptions(Items[i]).Free;
|
|
||||||
inherited Clear;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TExternalToolList.Insert(Index: integer; NewTool: TExternalToolOptions);
|
|
||||||
begin
|
|
||||||
inherited Insert(Index,NewTool);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TExternalToolList.Load(Config: TConfigStorage): TModalResult;
|
|
||||||
var
|
|
||||||
i: integer;
|
|
||||||
NewTool: TExternalToolOptions;
|
|
||||||
begin
|
|
||||||
Clear;
|
|
||||||
Count:=Config.GetValue('Count',0);
|
|
||||||
for i:=0 to Count-1 do begin
|
|
||||||
NewTool:=TExternalToolOptions.Create;
|
|
||||||
Items[i]:=NewTool;
|
|
||||||
Config.AppendBasePath('Tool'+IntToStr(i+1)+'/');
|
|
||||||
try
|
|
||||||
if NewTool.Load(Config)<>mrOk then exit;
|
|
||||||
finally
|
|
||||||
Config.UndoAppendBasePath;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
Result:=mrOk;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TExternalToolList.Load(Config: TConfigStorage; const Path: string
|
|
||||||
): TModalResult;
|
|
||||||
begin
|
|
||||||
if Path<>'' then
|
|
||||||
Config.AppendBasePath(Path);
|
|
||||||
try
|
|
||||||
Result:=Load(Config);
|
|
||||||
finally
|
|
||||||
if Path<>'' then
|
|
||||||
Config.UndoAppendBasePath;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TExternalToolList.LoadShortCuts(KeyCommandRelationList: TKeyCommandRelationList);
|
|
||||||
var
|
|
||||||
i: integer;
|
|
||||||
KeyCommandRelation: TKeyCommandRelation;
|
|
||||||
begin
|
|
||||||
if not assigned(fAllKeys) then
|
|
||||||
fAllKeys:=TKeyCommandRelationList.Create;
|
|
||||||
fAllKeys.Assign(KeyCommandRelationList);
|
|
||||||
for i:=0 to Count-1 do begin
|
|
||||||
KeyCommandRelation:=KeyCommandRelationList.FindByCommand(ecExtToolFirst+i);
|
|
||||||
if KeyCommandRelation<>nil then begin
|
|
||||||
Items[i].Key:=KeyCommandRelation.ShortcutA.Key1;
|
|
||||||
Items[i].Shift:=KeyCommandRelation.ShortcutA.Shift1;
|
|
||||||
end else begin
|
|
||||||
Items[i].Key:=VK_UNKNOWN;
|
|
||||||
Items[i].Shift:=[];
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TExternalToolList.Run(Index: integer;
|
|
||||||
Macros: TTransferMacroList; ShowAbort: boolean): TModalResult;
|
|
||||||
begin
|
|
||||||
Result:=mrCancel;
|
|
||||||
if (Index<0) or (Index>=Count) then exit;
|
|
||||||
Result:=Run(Items[Index],Macros,ShowAbort);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TExternalToolList.Run(ExtTool: TIDEExternalToolOptions;
|
|
||||||
Macros: TTransferMacroList; ShowAbort: boolean;
|
|
||||||
CompilerOptions: TLazCompilerOptions): TModalResult;
|
|
||||||
var
|
|
||||||
WorkingDir, Filename, Params, CmdLine, Title: string;
|
|
||||||
TheProcess: TProcessUTF8;
|
|
||||||
Abort, ErrorOccurred: boolean;
|
|
||||||
NewFilename: String;
|
|
||||||
TheOutputFilter: TOutputFilter;
|
|
||||||
begin
|
|
||||||
Result:=mrCancel;
|
|
||||||
if ExtTool=nil then exit;
|
|
||||||
TheOutputFilter:=nil;
|
|
||||||
Filename:=ExtTool.Filename;
|
|
||||||
WorkingDir:=ExtTool.WorkingDirectory;
|
|
||||||
Params:=ExtTool.CmdLineParams;
|
|
||||||
Title:=ExtTool.Title;
|
|
||||||
if Title='' then Title:=Filename;
|
|
||||||
if (not Macros.SubstituteStr(Filename)) then exit;
|
|
||||||
if (not Macros.SubstituteStr(WorkingDir)) then exit;
|
|
||||||
if (not Macros.SubstituteStr(Params)) then exit;
|
|
||||||
|
|
||||||
// expand working directory
|
|
||||||
WorkingDir:=TrimAndExpandDirectory(WorkingDir);
|
|
||||||
if (WorkingDir<>'')
|
|
||||||
and (not DirPathExists(WorkingDir)) then begin
|
|
||||||
Result:=IDEMessageDialogAb(lisExtToolFailedToRunTool,
|
|
||||||
Format(lisExtToolUnableToRunTheTool, ['"', Title, '"', LineEnding,
|
|
||||||
Format(lisWorkingDirectoryNotFound, [WorkingDir])]),
|
|
||||||
mtError,[mbCancel],ShowAbort);
|
|
||||||
CompileProgress.Ready(lisExtToolUnableToRunTheTool, ['"', Title, '"', LineEnding,
|
|
||||||
Format(lisWorkingDirectoryNotFound, [WorkingDir])]);
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// expand file name
|
|
||||||
if not FilenameIsAbsolute(Filename) then begin
|
|
||||||
NewFilename:=FindProgram(Filename,GetCurrentDirUTF8,false);
|
|
||||||
if NewFilename='' then begin
|
|
||||||
Result:=IDEMessageDialogAb(lisExtToolFailedToRunTool,
|
|
||||||
Format(lisExtToolUnableToRunTheTool, ['"', Title, '"', LineEnding,
|
|
||||||
Format(lisProgramNotFound, [Filename])]),
|
|
||||||
mtError,[mbCancel],ShowAbort);
|
|
||||||
CompileProgress.Ready(lisExtToolUnableToRunTheTool, ['"', Title, '"', LineEnding,
|
|
||||||
Format(lisProgramNotFound, [Filename])]);
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
Filename:=NewFilename;
|
|
||||||
end;
|
|
||||||
WorkingDir:=TrimFilename(WorkingDir);
|
|
||||||
Filename:=TrimFilename(Filename);
|
|
||||||
CmdLine:=Filename;
|
|
||||||
if Params<>'' then
|
|
||||||
CmdLine:=CmdLine+' '+Params;
|
|
||||||
DebugLn('[TExternalToolList.Run] CmdLine="',CmdLine,'" WorkDir="',WorkingDir,'"');
|
|
||||||
TheProcess:=nil;
|
|
||||||
try
|
|
||||||
try
|
|
||||||
CheckIfFileIsExecutable(Filename);
|
|
||||||
TheProcess := TOutputFilterProcess.Create(nil);
|
|
||||||
TheProcess.Executable := FileName;
|
|
||||||
SplitCmdLineParams(Params,TheProcess.Parameters);
|
|
||||||
TheProcess.Options:= [poUsePipes,poStdErrToOutPut];
|
|
||||||
if ExtTool.HideMainForm then
|
|
||||||
TheProcess.ShowWindow := swoHide
|
|
||||||
else
|
|
||||||
TheProcess.ShowWindow := swoShowNormal;
|
|
||||||
TheProcess.CurrentDirectory := WorkingDir;
|
|
||||||
if ExtTool.EnvironmentOverrides.Count>0 then
|
|
||||||
ExtTool.AssignEnvironmentTo(TheProcess.Environment);
|
|
||||||
if (ExtTool.NeedsOutputFilter) and (TheOutputFilter=nil)
|
|
||||||
and Assigned(OnNeedsOutputFilter) then begin
|
|
||||||
Abort:=false;
|
|
||||||
OnNeedsOutputFilter(TheOutputFilter,Abort);
|
|
||||||
if Abort then begin
|
|
||||||
CompileProgress.Ready(lisInfoBuildAbort);
|
|
||||||
Result:=mrAbort;
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
if TheOutputFilter<>nil then begin
|
|
||||||
ErrorOccurred:=false;
|
|
||||||
try
|
|
||||||
TheOutputFilter.CompilerOptions:=CompilerOptions as TBaseCompilerOptions;
|
|
||||||
TheOutputFilter.Options:=[ofoExceptionOnError,ofoMakeFilenamesAbsolute];
|
|
||||||
if ExtTool.ScanOutputForFPCMessages then
|
|
||||||
TheOutputFilter.Options:=TheOutputFilter.Options+[ofoSearchForFPCMessages];
|
|
||||||
if ExtTool.ScanOutputForMakeMessages then
|
|
||||||
TheOutputFilter.Options:=TheOutputFilter.Options+[ofoSearchForMakeMessages];
|
|
||||||
if ExtTool.ShowAllOutput then
|
|
||||||
TheOutputFilter.Options:=TheOutputFilter.Options+[ofoShowAll];
|
|
||||||
try
|
|
||||||
Result:=mrCancel;
|
|
||||||
try
|
|
||||||
if TheOutputFilter.Execute(TheProcess,Self,ExtTool) then begin
|
|
||||||
TheOutputFilter.ReadConstLine(Format(lisExtToolTitleCompleted,[Title]),true);
|
|
||||||
end;
|
|
||||||
if TheOutputFilter.ErrorExists then begin
|
|
||||||
ErrorOccurred:=true;
|
|
||||||
end;
|
|
||||||
finally
|
|
||||||
TheProcess.WaitOnExit;
|
|
||||||
FreeAndNil(TheProcess);
|
|
||||||
end;
|
|
||||||
if ErrorOccurred then
|
|
||||||
Result:=mrCancel
|
|
||||||
else if TheOutputFilter.Aborted then
|
|
||||||
Result:=mrAbort
|
|
||||||
else
|
|
||||||
Result:=mrOk;
|
|
||||||
except
|
|
||||||
on e: EOutputFilterError do begin
|
|
||||||
DebugLn('TExternalToolList.Run Exception: ',E.Message);
|
|
||||||
ErrorOccurred:=true;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
raise
|
|
||||||
end;
|
|
||||||
finally
|
|
||||||
if Assigned(OnFreeOutputFilter) then
|
|
||||||
OnFreeOutputFilter(TheOutputFilter,ErrorOccurred);
|
|
||||||
end;
|
|
||||||
end else begin
|
|
||||||
AddRunningTool(TheProcess,true);
|
|
||||||
TheProcess:=nil;
|
|
||||||
Result:=mrOk;
|
|
||||||
end;
|
|
||||||
finally
|
|
||||||
FreeAndNil(TheProcess);
|
|
||||||
end;
|
|
||||||
except
|
|
||||||
on e: Exception do begin
|
|
||||||
DebugLn('TExternalToolList.Run ',lisExtToolFailedToRunTool, ' ', E.Message);
|
|
||||||
DumpExceptionBackTrace;
|
|
||||||
Result:=IDEMessageDialogAb(lisExtToolFailedToRunTool,
|
|
||||||
Format(lisExtToolUnableToRunTheTool, ['"', Title, '"', LineEnding, e.Message]),
|
|
||||||
mtError,[mbCancel],ShowAbort);
|
|
||||||
CompileProgress.Ready(lisExtToolUnableToRunTheTool,
|
|
||||||
['"', Title, '"', LineEnding, e.Message]);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TExternalToolList.Save(Config: TConfigStorage): TModalResult;
|
|
||||||
var
|
|
||||||
i: integer;
|
|
||||||
begin
|
|
||||||
Config.SetValue('Count',Count);
|
|
||||||
for i:=0 to Count-1 do begin
|
|
||||||
Config.AppendBasePath('Tool'+IntToStr(i+1)+'/');
|
|
||||||
try
|
|
||||||
if Items[i].Save(Config)<>mrOk then exit;
|
|
||||||
finally
|
|
||||||
Config.UndoAppendBasePath;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
Result:=mrOk;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TExternalToolList.Save(Config: TConfigStorage; const Path: string): TModalResult;
|
|
||||||
begin
|
|
||||||
if Path<>'' then
|
|
||||||
Config.AppendBasePath(Path);
|
|
||||||
try
|
|
||||||
Result:=Save(Config);
|
|
||||||
finally
|
|
||||||
if Path<>'' then
|
|
||||||
Config.UndoAppendBasePath;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TExternalToolList.SaveShortCuts(KeyCommandRelationList: TKeyCommandRelationList);
|
|
||||||
var
|
|
||||||
i: integer;
|
|
||||||
KeyCommandRelation: TKeyCommandRelation;
|
|
||||||
begin
|
|
||||||
KeyCommandRelationList.ExtToolCount:=Count;
|
|
||||||
for i:=0 to Count-1 do begin
|
|
||||||
KeyCommandRelation:=KeyCommandRelationList.FindByCommand(ecExtToolFirst+i);
|
|
||||||
if KeyCommandRelation<>nil then begin
|
|
||||||
KeyCommandRelation.ShortcutA:=IDEShortCut(Items[i].Key,Items[i].Shift,
|
|
||||||
VK_UNKNOWN,[]);
|
|
||||||
end else begin
|
|
||||||
DebugLn('[TExternalToolList.SaveShortCuts] Error: '
|
|
||||||
+'unable to save shortcut for external tool "',Items[i].Title,'"');
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TExternalToolList.AddRunningTool(TheProcess: TProcess;
|
|
||||||
ExecuteProcess: boolean);
|
|
||||||
begin
|
|
||||||
if fRunningTools=nil then fRunningTools:=TList.Create;
|
|
||||||
fRunningTools.Add(TheProcess);
|
|
||||||
if ExecuteProcess then
|
|
||||||
TheProcess.Execute;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TExternalToolList.FreeStoppedProcesses;
|
|
||||||
var
|
|
||||||
i: integer;
|
|
||||||
TheProcess: TProcess;
|
|
||||||
begin
|
|
||||||
if fRunningTools=nil then exit;
|
|
||||||
i:=fRunningTools.Count-1;
|
|
||||||
while i>=0 do begin
|
|
||||||
try
|
|
||||||
TheProcess:=TProcess(fRunningTools[i]);
|
|
||||||
if not TheProcess.Running then begin
|
|
||||||
try
|
|
||||||
TheProcess.WaitOnExit;
|
|
||||||
TheProcess.Free;
|
|
||||||
finally
|
|
||||||
fRunningTools.Delete(i);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
except
|
|
||||||
on E: Exception do begin
|
|
||||||
DebugLn('Error freeing stopped process: ',E.Message);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
dec(i);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{ TExternalToolDialog }
|
{ TExternalToolDialog }
|
||||||
|
|
||||||
constructor TExternalToolDialog.Create(AnOwner: TComponent);
|
constructor TExternalToolDialog.Create(AnOwner: TComponent);
|
||||||
@ -581,11 +155,7 @@ begin
|
|||||||
MoveUpButton.ImageIndex := IDEImages.LoadImage(16, 'arrow_up');
|
MoveUpButton.ImageIndex := IDEImages.LoadImage(16, 'arrow_up');
|
||||||
MoveDownButton.ImageIndex := IDEImages.LoadImage(16, 'arrow_down');
|
MoveDownButton.ImageIndex := IDEImages.LoadImage(16, 'arrow_down');
|
||||||
|
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
fExtToolList:=TExternalUserTools.Create;
|
fExtToolList:=TExternalUserTools.Create;
|
||||||
{$ELSE}
|
|
||||||
fExtToolList:=TExternalToolList.Create;
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TExternalToolDialog.Destroy;
|
destructor TExternalToolDialog.Destroy;
|
||||||
@ -594,7 +164,7 @@ begin
|
|||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TExternalToolDialog.SetExtToolList(NewExtToolList: {$IFNDEF EnableOldExtTools}TExternalUserTools{$ELSE}TExternalToolList{$ENDIF});
|
procedure TExternalToolDialog.SetExtToolList(NewExtToolList: TExternalUserTools);
|
||||||
begin
|
begin
|
||||||
if fExtToolList=NewExtToolList then exit;
|
if fExtToolList=NewExtToolList then exit;
|
||||||
fExtToolList.Assign(NewExtToolList);
|
fExtToolList.Assign(NewExtToolList);
|
||||||
@ -609,13 +179,7 @@ end;
|
|||||||
|
|
||||||
function TExternalToolDialog.ToolDescription(Index: integer): string;
|
function TExternalToolDialog.ToolDescription(Index: integer): string;
|
||||||
begin
|
begin
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
Result:=fExtToolList[Index].Title;
|
Result:=fExtToolList[Index].Title;
|
||||||
{$ELSE}
|
|
||||||
Result:=fExtToolList[Index].ShortDescription;
|
|
||||||
if Result='' then
|
|
||||||
Result:=fExtToolList[Index].Title;
|
|
||||||
{$ENDIF}
|
|
||||||
if Result='' then
|
if Result='' then
|
||||||
Result:=ExtractFilename(fExtToolList[Index].Filename);
|
Result:=ExtractFilename(fExtToolList[Index].Filename);
|
||||||
//DebugLn(['TExternalToolDialog.ToolDescription Index=',Index,' Result=',Result,' Cmd="',fExtToolList[Index].Filename,' ',fExtToolList[Index].CmdLineParams,'"']);
|
//DebugLn(['TExternalToolDialog.ToolDescription Index=',Index,' Result=',Result,' Cmd="',fExtToolList[Index].Filename,' ',fExtToolList[Index].CmdLineParams,'"']);
|
||||||
@ -636,11 +200,7 @@ end;
|
|||||||
procedure TExternalToolDialog.AddButtonClick(Sender: TObject);
|
procedure TExternalToolDialog.AddButtonClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
MsgResult: TModalResult;
|
MsgResult: TModalResult;
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
NewTool: TExternalUserTool;
|
NewTool: TExternalUserTool;
|
||||||
{$ELSE}
|
|
||||||
NewTool: TExternalToolOptions;
|
|
||||||
{$ENDIF}
|
|
||||||
begin
|
begin
|
||||||
if fExtToolList.Count>=MaxExtTools then begin
|
if fExtToolList.Count>=MaxExtTools then begin
|
||||||
IDEMessageDialog(lisExtToolMaximumToolsReached,
|
IDEMessageDialog(lisExtToolMaximumToolsReached,
|
||||||
@ -648,14 +208,8 @@ begin
|
|||||||
mtInformation,[mbCancel]);
|
mtInformation,[mbCancel]);
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
NewTool:=TExternalUserTool.Create(nil);
|
NewTool:=TExternalUserTool.Create(nil);
|
||||||
MsgResult:=ShowExtToolOptionDlg(fTransferMacros, NewTool, EditorOpts.KeyMap);
|
MsgResult:=ShowExtToolOptionDlg(fTransferMacros, NewTool, EditorOpts.KeyMap);
|
||||||
{$ELSE}
|
|
||||||
NewTool:=TExternalToolOptions.Create;
|
|
||||||
MsgResult:=ShowExtToolOptionDlg(fTransferMacros, NewTool,
|
|
||||||
TExternalToolList(EnvironmentOptions.ExternalTools).fAllKeys);
|
|
||||||
{$ENDIF}
|
|
||||||
if MsgResult=mrOk then
|
if MsgResult=mrOk then
|
||||||
begin
|
begin
|
||||||
fExtToolList.Add(NewTool);
|
fExtToolList.Add(NewTool);
|
||||||
@ -673,20 +227,12 @@ end;
|
|||||||
|
|
||||||
procedure TExternalToolDialog.MenuItemCloneClick(Sender: TObject);
|
procedure TExternalToolDialog.MenuItemCloneClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
NewTool, OldTool: TExternalUserTool;
|
NewTool, OldTool: TExternalUserTool;
|
||||||
{$ELSE}
|
|
||||||
NewTool, OldTool: TExternalToolOptions;
|
|
||||||
{$ENDIF}
|
|
||||||
begin
|
begin
|
||||||
If Listbox.ItemIndex <> -1 Then Begin
|
If Listbox.ItemIndex <> -1 Then Begin
|
||||||
OldTool := fExtToolList.Items[Listbox.ItemIndex];
|
OldTool := fExtToolList.Items[Listbox.ItemIndex];
|
||||||
If Assigned(OldTool) Then Begin
|
If Assigned(OldTool) Then Begin
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
NewTool:=TExternalUserTool.Create(nil);
|
NewTool:=TExternalUserTool.Create(nil);
|
||||||
{$ELSE}
|
|
||||||
NewTool:=TExternalToolOptions.Create;
|
|
||||||
{$ENDIF}
|
|
||||||
NewTool.Assign(OldTool);
|
NewTool.Assign(OldTool);
|
||||||
fExtToolList.Add(NewTool);
|
fExtToolList.Add(NewTool);
|
||||||
Listbox.Items.Add(ToolDescription(fExtToolList.Count-1));
|
Listbox.Items.Add(ToolDescription(fExtToolList.Count-1));
|
||||||
@ -716,18 +262,10 @@ end;
|
|||||||
procedure TExternalToolDialog.MenuItemImportClick(Sender: TObject);
|
procedure TExternalToolDialog.MenuItemImportClick(Sender: TObject);
|
||||||
Var
|
Var
|
||||||
FileConfig: TXMLOptionsStorage;
|
FileConfig: TXMLOptionsStorage;
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
NewToolList: TExternalUserTools;
|
NewToolList: TExternalUserTools;
|
||||||
{$ELSE}
|
|
||||||
NewToolList : TExternalToolList;
|
|
||||||
{$ENDIF}
|
|
||||||
begin
|
begin
|
||||||
If OpenDialog1.Execute Then Begin
|
If OpenDialog1.Execute Then Begin
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
NewToolList := TExternalUserTools.Create;
|
NewToolList := TExternalUserTools.Create;
|
||||||
{$ELSE}
|
|
||||||
NewToolList := TExternalToolList.Create;
|
|
||||||
{$ENDIF}
|
|
||||||
FileConfig := TXMLOptionsStorage.Create(OpenDialog1.FileName, True);
|
FileConfig := TXMLOptionsStorage.Create(OpenDialog1.FileName, True);
|
||||||
NewToolList.Load(FileConfig);
|
NewToolList.Load(FileConfig);
|
||||||
SetExtToolList(NewToolList);
|
SetExtToolList(NewToolList);
|
||||||
@ -750,14 +288,8 @@ var
|
|||||||
begin
|
begin
|
||||||
i:=Listbox.ItemIndex;
|
i:=Listbox.ItemIndex;
|
||||||
if i<0 then exit;
|
if i<0 then exit;
|
||||||
if ShowExtToolOptionDlg(fTransferMacros,fExtToolList[i],
|
if ShowExtToolOptionDlg(fTransferMacros,fExtToolList[i],EditorOpts.KeyMap)=mrOk
|
||||||
{$IFNDEF EnableOldExtTools}
|
then begin
|
||||||
EditorOpts.KeyMap
|
|
||||||
{$ELSE}
|
|
||||||
TExternalToolList(EnvironmentOptions.ExternalTools).fAllKeys
|
|
||||||
{$ENDIF}
|
|
||||||
)=mrOk then
|
|
||||||
begin
|
|
||||||
Listbox.Items[i]:=ToolDescription(i);
|
Listbox.Items[i]:=ToolDescription(i);
|
||||||
EnableButtons;
|
EnableButtons;
|
||||||
end;
|
end;
|
||||||
@ -804,9 +336,4 @@ begin
|
|||||||
EnableButtons;
|
EnableButtons;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$IFDEF EnableOldExtTools}
|
|
||||||
initialization
|
|
||||||
ExternalToolListClass:=TExternalToolList;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
@ -46,12 +46,7 @@ uses
|
|||||||
IDEExternToolIntf,
|
IDEExternToolIntf,
|
||||||
// IDE
|
// IDE
|
||||||
LazarusIDEStrConsts, TransferMacros, DialogProcs, IDEOptionDefs,
|
LazarusIDEStrConsts, TransferMacros, DialogProcs, IDEOptionDefs,
|
||||||
ObjInspExt, EnvironmentOpts, AboutFrm, Project, MainBar,
|
ObjInspExt, EnvironmentOpts, AboutFrm, Project, MainBar, etMessagesWnd,
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
etMessagesWnd,
|
|
||||||
{$ELSE}
|
|
||||||
OutputFilter, MsgView,
|
|
||||||
{$ENDIF}
|
|
||||||
IDEFPDocFileSearch, PackageDefs, PackageSystem,
|
IDEFPDocFileSearch, PackageDefs, PackageSystem,
|
||||||
HelpOptions, MainIntf, LazConf, HelpFPCMessages, CodeHelp,
|
HelpOptions, MainIntf, LazConf, HelpFPCMessages, CodeHelp,
|
||||||
IDEContextHelpEdit, IDEWindowHelp, CodeBrowser;
|
IDEContextHelpEdit, IDEWindowHelp, CodeBrowser;
|
||||||
@ -215,11 +210,7 @@ type
|
|||||||
function ShowHelpForSourcePosition(const Filename: string;
|
function ShowHelpForSourcePosition(const Filename: string;
|
||||||
const CodePos: TPoint;
|
const CodePos: TPoint;
|
||||||
var ErrMsg: string): TShowHelpResult; override;
|
var ErrMsg: string): TShowHelpResult; override;
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
procedure ShowHelpForMessage; override;
|
procedure ShowHelpForMessage; override;
|
||||||
{$ELSE}
|
|
||||||
procedure ShowHelpForMessage(Line: integer); override;
|
|
||||||
{$ENDIF}
|
|
||||||
procedure ShowHelpForObjectInspector(Sender: TObject); override;
|
procedure ShowHelpForObjectInspector(Sender: TObject); override;
|
||||||
procedure ShowHelpForIDEControl(Sender: TControl); override;
|
procedure ShowHelpForIDEControl(Sender: TControl); override;
|
||||||
function CreateHint(aHintWindow: THintWindow; ScreenPos: TPoint;
|
function CreateHint(aHintWindow: THintWindow; ScreenPos: TPoint;
|
||||||
@ -1597,7 +1588,6 @@ begin
|
|||||||
CacheWasUsed,AnOwner);
|
CacheWasUsed,AnOwner);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
procedure TIDEHelpManager.ShowHelpForMessage;
|
procedure TIDEHelpManager.ShowHelpForMessage;
|
||||||
var
|
var
|
||||||
Line: TMessageLine;
|
Line: TMessageLine;
|
||||||
@ -1610,33 +1600,6 @@ begin
|
|||||||
Line.GetAttributes(Parts);
|
Line.GetAttributes(Parts);
|
||||||
ShowHelpOrErrorForMessageLine(Line.Msg,Parts);
|
ShowHelpOrErrorForMessageLine(Line.Msg,Parts);
|
||||||
end;
|
end;
|
||||||
{$ELSE EnableOldExtTools}
|
|
||||||
procedure TIDEHelpManager.ShowHelpForMessage(Line: integer);
|
|
||||||
function ParseMessage(MsgItem: TIDEMessageLine): TStringList;
|
|
||||||
begin
|
|
||||||
Result:=TStringList.Create;
|
|
||||||
Result.Values['Message']:=MsgItem.Msg;
|
|
||||||
if MsgItem.Parts<>nil then
|
|
||||||
Result.Assign(MsgItem.Parts);
|
|
||||||
end;
|
|
||||||
var
|
|
||||||
MsgItem: TIDEMessageLine;
|
|
||||||
MessageParts: TStringList;
|
|
||||||
begin
|
|
||||||
//debugln('TIDEHelpManager.ShowHelpForMessage A Line=',dbgs(Line));
|
|
||||||
if MessagesView=nil then exit;
|
|
||||||
if Line<0 then
|
|
||||||
Line:=MessagesView.SelectedMessageIndex;
|
|
||||||
//DebugLn('TIDEHelpManager.ShowHelpForMessage B Line=',dbgs(Line),' ',dbgs(MessagesView.VisibleItemCount));
|
|
||||||
if (Line<0) or (Line>=MessagesView.VisibleItemCount) then exit;
|
|
||||||
MsgItem:=MessagesView.VisibleItems[Line];
|
|
||||||
if MsgItem=nil then exit;
|
|
||||||
if MsgItem.Msg<>'' then begin
|
|
||||||
MessageParts:=ParseMessage(MsgItem);
|
|
||||||
ShowHelpOrErrorForMessageLine(MsgItem.Msg,MessageParts);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
{$Endif EnableOldExtTools}
|
|
||||||
|
|
||||||
procedure TIDEHelpManager.ShowHelpForObjectInspector(Sender: TObject);
|
procedure TIDEHelpManager.ShowHelpForObjectInspector(Sender: TObject);
|
||||||
var
|
var
|
||||||
|
@ -121,7 +121,6 @@ type
|
|||||||
property Unit2Files: TICCFiles read FUnit2Files;
|
property Unit2Files: TICCFiles read FUnit2Files;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
type
|
type
|
||||||
{ TQuickFixRecompilingChecksumChanged }
|
{ TQuickFixRecompilingChecksumChanged }
|
||||||
|
|
||||||
@ -131,17 +130,6 @@ type
|
|||||||
procedure CreateMenuItems(Fixes: TMsgQuickFixes); override;
|
procedure CreateMenuItems(Fixes: TMsgQuickFixes); override;
|
||||||
procedure QuickFix(Fixes: TMsgQuickFixes; Msg: TMessageLine); override;
|
procedure QuickFix(Fixes: TMsgQuickFixes; Msg: TMessageLine); override;
|
||||||
end;
|
end;
|
||||||
{$ELSE}
|
|
||||||
type
|
|
||||||
{ TQuickFixRecompilingChecksumChanged }
|
|
||||||
|
|
||||||
TQuickFixRecompilingChecksumChanged = class(TIDEMsgQuickFixItem)
|
|
||||||
public
|
|
||||||
constructor Create;
|
|
||||||
function IsApplicable(Line: TIDEMessageLine): boolean; override;
|
|
||||||
procedure Execute(const Msg: TIDEMessageLine; Step: TIMQuickFixStep); override;
|
|
||||||
end;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
procedure InitInspectChecksumChangedQuickFixItems;
|
procedure InitInspectChecksumChangedQuickFixItems;
|
||||||
|
|
||||||
@ -414,7 +402,6 @@ begin
|
|||||||
InfoTreeView.EndUpdate;
|
InfoTreeView.EndUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
{ TQuickFixRecompilingChecksumChanged }
|
{ TQuickFixRecompilingChecksumChanged }
|
||||||
|
|
||||||
function TQuickFixRecompilingChecksumChanged.IsApplicable(Msg: TMessageLine;
|
function TQuickFixRecompilingChecksumChanged.IsApplicable(Msg: TMessageLine;
|
||||||
@ -457,46 +444,6 @@ begin
|
|||||||
Dlg.Free;
|
Dlg.Free;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{$ELSE}
|
|
||||||
constructor TQuickFixRecompilingChecksumChanged.Create;
|
|
||||||
begin
|
|
||||||
Name:='Show dialog for message Recompiling Unit1, checksum changed for Unit1';
|
|
||||||
Caption:='Explore message "checksum changed"';
|
|
||||||
Steps:=[imqfoMenuItem];
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TQuickFixRecompilingChecksumChanged.IsApplicable(Line: TIDEMessageLine
|
|
||||||
): boolean;
|
|
||||||
begin
|
|
||||||
Result:=false;
|
|
||||||
if not REMatches(Line.Msg,'Recompiling ([a-z_][a-z_0-9]*), checksum changed for ([a-z_][a-z_0-9]*)','i')
|
|
||||||
then exit;
|
|
||||||
Result:=true;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TQuickFixRecompilingChecksumChanged.Execute(
|
|
||||||
const Msg: TIDEMessageLine; Step: TIMQuickFixStep);
|
|
||||||
var
|
|
||||||
Dlg: TInspectChksumChgDialog;
|
|
||||||
Unit1, Unit2: string;
|
|
||||||
begin
|
|
||||||
if Step=imqfoMenuItem then begin
|
|
||||||
debugln(['TQuickFixRecompilingChecksumChanged.Execute ']);
|
|
||||||
if not REMatches(Msg.Msg,'Recompiling ([a-z_][a-z_0-9]*), checksum changed for ([a-z_][a-z_0-9]*)','i')
|
|
||||||
then exit;
|
|
||||||
Unit1:=REVar(1);
|
|
||||||
Unit2:=REVar(2);
|
|
||||||
debugln(['TQuickFixRecompilingChecksumChanged.Execute Unit1=',REVar(1),', checksum changed for Unit2=',REVar(2)]);
|
|
||||||
Dlg:=TInspectChksumChgDialog.Create(nil);
|
|
||||||
try
|
|
||||||
Dlg.InitWithMsg(Msg.Msg,Unit1,Unit2);
|
|
||||||
Dlg.ShowModal;
|
|
||||||
finally
|
|
||||||
Dlg.Free;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -1,41 +0,0 @@
|
|||||||
inherited MessagesView: TMessagesView
|
|
||||||
Left = 284
|
|
||||||
Height = 79
|
|
||||||
Top = 640
|
|
||||||
Width = 722
|
|
||||||
ActiveControl = MessageTreeView
|
|
||||||
BorderStyle = bsSizeToolWin
|
|
||||||
Caption = 'MessagesView'
|
|
||||||
ClientHeight = 79
|
|
||||||
ClientWidth = 722
|
|
||||||
KeyPreview = True
|
|
||||||
OnDeactivate = FormDeactivate
|
|
||||||
OnKeyDown = MessagesViewKeyDown
|
|
||||||
object MessageTreeView: TTreeView[0]
|
|
||||||
Left = 0
|
|
||||||
Height = 79
|
|
||||||
Top = 0
|
|
||||||
Width = 722
|
|
||||||
Align = alClient
|
|
||||||
DefaultItemHeight = 15
|
|
||||||
MultiSelect = True
|
|
||||||
PopupMenu = MainPopupMenu
|
|
||||||
ReadOnly = True
|
|
||||||
ScrollBars = ssAutoBoth
|
|
||||||
ShowRoot = False
|
|
||||||
TabOrder = 0
|
|
||||||
OnExit = MessageViewExit
|
|
||||||
Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoShowLines, tvoToolTips, tvoThemedDraw]
|
|
||||||
end
|
|
||||||
object MainPopupMenu: TPopupMenu[1]
|
|
||||||
OnPopup = MainPopupMenuPopup
|
|
||||||
left = 48
|
|
||||||
top = 8
|
|
||||||
end
|
|
||||||
object IdleTimer1: TIdleTimer[2]
|
|
||||||
AutoEnabled = True
|
|
||||||
OnTimer = IdleTimer1Timer
|
|
||||||
left = 166
|
|
||||||
top = 8
|
|
||||||
end
|
|
||||||
end
|
|
1385
ide/msgview.pp
1385
ide/msgview.pp
File diff suppressed because it is too large
Load Diff
1907
ide/outputfilter.pas
1907
ide/outputfilter.pas
File diff suppressed because it is too large
Load Diff
@ -37,10 +37,7 @@ interface
|
|||||||
uses
|
uses
|
||||||
Classes, SysUtils, FileUtil, Laz2_XMLCfg, Process, LCLProc, Controls,
|
Classes, SysUtils, FileUtil, Laz2_XMLCfg, Process, LCLProc, Controls,
|
||||||
Graphics, Forms, CodeToolManager, FileProcs, LazConf, LResources, ProjectIntf,
|
Graphics, Forms, CodeToolManager, FileProcs, LazConf, LResources, ProjectIntf,
|
||||||
ProjectResourcesIntf, IDEMsgIntf, MacroIntf,
|
ProjectResourcesIntf, IDEMsgIntf, MacroIntf, IDEExternToolIntf,
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
IDEExternToolIntf,
|
|
||||||
{$ENDIF}
|
|
||||||
LazarusIDEStrConsts, resource, bitmapresource, groupresource,
|
LazarusIDEStrConsts, resource, bitmapresource, groupresource,
|
||||||
groupiconresource, groupcursorresource;
|
groupiconresource, groupcursorresource;
|
||||||
|
|
||||||
@ -189,11 +186,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
{$IFNDEF EnableOldExtTools}
|
|
||||||
IDEMessagesWindow.AddCustomMessage(mluError,Format(lisFileNotFound2, [Filename]));
|
IDEMessagesWindow.AddCustomMessage(mluError,Format(lisFileNotFound2, [Filename]));
|
||||||
{$ELSE}
|
|
||||||
IDEMessagesWindow.AddMsg(Format(lisFileNotFound2, [Filename]), '', -1);
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TResourceItem.GetRealFileName(ProjectDirectory: String): String;
|
function TResourceItem.GetRealFileName(ProjectDirectory: String): String;
|
||||||
|
Loading…
Reference in New Issue
Block a user