* IDE: Renamed InfoBuilder routines to more understandable name

* IDE: Only show buildprogress if there is really something compiled

git-svn-id: trunk@23191 -
This commit is contained in:
marc 2009-12-18 22:31:23 +00:00
parent 404211ce2f
commit a5e41fe16c
7 changed files with 216 additions and 181 deletions

View File

@ -39,7 +39,7 @@ unit Compiler;
interface interface
uses uses
Classes, SysUtils, Process, LCLProc, Forms, Controls, FileUtil, Classes, SysUtils, Process, LCLProc, Forms, Controls, FileUtil, InfoBuild,
LazarusIDEStrConsts, CompilerOptions, Project, OutputFilter, UTF8Process; LazarusIDEStrConsts, CompilerOptions, Project, OutputFilter, UTF8Process;
type type
@ -103,6 +103,9 @@ begin
Result:=mrCancel; Result:=mrCancel;
DebugLn('TCompiler.Compile WorkingDir="',WorkingDir,'" CompilerFilename="',CompilerFilename,'" CompilerParams="',CompilerParams,'"'); DebugLn('TCompiler.Compile WorkingDir="',WorkingDir,'" CompilerFilename="',CompilerFilename,'" CompilerParams="',CompilerParams,'"');
// if we want to show the compile progress, it's now time to show the dialog
CompileProgress.Show;
// change working directory // change working directory
OldCurDir:=GetCurrentDirUTF8; OldCurDir:=GetCurrentDirUTF8;
if not SetCurrentDirUTF8(WorkingDir) then begin if not SetCurrentDirUTF8(WorkingDir) then begin

View File

@ -319,8 +319,9 @@ begin
), ),
mtError,[mbIgnore,mbAbort],0); mtError,[mbIgnore,mbAbort],0);
if Result=mrIgnore then Result:=mrCancel; if Result=mrIgnore then Result:=mrCancel;
PutExitInfoBuilder(Format(lisExtToolUnableToRunTheTool, ['"', Title, '"', #13,
'Program '+Filename+' not found'])); CompileProgress.Ready(lisExtToolUnableToRunTheTool, ['"', Title, '"', #13,
'Program '+Filename+' not found']);
exit; exit;
end; end;
Filename:=NewFilename; Filename:=NewFilename;
@ -347,7 +348,7 @@ begin
Abort:=false; Abort:=false;
OnNeedsOutputFilter(TheOutputFilter,Abort); OnNeedsOutputFilter(TheOutputFilter,Abort);
if Abort then begin if Abort then begin
PutExitInfoBuilder(lisInfoBuildAbort); CompileProgress.Ready(lisInfoBuildAbort);
Result:=mrAbort; Result:=mrAbort;
exit; exit;
end; end;
@ -417,8 +418,7 @@ begin
DebugLn(['TExternalToolList.Run AAA2']); DebugLn(['TExternalToolList.Run AAA2']);
if Result=mrIgnore then Result:=mrCancel; if Result=mrIgnore then Result:=mrCancel;
DebugLn(['TExternalToolList.Run AAA3']); DebugLn(['TExternalToolList.Run AAA3']);
PutExitInfoBuilder(Format(lisExtToolUnableToRunTheTool, CompileProgress.Ready(lisExtToolUnableToRunTheTool, ['"', Title, '"', #13, e.Message]);
['"', Title, '"', #13, e.Message]));
DebugLn(['TExternalToolList.Run AAA4']); DebugLn(['TExternalToolList.Run AAA4']);
end; end;
end; end;

View File

@ -1,4 +1,4 @@
object FInfoCompile: TFInfoCompile object CompileInfoDlg: TCompileInfoDlg
Left = 628 Left = 628
Height = 200 Height = 200
Top = 372 Top = 372
@ -125,10 +125,10 @@ object FInfoCompile: TFInfoCompile
ClientWidth = 122 ClientWidth = 122
TabOrder = 0 TabOrder = 0
object LNLines: TLabel object LNLines: TLabel
Left = 49 Left = 47
Height = 46 Height = 46
Top = 2 Top = 2
Width = 66 Width = 68
Align = alClient Align = alClient
Alignment = taRightJustify Alignment = taRightJustify
AutoSize = False AutoSize = False
@ -141,7 +141,7 @@ object FInfoCompile: TFInfoCompile
Left = 6 Left = 6
Height = 46 Height = 46
Top = 2 Top = 2
Width = 43 Width = 41
Align = alLeft Align = alLeft
BorderSpacing.Left = 4 BorderSpacing.Left = 4
Caption = 'Lines:' Caption = 'Lines:'
@ -178,10 +178,10 @@ object FInfoCompile: TFInfoCompile
ClientWidth = 114 ClientWidth = 114
TabOrder = 0 TabOrder = 0
object LNHint: TLabel object LNHint: TLabel
Left = 45 Left = 43
Height = 18 Height = 18
Top = 0 Top = 0
Width = 67 Width = 69
Align = alClient Align = alClient
Alignment = taRightJustify Alignment = taRightJustify
AutoSize = False AutoSize = False
@ -195,7 +195,7 @@ object FInfoCompile: TFInfoCompile
Left = 0 Left = 0
Height = 18 Height = 18
Top = 0 Top = 0
Width = 43 Width = 41
Align = alLeft Align = alLeft
Caption = 'Hints:' Caption = 'Hints:'
ParentColor = False ParentColor = False
@ -218,16 +218,16 @@ object FInfoCompile: TFInfoCompile
Left = 0 Left = 0
Height = 18 Height = 18
Top = 0 Top = 0
Width = 71 Width = 65
Align = alLeft Align = alLeft
Caption = 'Warnings:' Caption = 'Warnings:'
ParentColor = False ParentColor = False
end end
object LNWarning: TLabel object LNWarning: TLabel
Left = 73 Left = 67
Height = 18 Height = 18
Top = 0 Top = 0
Width = 39 Width = 45
Align = alClient Align = alClient
Alignment = taRightJustify Alignment = taRightJustify
AutoSize = False AutoSize = False
@ -270,16 +270,16 @@ object FInfoCompile: TFInfoCompile
Left = 0 Left = 0
Height = 18 Height = 18
Top = 0 Top = 0
Width = 48 Width = 47
Align = alLeft Align = alLeft
Caption = 'Notes:' Caption = 'Notes:'
ParentColor = False ParentColor = False
end end
object LNNote: TLabel object LNNote: TLabel
Left = 50 Left = 49
Height = 18 Height = 18
Top = 0 Top = 0
Width = 62 Width = 63
Align = alClient Align = alClient
Alignment = taRightJustify Alignment = taRightJustify
AutoSize = False AutoSize = False
@ -307,16 +307,16 @@ object FInfoCompile: TFInfoCompile
Left = 0 Left = 0
Height = 18 Height = 18
Top = 0 Top = 0
Width = 49 Width = 45
Align = alLeft Align = alLeft
Caption = 'Errors:' Caption = 'Errors:'
ParentColor = False ParentColor = False
end end
object LNError: TLabel object LNError: TLabel
Left = 51 Left = 47
Height = 18 Height = 18
Top = 0 Top = 0
Width = 61 Width = 65
Align = alClient Align = alClient
Alignment = taRightJustify Alignment = taRightJustify
AutoSize = False AutoSize = False

View File

@ -1,90 +1,90 @@
{ This is an automatically generated lazarus resource file } { This is an automatically generated lazarus resource file }
LazarusResources.Add('TFInfoCompile','FORMDATA',[ LazarusResources.Add('TCompileInfoDlg','FORMDATA',[
'TPF0'#13'TFInfoCompile'#12'FInfoCompile'#4'Left'#3't'#2#6'Height'#3#200#0#3 'TPF0'#15'TCompileInfoDlg'#14'CompileInfoDlg'#4'Left'#3't'#2#6'Height'#3#200#0
+'Top'#3't'#1#5'Width'#3#130#1#13'ActiveControl'#7#8'PnlTitle'#11'BorderIcons' +#3'Top'#3't'#1#5'Width'#3#130#1#13'ActiveControl'#7#8'PnlTitle'#11'BorderIco'
+#11#0#11'BorderStyle'#7#8'bsDialog'#7'Caption'#6#15'Compile project'#28'Chil' +'ns'#11#0#11'BorderStyle'#7#8'bsDialog'#7'Caption'#6#15'Compile project'#28
+'dSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'Child' +'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'C'
+'Sizing.HorizontalSpacing'#2#6#27'ChildSizing.VerticalSpacing'#2#6#12'Client' +'hildSizing.HorizontalSpacing'#2#6#27'ChildSizing.VerticalSpacing'#2#6#12'Cl'
+'Height'#3#200#0#11'ClientWidth'#3#130#1#9'FormStyle'#7#11'fsStayOnTop'#8'On' +'ientHeight'#3#200#0#11'ClientWidth'#3#130#1#9'FormStyle'#7#11'fsStayOnTop'#8
+'Create'#7#10'FormCreate'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6 +'OnCreate'#7#10'FormCreate'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6
+'0.9.29'#0#6'TPanel'#8'PnlTitle'#4'Left'#2#6#6'Height'#2#24#3'Top'#2#6#5'Wid' +#6'0.9.29'#0#6'TPanel'#8'PnlTitle'#4'Left'#2#6#6'Height'#2#24#3'Top'#2#6#5'W'
+'th'#3'v'#1#5'Align'#7#5'alTop'#10'BevelInner'#7#8'bvRaised'#10'BevelOuter'#7 +'idth'#3'v'#1#5'Align'#7#5'alTop'#10'BevelInner'#7#8'bvRaised'#10'BevelOuter'
+#9'bvLowered'#12'ClientHeight'#2#24#11'ClientWidth'#3'v'#1#10'Font.Style'#11 +#7#9'bvLowered'#12'ClientHeight'#2#24#11'ClientWidth'#3'v'#1#10'Font.Style'
+#6'fsBold'#0#10'ParentFont'#8#8'TabOrder'#2#0#0#6'TLabel'#6'lbInfo'#4'Left'#2 +#11#6'fsBold'#0#10'ParentFont'#8#8'TabOrder'#2#0#0#6'TLabel'#6'lbInfo'#4'Lef'
+#7#6'Height'#2#20#3'Top'#2#2#5'Width'#3'h'#1#5'Align'#7#8'alClient'#9'Alignm' +'t'#2#7#6'Height'#2#20#3'Top'#2#2#5'Width'#3'h'#1#5'Align'#7#8'alClient'#9'A'
+'ent'#7#8'taCenter'#18'BorderSpacing.Left'#2#5#19'BorderSpacing.Right'#2#5#6 +'lignment'#7#8'taCenter'#18'BorderSpacing.Left'#2#5#19'BorderSpacing.Right'#2
+'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#0#6'TPanel'#6'Panel1'#4'Left'#2 +#5#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#0#6'TPanel'#6'Panel1'#4'Lef'
+#6#6'Height'#2'>'#3'Top'#2'$'#5'Width'#3'v'#1#5'Align'#7#8'alClient'#10'Beve' +'t'#2#6#6'Height'#2'>'#3'Top'#2'$'#5'Width'#3'v'#1#5'Align'#7#8'alClient'#10
+'lInner'#7#8'bvRaised'#10'BevelOuter'#7#9'bvLowered'#12'ClientHeight'#2'>'#11 +'BevelInner'#7#8'bvRaised'#10'BevelOuter'#7#9'bvLowered'#12'ClientHeight'#2
+'ClientWidth'#3'v'#1#11'ParentColor'#8#8'TabOrder'#2#1#0#6'TLabel'#14'PCurre' +'>'#11'ClientWidth'#3'v'#1#11'ParentColor'#8#8'TabOrder'#2#1#0#6'TLabel'#14
+'ntStatus'#4'Left'#2#4#6'Height'#2'6'#3'Top'#2#4#5'Width'#3'n'#1#5'Align'#7#8 +'PCurrentStatus'#4'Left'#2#4#6'Height'#2'6'#3'Top'#2#4#5'Width'#3'n'#1#5'Ali'
+'alClient'#9'Alignment'#7#8'taCenter'#8'AutoSize'#8#18'BorderSpacing.Left'#2 +'gn'#7#8'alClient'#9'Alignment'#7#8'taCenter'#8'AutoSize'#8#18'BorderSpacing'
+#2#17'BorderSpacing.Top'#2#2#19'BorderSpacing.Right'#2#2#20'BorderSpacing.Bo' +'.Left'#2#2#17'BorderSpacing.Top'#2#2#19'BorderSpacing.Right'#2#2#20'BorderS'
+'ttom'#2#2#5'Color'#7#9'clBtnFace'#6'Layout'#7#8'tlCenter'#11'ParentColor'#8 +'pacing.Bottom'#2#2#5'Color'#7#9'clBtnFace'#6'Layout'#7#8'tlCenter'#11'Paren'
+#11'Transparent'#8#8'WordWrap'#9#0#0#0#6'TPanel'#9'pnlButton'#4'Left'#2#6#6 +'tColor'#8#11'Transparent'#8#8'WordWrap'#9#0#0#0#6'TPanel'#9'pnlButton'#4'Le'
+'Height'#2'"'#3'Top'#3#160#0#5'Width'#3'v'#1#5'Align'#7#8'alBottom'#10'Bevel' +'ft'#2#6#6'Height'#2'"'#3'Top'#3#160#0#5'Width'#3'v'#1#5'Align'#7#8'alBottom'
+'Outer'#7#6'bvNone'#12'ClientHeight'#2'"'#11'ClientWidth'#3'v'#1#8'TabOrder' +#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'"'#11'ClientWidth'#3'v'#1#8'T'
+#2#2#0#7'TBitBtn'#6'BClose'#24'AnchorSideBottom.Control'#7#5'Owner'#21'Ancho' +'abOrder'#2#2#0#7'TBitBtn'#6'BClose'#24'AnchorSideBottom.Control'#7#5'Owner'
+'rSideBottom.Side'#7#9'asrBottom'#4'Left'#3#134#0#6'Height'#2'"'#3'Top'#2#0#5 +#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#134#0#6'Height'#2'"'#3'T'
+'Width'#2'k'#7'Anchors'#11#5'akTop'#0#7'Caption'#6#3'&OK'#7'Default'#9#4'Kin' +'op'#2#0#5'Width'#2'k'#7'Anchors'#11#5'akTop'#0#7'Caption'#6#3'&OK'#7'Defaul'
+'d'#7#4'bkOK'#11'ModalResult'#2#1#9'NumGlyphs'#2#0#7'OnClick'#7#11'BCloseCli' +'t'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#9'NumGlyphs'#2#0#7'OnClick'#7#11
+'ck'#8'TabOrder'#2#0#0#0#0#6'TPanel'#7'pnlInfo'#4'Left'#2#6#6'Height'#2'2'#3 +'BCloseClick'#8'TabOrder'#2#0#0#0#0#6'TPanel'#7'pnlInfo'#4'Left'#2#6#6'Heigh'
+'Top'#2'h'#5'Width'#3'v'#1#5'Align'#7#8'alBottom'#10'BevelOuter'#7#6'bvNone' +'t'#2'2'#3'Top'#2'h'#5'Width'#3'v'#1#5'Align'#7#8'alBottom'#10'BevelOuter'#7
+#12'ClientHeight'#2'2'#11'ClientWidth'#3'v'#1#8'TabOrder'#2#3#0#6'TPanel'#8 +#6'bvNone'#12'ClientHeight'#2'2'#11'ClientWidth'#3'v'#1#8'TabOrder'#2#3#0#6
+'pnlLines'#22'AnchorSideLeft.Control'#7#5'Owner'#18'AnchorSideTop.Side'#7#9 +'TPanel'#8'pnlLines'#22'AnchorSideLeft.Control'#7#5'Owner'#18'AnchorSideTop.'
+'asrCenter'#4'Left'#2#0#6'Height'#2'2'#3'Top'#2#0#5'Width'#2'z'#5'Align'#7#6 +'Side'#7#9'asrCenter'#4'Left'#2#0#6'Height'#2'2'#3'Top'#2#0#5'Width'#2'z'#5
+'alLeft'#10'BevelInner'#7#8'bvRaised'#10'BevelOuter'#7#9'bvLowered'#12'Clien' +'Align'#7#6'alLeft'#10'BevelInner'#7#8'bvRaised'#10'BevelOuter'#7#9'bvLowere'
+'tHeight'#2'2'#11'ClientWidth'#2'z'#8'TabOrder'#2#0#0#6'TLabel'#7'LNLines'#4 +'d'#12'ClientHeight'#2'2'#11'ClientWidth'#2'z'#8'TabOrder'#2#0#0#6'TLabel'#7
+'Left'#2'1'#6'Height'#2'.'#3'Top'#2#2#5'Width'#2'B'#5'Align'#7#8'alClient'#9 +'LNLines'#4'Left'#2'/'#6'Height'#2'.'#3'Top'#2#2#5'Width'#2'D'#5'Align'#7#8
+'Alignment'#7#14'taRightJustify'#8'AutoSize'#8#19'BorderSpacing.Right'#2#5#7 +'alClient'#9'Alignment'#7#14'taRightJustify'#8'AutoSize'#8#19'BorderSpacing.'
+'Caption'#6#1'0'#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#6'TLabel'#10 +'Right'#2#5#7'Caption'#6#1'0'#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#6
+'LInfoLines'#4'Left'#2#6#6'Height'#2'.'#3'Top'#2#2#5'Width'#2'+'#5'Align'#7#6 +'TLabel'#10'LInfoLines'#4'Left'#2#6#6'Height'#2'.'#3'Top'#2#2#5'Width'#2')'#5
+'alLeft'#18'BorderSpacing.Left'#2#4#7'Caption'#6#6'Lines:'#6'Layout'#7#8'tlC' +'Align'#7#6'alLeft'#18'BorderSpacing.Left'#2#4#7'Caption'#6#6'Lines:'#6'Layo'
+'enter'#11'ParentColor'#8#0#0#0#6'TPanel'#6'Panel3'#22'AnchorSideLeft.Contro' +'ut'#7#8'tlCenter'#11'ParentColor'#8#0#0#0#6'TPanel'#6'Panel3'#22'AnchorSide'
+'l'#7#5'Owner'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'~'#6'Height'#2 +'Left.Control'#7#5'Owner'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#2'~'
+'2'#3'Top'#2#0#5'Width'#2'z'#5'Align'#7#8'alClient'#18'BorderSpacing.Left'#2 +#6'Height'#2'2'#3'Top'#2#0#5'Width'#2'z'#5'Align'#7#8'alClient'#18'BorderSpa'
+#4#19'BorderSpacing.Right'#2#4#10'BevelInner'#7#8'bvRaised'#10'BevelOuter'#7 +'cing.Left'#2#4#19'BorderSpacing.Right'#2#4#10'BevelInner'#7#8'bvRaised'#10
+#9'bvLowered'#12'ClientHeight'#2'2'#11'ClientWidth'#2'z'#8'TabOrder'#2#1#0#6 +'BevelOuter'#7#9'bvLowered'#12'ClientHeight'#2'2'#11'ClientWidth'#2'z'#8'Tab'
+'TPanel'#16'pnlHintsWarnings'#4'Left'#2#4#6'Height'#2#18#3'Top'#2#6#5'Width' +'Order'#2#1#0#6'TPanel'#16'pnlHintsWarnings'#4'Left'#2#4#6'Height'#2#18#3'To'
+#2'r'#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#2#17'BorderSpacing.Top'#2 +'p'#2#6#5'Width'#2'r'#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#2#17'Bord'
+#4#19'BorderSpacing.Right'#2#2#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2 +'erSpacing.Top'#2#4#19'BorderSpacing.Right'#2#2#10'BevelOuter'#7#6'bvNone'#12
+#18#11'ClientWidth'#2'r'#8'TabOrder'#2#0#0#6'TLabel'#6'LNHint'#4'Left'#2'-'#6 +'ClientHeight'#2#18#11'ClientWidth'#2'r'#8'TabOrder'#2#0#0#6'TLabel'#6'LNHin'
+'Height'#2#18#3'Top'#2#0#5'Width'#2'C'#5'Align'#7#8'alClient'#9'Alignment'#7 +'t'#4'Left'#2'+'#6'Height'#2#18#3'Top'#2#0#5'Width'#2'E'#5'Align'#7#8'alClie'
+#14'taRightJustify'#8'AutoSize'#8#18'BorderSpacing.Left'#2#2#19'BorderSpacin' +'nt'#9'Alignment'#7#14'taRightJustify'#8'AutoSize'#8#18'BorderSpacing.Left'#2
+'g.Right'#2#2#7'Caption'#6#1'0'#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLa' +#2#19'BorderSpacing.Right'#2#2#7'Caption'#6#1'0'#11'ParentColor'#8#10'Parent'
+'bel'#9'LInfoHint'#4'Left'#2#0#6'Height'#2#18#3'Top'#2#0#5'Width'#2'+'#5'Ali' +'Font'#8#0#0#6'TLabel'#9'LInfoHint'#4'Left'#2#0#6'Height'#2#18#3'Top'#2#0#5
+'gn'#7#6'alLeft'#7'Caption'#6#6'Hints:'#11'ParentColor'#8#0#0#0#6'TPanel'#17 +'Width'#2')'#5'Align'#7#6'alLeft'#7'Caption'#6#6'Hints:'#11'ParentColor'#8#0
+'pnlHintsWarnings1'#4'Left'#2#4#6'Height'#2#18#3'Top'#2#26#5'Width'#2'r'#5'A' +#0#0#6'TPanel'#17'pnlHintsWarnings1'#4'Left'#2#4#6'Height'#2#18#3'Top'#2#26#5
+'lign'#7#5'alTop'#18'BorderSpacing.Left'#2#2#17'BorderSpacing.Top'#2#2#19'Bo' +'Width'#2'r'#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#2#17'BorderSpacing'
+'rderSpacing.Right'#2#2#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2#18#11 +'.Top'#2#2#19'BorderSpacing.Right'#2#2#10'BevelOuter'#7#6'bvNone'#12'ClientH'
+'ClientWidth'#2'r'#8'TabOrder'#2#1#0#6'TLabel'#12'LInfoWarning'#4'Left'#2#0#6 +'eight'#2#18#11'ClientWidth'#2'r'#8'TabOrder'#2#1#0#6'TLabel'#12'LInfoWarnin'
+'Height'#2#18#3'Top'#2#0#5'Width'#2'G'#5'Align'#7#6'alLeft'#7'Caption'#6#9'W' +'g'#4'Left'#2#0#6'Height'#2#18#3'Top'#2#0#5'Width'#2'A'#5'Align'#7#6'alLeft'
+'arnings:'#11'ParentColor'#8#0#0#6'TLabel'#9'LNWarning'#4'Left'#2'I'#6'Heigh' +#7'Caption'#6#9'Warnings:'#11'ParentColor'#8#0#0#6'TLabel'#9'LNWarning'#4'Le'
+'t'#2#18#3'Top'#2#0#5'Width'#2''''#5'Align'#7#8'alClient'#9'Alignment'#7#14 +'ft'#2'C'#6'Height'#2#18#3'Top'#2#0#5'Width'#2'-'#5'Align'#7#8'alClient'#9'A'
+'taRightJustify'#8'AutoSize'#8#18'BorderSpacing.Left'#2#2#19'BorderSpacing.R' +'lignment'#7#14'taRightJustify'#8'AutoSize'#8#18'BorderSpacing.Left'#2#2#19
+'ight'#2#2#7'Caption'#6#1'0'#11'ParentColor'#8#10'ParentFont'#8#0#0#0#0#6'TP'
+'anel'#14'pnlNotesErrors'#22'AnchorSideLeft.Control'#7#5'Owner'#18'AnchorSid'
,'eTop.Side'#7#9'asrCenter'#4'Left'#3#252#0#6'Height'#2'2'#3'Top'#2#0#5'Width'
+#2'z'#5'Align'#7#7'alRight'#18'BorderSpacing.Left'#2#4#10'BevelInner'#7#8'bv'
+'Raised'#10'BevelOuter'#7#9'bvLowered'#12'ClientHeight'#2'2'#11'ClientWidth'
+#2'z'#8'TabOrder'#2#2#0#6'TPanel'#17'pnlHintsWarnings2'#4'Left'#2#4#6'Height'
+#2#18#3'Top'#2#6#5'Width'#2'r'#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#2
+#17'BorderSpacing.Top'#2#4#19'BorderSpacing.Right'#2#2#10'BevelOuter'#7#6'bv'
+'None'#12'ClientHeight'#2#18#11'ClientWidth'#2'r'#8'TabOrder'#2#0#0#6'TLabel'
+#9'LInfoNote'#4'Left'#2#0#6'Height'#2#18#3'Top'#2#0#5'Width'#2'0'#5'Align'#7
+#6'alLeft'#7'Caption'#6#6'Notes:'#11'ParentColor'#8#0#0#6'TLabel'#6'LNNote'#4
+'Left'#2'2'#6'Height'#2#18#3'Top'#2#0#5'Width'#2'>'#5'Align'#7#8'alClient'#9
+'Alignment'#7#14'taRightJustify'#8'AutoSize'#8#18'BorderSpacing.Left'#2#2#19
+'BorderSpacing.Right'#2#2#7'Caption'#6#1'0'#11'ParentColor'#8#10'ParentFont' +'BorderSpacing.Right'#2#2#7'Caption'#6#1'0'#11'ParentColor'#8#10'ParentFont'
+#8#0#0#0#6'TPanel'#9'pnlErrors'#4'Left'#2#4#6'Height'#2#18#3'Top'#2#26#5'Wid' +#8#0#0#0#0#6'TPanel'#14'pnlNotesErrors'#22'AnchorSideLeft.Control'#7#5'Owner'
+'th'#2'r'#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#2#17'BorderSpacing.To' ,#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#252#0#6'Height'#2'2'#3'Top'
+'p'#2#2#19'BorderSpacing.Right'#2#2#10'BevelOuter'#7#6'bvNone'#12'ClientHeig' +#2#0#5'Width'#2'z'#5'Align'#7#7'alRight'#18'BorderSpacing.Left'#2#4#10'Bevel'
+'ht'#2#18#11'ClientWidth'#2'r'#8'TabOrder'#2#1#0#6'TLabel'#10'LInfoError'#4 +'Inner'#7#8'bvRaised'#10'BevelOuter'#7#9'bvLowered'#12'ClientHeight'#2'2'#11
+'Left'#2#0#6'Height'#2#18#3'Top'#2#0#5'Width'#2'1'#5'Align'#7#6'alLeft'#7'Ca' +'ClientWidth'#2'z'#8'TabOrder'#2#2#0#6'TPanel'#17'pnlHintsWarnings2'#4'Left'
+'ption'#6#7'Errors:'#11'ParentColor'#8#0#0#6'TLabel'#7'LNError'#4'Left'#2'3' +#2#4#6'Height'#2#18#3'Top'#2#6#5'Width'#2'r'#5'Align'#7#5'alTop'#18'BorderSp'
+#6'Height'#2#18#3'Top'#2#0#5'Width'#2'='#5'Align'#7#8'alClient'#9'Alignment' +'acing.Left'#2#2#17'BorderSpacing.Top'#2#4#19'BorderSpacing.Right'#2#2#10'Be'
+#7#14'taRightJustify'#8'AutoSize'#8#18'BorderSpacing.Left'#2#2#19'BorderSpac' +'velOuter'#7#6'bvNone'#12'ClientHeight'#2#18#11'ClientWidth'#2'r'#8'TabOrder'
+'ing.Right'#2#2#7'Caption'#6#1'0'#11'ParentColor'#8#10'ParentFont'#8#0#0#0#0 +#2#0#0#6'TLabel'#9'LInfoNote'#4'Left'#2#0#6'Height'#2#18#3'Top'#2#0#5'Width'
+#0#0 +#2'/'#5'Align'#7#6'alLeft'#7'Caption'#6#6'Notes:'#11'ParentColor'#8#0#0#6'TL'
+'abel'#6'LNNote'#4'Left'#2'1'#6'Height'#2#18#3'Top'#2#0#5'Width'#2'?'#5'Alig'
+'n'#7#8'alClient'#9'Alignment'#7#14'taRightJustify'#8'AutoSize'#8#18'BorderS'
+'pacing.Left'#2#2#19'BorderSpacing.Right'#2#2#7'Caption'#6#1'0'#11'ParentCol'
+'or'#8#10'ParentFont'#8#0#0#0#6'TPanel'#9'pnlErrors'#4'Left'#2#4#6'Height'#2
+#18#3'Top'#2#26#5'Width'#2'r'#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#2
+#17'BorderSpacing.Top'#2#2#19'BorderSpacing.Right'#2#2#10'BevelOuter'#7#6'bv'
+'None'#12'ClientHeight'#2#18#11'ClientWidth'#2'r'#8'TabOrder'#2#1#0#6'TLabel'
+#10'LInfoError'#4'Left'#2#0#6'Height'#2#18#3'Top'#2#0#5'Width'#2'-'#5'Align'
+#7#6'alLeft'#7'Caption'#6#7'Errors:'#11'ParentColor'#8#0#0#6'TLabel'#7'LNErr'
+'or'#4'Left'#2'/'#6'Height'#2#18#3'Top'#2#0#5'Width'#2'A'#5'Align'#7#8'alCli'
+'ent'#9'Alignment'#7#14'taRightJustify'#8'AutoSize'#8#18'BorderSpacing.Left'
+#2#2#19'BorderSpacing.Right'#2#2#7'Caption'#6#1'0'#11'ParentColor'#8#10'Pare'
+'ntFont'#8#0#0#0#0#0#0
]); ]);

View File

@ -31,15 +31,13 @@ interface
uses uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons, Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons,
LCLProc, ExtCtrls, StdCtrls, ExtDlgs, LCLProc, ExtCtrls, StdCtrls, ExtDlgs, LazIDEIntf, LazarusIDEStrConsts;
LazIDEIntf,
LazarusIDEStrConsts;
type type
{ TFInfoCompile } { TCompileInfoDlg }
TFInfoCompile = class ( TForm ) TCompileInfoDlg = class (TForm)
BClose: TBitBtn; BClose: TBitBtn;
lbInfo: TLabel; lbInfo: TLabel;
LInfoError: TLabel; LInfoError: TLabel;
@ -64,8 +62,8 @@ type
PCurrentStatus : TLabel; PCurrentStatus : TLabel;
Panel1 : TPanel; Panel1 : TPanel;
PnlTitle : TPanel; PnlTitle : TPanel;
procedure BCloseClick ( Sender : TObject ) ; procedure BCloseClick(Sender: TObject);
procedure FormCreate ( Sender : TObject ) ; procedure FormCreate(Sender: TObject);
private private
NHints : Integer; NHints : Integer;
NWarnings : Integer; NWarnings : Integer;
@ -74,30 +72,42 @@ type
NLines : Integer; NLines : Integer;
ToAbort : Boolean; ToAbort : Boolean;
public public
Procedure SetProjectName(Const Sname : String); procedure SetProjectName(const Sname: String);
Procedure SetStatus(Const SStatus : String); procedure SetStatus(const SStatus: String);
Procedure SetCanClose; procedure SetCanClose;
Procedure MakeBold; procedure MakeBold;
end;
TCompileProgressClass = class of TCompileProgress;
{ TCompileProgress }
TCompileProgress = class
class procedure CreateDialog(AOwner: TComponent; const AProject, AStatus: String);
class procedure Close;
class procedure Show;
class procedure Hide;
class procedure SetEnabled(AValue: Boolean);
class procedure SetStatus(const AStatus: String);
class procedure SetProject(const AProject: String);
class procedure Ready(const AMessage: String = '');
class procedure Ready(const AMessage: String; const AParams: array of const);
end; end;
var var
FInfoCompile : TFInfoCompile; CompileProgress: TCompileProgressClass = TCompileProgress;
ShowCompileDialog: Boolean = false;
Procedure CreateInfoBuilder(Owner: TComponent);
Procedure DestroyInfoBuilder;
Procedure PutInfoBuilderStatus(Const Info : String);
Procedure PutInfoBuilderProject(Const Info : String);
Procedure AbleInfoBuilderExit;
Procedure PutExitInfoBuilder(Const Info : String);
implementation implementation
{ TFInfoCompile } var
MCompileInfoDlg: TCompileInfoDlg;
MCompileDialogEnabled: Boolean = False;
procedure TFInfoCompile.BCloseClick ( Sender : TObject ) ; { TCompileInfoDlg }
procedure TCompileInfoDlg.BCloseClick(Sender: TObject);
begin begin
If ToAbort then if ToAbort then
begin begin
LazarusIDE.AbortBuild; LazarusIDE.AbortBuild;
SetStatus('Aborted...!'); SetStatus('Aborted...!');
@ -107,7 +117,7 @@ begin
Close; Close;
end; end;
procedure TFInfoCompile.FormCreate ( Sender : TObject ) ; procedure TCompileInfoDlg.FormCreate (Sender: TObject);
begin begin
NHints := 0; NHints := 0;
NWarnings := 0; NWarnings := 0;
@ -133,12 +143,12 @@ begin
end; end;
Procedure TFInfoCompile.SetProjectName(Const Sname : String); procedure TCompileInfoDlg.SetProjectName(const Sname : String);
begin begin
lbInfo.Caption := lisInfoBuildBuild + ' '+ ExtractFileName(Sname); lbInfo.Caption := lisInfoBuildBuild + ' '+ ExtractFileName(Sname);
end; end;
Procedure TFInfoCompile.SetStatus(Const SStatus : String); procedure TCompileInfoDlg.SetStatus(const SStatus : String);
Var Var
S : String; S : String;
Ok : Boolean; Ok : Boolean;
@ -196,58 +206,83 @@ begin
pnlInfo.Refresh; pnlInfo.Refresh;
end; end;
Procedure TFInfoCompile.SetCanClose; procedure TCompileInfoDlg.SetCanClose;
begin begin
ToAbort := False; ToAbort := False;
BClose.Kind := bkOk; BClose.Kind := bkOk;
BClose.Caption := lisMenuClose; BClose.Caption := lisMenuClose;
end; end;
Procedure TFInfoCompile.MakeBold; procedure TCompileInfoDlg.MakeBold;
begin begin
PCurrentStatus.Font.Style:= PCurrentStatus.Font.Style + [fsBold]; PCurrentStatus.Font.Style:= PCurrentStatus.Font.Style + [fsBold];
end; end;
Procedure PutInfoBuilderStatus(Const Info : String);
{ TCompileProgress }
class procedure TCompileProgress.Close;
begin begin
if Assigned(FInfoCompile) then FInfoCompile.SetStatus(Info); FreeAndNil(MCompileInfoDlg);
end; end;
Procedure DestroyInfoBuilder; class procedure TCompileProgress.CreateDialog(AOwner: TComponent; const AProject, AStatus: String);
begin begin
if Assigned(FInfoCompile) then Close;
if MCompileDialogEnabled then
begin begin
FInfoCompile.Free; MCompileInfoDlg := TCompileInfoDlg.Create(AOwner);
FinfoCompile := Nil; MCompileInfoDlg.SetProjectName(AProject);
MCompileInfoDlg.SetStatus(AStatus);
// delay show til actual compile
//MCompileInfoDlg.Show;
end; end;
end; end;
Procedure CreateInfoBuilder(Owner: TComponent); class procedure TCompileProgress.Hide;
begin begin
//DebugLn(['CreateInfoBuilder ',ShowCompileDialog]); if MCompileInfoDlg = nil then Exit;
DestroyInfoBuilder; MCompileInfoDlg.Hide;
if ShowCompileDialog then end;
begin
FInfoCompile := TFInfoCompile.Create(Owner); class procedure TCompileProgress.SetEnabled(AValue: Boolean);
FInfoCompile.Show; begin
MCompileDialogEnabled := AValue;
end;
class procedure TCompileProgress.SetProject(const AProject: String);
begin
if MCompileInfoDlg = nil then Exit;
MCompileInfoDlg.SetProjectName(AProject);
end;
class procedure TCompileProgress.Ready(const AMessage: String);
begin
if MCompileInfoDlg = nil then Exit;
if AMessage <> ''
then begin
MCompileInfoDlg.SetStatus(AMessage);
MCompileInfoDlg.MakeBold;
end; end;
MCompileInfoDlg.SetCanClose;
end; end;
Procedure PutInfoBuilderProject(Const Info : String); class procedure TCompileProgress.Ready(const AMessage: String; const AParams: array of const);
begin begin
if Assigned(FInfoCompile) then FInfoCompile.SetProjectName(Info); if MCompileInfoDlg = nil then Exit;
Ready(Format(AMessage, AParams));
end; end;
Procedure AbleInfoBuilderExit; class procedure TCompileProgress.SetStatus(const AStatus: String);
begin begin
if Assigned(FInfoCompile) then FInfoCompile.SetCanClose; if MCompileInfoDlg = nil then Exit;
MCompileInfoDlg.SetStatus(AStatus);
end; end;
Procedure PutExitInfoBuilder(Const Info : String); class procedure TCompileProgress.Show;
begin begin
PutInfoBuilderStatus(Info); if MCompileInfoDlg = nil then Exit;
if Assigned(FInfoCompile) then FInfoCompile.MakeBold; MCompileInfoDlg.Show;
AbleInfoBuilderExit;
end; end;
initialization initialization

View File

@ -1160,7 +1160,7 @@ begin
CodeExplorerOptions.Load; CodeExplorerOptions.Load;
MainBuildBoss.SetupInputHistories; MainBuildBoss.SetupInputHistories;
ShowCompileDialog:=EnvironmentOptions.ShowCompileDialog; CompileProgress.SetEnabled(EnvironmentOptions.ShowCompileDialog);
CreateDirUTF8(GetProjectSessionsConfigPath); CreateDirUTF8(GetProjectSessionsConfigPath);
end; end;
@ -4240,7 +4240,7 @@ begin
OldCompilerFilename:=EnvironmentOptions.CompilerFilename; OldCompilerFilename:=EnvironmentOptions.CompilerFilename;
OldLanguage:=EnvironmentOptions.LanguageID; OldLanguage:=EnvironmentOptions.LanguageID;
IDEOptionsDialog.WriteAll; IDEOptionsDialog.WriteAll;
ShowCompileDialog := EnvironmentOptions.ShowCompileDialog; CompileProgress.SetEnabled(EnvironmentOptions.ShowCompileDialog);
UpdateDefaultPascalFileExtensions; UpdateDefaultPascalFileExtensions;
@ -9964,9 +9964,7 @@ begin
end; end;
end; end;
CreateInfoBuilder(OwningComponent); CompileProgress.CreateDialog(OwningComponent, Project1.MainFilename, lisInfoBuildComplile);
PutInfoBuilderProject(Project1.MainFilename);
PutInfoBuilderStatus(lisInfoBuildComplile);
// clear old error lines // clear old error lines
SourceNotebook.ClearErrorLines; SourceNotebook.ClearErrorLines;
@ -9995,7 +9993,7 @@ begin
Result:=PkgBoss.DoCompileProjectDependencies(Project1,PkgFlags); Result:=PkgBoss.DoCompileProjectDependencies(Project1,PkgFlags);
if Result <> mrOk then if Result <> mrOk then
begin begin
PutExitInfoBuilder(lisInfoBuildError); CompileProgress.Ready(lisInfoBuildError);
exit; exit;
end; end;
Result:=DoCallModalFunctionHandler(lihtOnProjectDependenciesCompiled); Result:=DoCallModalFunctionHandler(lihtOnProjectDependenciesCompiled);
@ -10014,7 +10012,7 @@ begin
Result:=DoWarnAmbiguousFiles; Result:=DoWarnAmbiguousFiles;
if Result<>mrOk then if Result<>mrOk then
begin begin
PutExitInfoBuilder(lisInfoBuildError); CompileProgress.Ready(lisInfoBuildError);
exit; exit;
end; end;
@ -10028,13 +10026,13 @@ begin
if (pbfOnlyIfNeeded in Flags) if (pbfOnlyIfNeeded in Flags)
and (not (pfAlwaysBuild in Project1.Flags)) then begin and (not (pfAlwaysBuild in Project1.Flags)) then begin
if Result=mrNo then begin if Result=mrNo then begin
PutExitInfoBuilder(lisInfoBuildError); CompileProgress.Ready(lisInfoBuildError);
Result:=mrOk; Result:=mrOk;
exit; exit;
end; end;
if Result<>mrYes then if Result<>mrYes then
begin begin
PutExitInfoBuilder(lisInfoBuildError); CompileProgress.Ready(lisInfoBuildError);
exit; exit;
end; end;
end; end;
@ -10097,7 +10095,7 @@ begin
Project1.ProjectDirectory,lisExecutingCommandBefore); Project1.ProjectDirectory,lisExecutingCommandBefore);
if Result<>mrOk then if Result<>mrOk then
begin begin
PutExitInfoBuilder(lisInfoBuildError); CompileProgress.Ready(lisInfoBuildError);
exit; exit;
end; end;
end; end;
@ -10126,20 +10124,20 @@ begin
Project1.LastCompilerParams:=CompilerParams; Project1.LastCompilerParams:=CompilerParams;
Project1.LastCompilerFileDate:=FileAgeUTF8(CompilerFilename); Project1.LastCompilerFileDate:=FileAgeUTF8(CompilerFilename);
DoJumpToCompilerMessage(-1,true); DoJumpToCompilerMessage(-1,true);
PutExitInfoBuilder(lisInfoBuildError); CompileProgress.Ready(lisInfoBuildError);
exit; exit;
end; end;
// compilation succeded -> write state file // compilation succeded -> write state file
Result:=Project1.SaveStateFile(CompilerFilename,CompilerParams); Result:=Project1.SaveStateFile(CompilerFilename,CompilerParams);
if Result<>mrOk then begin if Result<>mrOk then begin
PutExitInfoBuilder(lisInfoBuildError); CompileProgress.Ready(lisInfoBuildError);
exit; exit;
end; end;
// update project .po file // update project .po file
Result:=UpdateProjectPOFile(Project1); Result:=UpdateProjectPOFile(Project1);
if Result<>mrOk then begin if Result<>mrOk then begin
PutExitInfoBuilder(lisInfoBuildError); CompileProgress.Ready(lisInfoBuildError);
exit; exit;
end; end;
@ -10158,7 +10156,7 @@ begin
Project1.ProjectDirectory,lisExecutingCommandAfter); Project1.ProjectDirectory,lisExecutingCommandAfter);
if Result<>mrOk then if Result<>mrOk then
begin begin
PutExitInfoBuilder(lisInfoBuildError); CompileProgress.Ready(lisInfoBuildError);
exit; exit;
end; end;
end; end;
@ -10167,7 +10165,7 @@ begin
// add success message // add success message
MessagesView.AddMsg(Format(lisProjectSuccessfullyBuilt, ['"', MessagesView.AddMsg(Format(lisProjectSuccessfullyBuilt, ['"',
Project1.ShortDescription, '"']),'',-1); Project1.ShortDescription, '"']),'',-1);
PutExitInfoBuilder(lisInfoBuildSuccess); CompileProgress.Ready(lisInfoBuildSuccess);
finally finally
// check sources // check sources
@ -10525,8 +10523,7 @@ begin
// first compile all lazarus components (LCL, SynEdit, CodeTools, ...) // first compile all lazarus components (LCL, SynEdit, CodeTools, ...)
// but not the IDE // but not the IDE
SourceNotebook.ClearErrorLines; SourceNotebook.ClearErrorLines;
CreateInfoBuilder(OwningComponent); CompileProgress.CreateDialog(OwningComponent, 'Lazarus...', '');
PutInfoBuilderProject('Lazarus...');
Result:=BuildLazarus(MiscellaneousOptions.BuildLazOpts, Result:=BuildLazarus(MiscellaneousOptions.BuildLazOpts,
EnvironmentOptions.ExternalTools,GlobalMacroList, EnvironmentOptions.ExternalTools,GlobalMacroList,
'',EnvironmentOptions.CompilerFilename, '',EnvironmentOptions.CompilerFilename,
@ -10540,7 +10537,7 @@ begin
// then compile the 'installed' packages // then compile the 'installed' packages
if ([blfWithStaticPackages,blfOnlyIDE]*Flags=[]) if ([blfWithStaticPackages,blfOnlyIDE]*Flags=[])
and (MiscellaneousOptions.BuildLazOpts.ItemIDE.MakeMode=mmNone) then begin and (MiscellaneousOptions.BuildLazOpts.ItemIDE.MakeMode=mmNone) then begin
AbleInfoBuilderExit; CompileProgress.Ready;
exit; exit;
end; end;
@ -10608,13 +10605,13 @@ begin
MessagesView.EndBlock; MessagesView.EndBlock;
if Result = mrOK then if Result = mrOK then
PutExitInfoBuilder(lisinfoBuildSuccess) CompileProgress.Ready(lisinfoBuildSuccess)
else else
PutExitInfoBuilder(lisInfoBuildError); CompileProgress.Ready(lisInfoBuildError);
end; end;
if (Result=mrOK) and MiscellaneousOptions.BuildLazOpts.RestartAfterBuild then if (Result=mrOK) and MiscellaneousOptions.BuildLazOpts.RestartAfterBuild then
begin begin
DestroyInfoBuilder; CompileProgress.Close;
mnuRestartClicked(nil); mnuRestartClicked(nil);
end; end;
end; end;
@ -10698,9 +10695,9 @@ begin
Result:=mrOk; Result:=mrOk;
{if AReason <> crRun then {if AReason <> crRun then
AbleInfoBuilderExit CompileProgress.Ready
else} else}
DestroyInfoBuilder; CompileProgress.Close;
end; end;
function TMainIDE.DoRunFile: TModalResult; function TMainIDE.DoRunFile: TModalResult;

View File

@ -437,7 +437,7 @@ begin
end; end;
end; end;
if ToStoreMessage then PutInfoBuilderStatus(Msg); if ToStoreMessage then CompileProgress.SetStatus(Msg);
if NewMsg=nil then begin if NewMsg=nil then begin
NewMsg := TLazMessageLine.Create; NewMsg := TLazMessageLine.Create;