From 6a729a5bd31e10a54fc90c657249ea0012c0147e Mon Sep 17 00:00:00 2001 From: mattias Date: Fri, 22 Sep 2006 23:55:22 +0000 Subject: [PATCH] h2pas: added ConvertAndBuildProject git-svn-id: trunk@9970 - --- components/h2pas/h2pasdlg.lfm | 17 ++++++++++++++++- components/h2pas/h2pasdlg.lrs | 10 ++++++++-- components/h2pas/h2pasdlg.pas | 13 +++++++++++-- ide/compileroptions.pp | 9 --------- ide/main.pp | 2 +- ideintf/lazideintf.pas | 2 ++ ideintf/projectintf.pas | 10 ++++++++++ 7 files changed, 48 insertions(+), 15 deletions(-) diff --git a/components/h2pas/h2pasdlg.lfm b/components/h2pas/h2pasdlg.lfm index 270333924a..665890002b 100644 --- a/components/h2pas/h2pasdlg.lfm +++ b/components/h2pas/h2pasdlg.lfm @@ -379,7 +379,7 @@ object H2PasDialog: TH2PasDialog object ConvertButton: TButton AnchorSideLeft.Control = SaveSettingsButton AnchorSideLeft.Side = asrBottom - AnchorSideTop.Control = SaveSettingsButton + AnchorSideTop.Control = OpenSettingsButton Left = 271 Height = 26 Top = 470 @@ -408,4 +408,19 @@ object H2PasDialog: TH2PasDialog OnClick = CloseButtonClick TabOrder = 3 end + object ConvertAndBuildButton: TButton + AnchorSideLeft.Control = ConvertButton + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = OpenSettingsButton + Left = 370 + Height = 26 + Top = 470 + Width = 144 + AutoSize = True + BorderSpacing.Left = 6 + BorderSpacing.InnerBorder = 4 + Caption = 'ConvertAndBuildButton' + OnClick = ConvertAndBuildButtonClick + TabOrder = 5 + end end diff --git a/components/h2pas/h2pasdlg.lrs b/components/h2pas/h2pasdlg.lrs index 33a264e940..2f5f4cda85 100644 --- a/components/h2pas/h2pasdlg.lrs +++ b/components/h2pas/h2pasdlg.lrs @@ -133,7 +133,7 @@ LazarusResources.Add('TH2PasDialog','FORMDATA',[ +'acing.InnerBorder'#2#4#7'Caption'#6#18'SaveSettingsButton'#7'OnClick'#7#23 +'SaveSettingsButtonClick'#8'TabOrder'#2#2#0#0#7'TButton'#13'ConvertButton'#22 +'AnchorSideLeft.Control'#7#18'SaveSettingsButton'#19'AnchorSideLeft.Side'#7#9 - +'asrBottom'#21'AnchorSideTop.Control'#7#18'SaveSettingsButton'#4'Left'#3#15#1 + +'asrBottom'#21'AnchorSideTop.Control'#7#18'OpenSettingsButton'#4'Left'#3#15#1 +#6'Height'#2#26#3'Top'#3#214#1#5'Width'#2']'#8'AutoSize'#9#18'BorderSpacing.' +'Left'#2#15#25'BorderSpacing.InnerBorder'#2#4#7'Caption'#6#13'ConvertButton' +#7'OnClick'#7#18'ConvertButtonClick'#8'TabOrder'#2#0#0#0#7'TButton'#11'Close' @@ -142,5 +142,11 @@ LazarusResources.Add('TH2PasDialog','FORMDATA',[ +#7#9'asrBottom'#4'Left'#3#187#2#6'Height'#2#26#3'Top'#3#214#1#5'Width'#2'Q'#7 +'Anchors'#11#7'akRight'#8'akBottom'#0#8'AutoSize'#9#20'BorderSpacing.Around' +#2#5#25'BorderSpacing.InnerBorder'#2#4#7'Caption'#6#11'CloseButton'#7'OnClic' - +'k'#7#16'CloseButtonClick'#8'TabOrder'#2#3#0#0#0 + +'k'#7#16'CloseButtonClick'#8'TabOrder'#2#3#0#0#7'TButton'#21'ConvertAndBuild' + +'Button'#22'AnchorSideLeft.Control'#7#13'ConvertButton'#19'AnchorSideLeft.Si' + +'de'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#18'OpenSettingsButton'#4'Lef' + +'t'#3'r'#1#6'Height'#2#26#3'Top'#3#214#1#5'Width'#3#144#0#8'AutoSize'#9#18'B' + +'orderSpacing.Left'#2#6#25'BorderSpacing.InnerBorder'#2#4#7'Caption'#6#21'Co' + +'nvertAndBuildButton'#7'OnClick'#7#26'ConvertAndBuildButtonClick'#8'TabOrder' + +#2#5#0#0#0 ]); diff --git a/components/h2pas/h2pasdlg.pas b/components/h2pas/h2pasdlg.pas index 1dc25635a1..da0b680b04 100644 --- a/components/h2pas/h2pasdlg.pas +++ b/components/h2pas/h2pasdlg.pas @@ -28,7 +28,7 @@ uses SynEdit, SynHighlighterCPP, FileProcs, IDEMsgIntf, MenuIntf, IDECommands, BaseIDEIntf, IDEDialogs, LazIDEIntf, - CodeToolManager, SrcEditorIntf, IDETextConverter, + ProjectIntf, CodeToolManager, SrcEditorIntf, IDETextConverter, H2PasStrConsts, H2PasConvert, IDETextConvListEdit; type @@ -36,6 +36,7 @@ type { TH2PasDialog } TH2PasDialog = class(TForm) + ConvertAndBuildButton: TButton; FileInfoGroupBox: TGroupBox; FileInfoLabel: TLabel; MainPageControl: TPageControl; @@ -91,6 +92,7 @@ type ); procedure CloseButtonClick(Sender: TObject); procedure ConstantsInsteadOfEnumsCheckBoxChange(Sender: TObject); + procedure ConvertAndBuildButtonClick(Sender: TObject); procedure ConvertButtonClick(Sender: TObject); procedure DeleteCHeaderFilesButtonClick(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); @@ -243,7 +245,8 @@ begin NewSettingsButton.Caption:='New/Clear settings'; OpenSettingsButton.Caption:='&Open Settings'; SaveSettingsButton.Caption:='&Save Settings'; - ConvertButton.Caption:='Run converter and h2pas'; + ConvertButton.Caption:='Run h2pas'; + ConvertAndBuildButton.Caption:='Run h2pas and compile'; CloseButton.Caption:='&Close'; PreH2PasEdit:=TTextConvListEditor.Create(Self); @@ -313,6 +316,12 @@ begin end; +procedure TH2PasDialog.ConvertAndBuildButtonClick(Sender: TObject); +begin + if Convert=mrOk then + LazarusIDE.DoBuildProject(crCompile,[]); +end; + procedure TH2PasDialog.ConvertButtonClick(Sender: TObject); begin Convert; diff --git a/ide/compileroptions.pp b/ide/compileroptions.pp index cbfbea5c26..90b76c81b0 100644 --- a/ide/compileroptions.pp +++ b/ide/compileroptions.pp @@ -203,15 +203,6 @@ type ); TCompilerCmdLineOptions = set of TCompilerCmdLineOption; - TCompileReason = ( - crCompile, // normal build current project/package - crBuild, // build all - crRun // quick build before run - ); - TCompileReasons = set of TCompileReason; -const - crAll = [crCompile, crBuild, crRun]; - type { TCompilerDiffTool diff --git a/ide/main.pp b/ide/main.pp index 4a01951703..8e9473a6f5 100644 --- a/ide/main.pp +++ b/ide/main.pp @@ -674,7 +674,7 @@ type const CompilerFilename, CompilerParams, SrcFilename: string): TModalResult; function DoBuildProject(const AReason: TCompileReason; - Flags: TProjectBuildFlags): TModalResult; + Flags: TProjectBuildFlags): TModalResult; override; function DoAbortBuild: TModalResult; procedure DoQuickCompile; function DoInitProjectRun: TModalResult; override; diff --git a/ideintf/lazideintf.pas b/ideintf/lazideintf.pas index 86b9385b85..7b2bf4edec 100644 --- a/ideintf/lazideintf.pas +++ b/ideintf/lazideintf.pas @@ -169,6 +169,8 @@ type Flags: TOpenFlags): TModalResult; virtual; abstract; function DoPublishProject(Flags: TSaveFlags; ShowDialog: boolean): TModalResult; virtual; abstract; + function DoBuildProject(const AReason: TCompileReason; + Flags: TProjectBuildFlags): TModalResult; virtual; abstract; // configs function GetPrimaryConfigPath: String; virtual; abstract; diff --git a/ideintf/projectintf.pas b/ideintf/projectintf.pas index db9dd7e9b9..d1ae4f9607 100644 --- a/ideintf/projectintf.pas +++ b/ideintf/projectintf.pas @@ -53,6 +53,16 @@ type cetLibrary ); + TCompileReason = ( + crCompile, // normal build current project/package + crBuild, // build all + crRun // quick build before run + ); + TCompileReasons = set of TCompileReason; +const + crAll = [crCompile, crBuild, crRun]; + +type { TLazCompilerOptions } TLazCompilerOptions = class(TPersistent)