From 92e2f6aee5e6abcf58ce21761a6efd5f3f750893 Mon Sep 17 00:00:00 2001 From: lazarus Date: Sun, 13 Oct 2002 09:35:38 +0000 Subject: [PATCH] MG: added publish project git-svn-id: trunk@3501 - --- components/codetools/definetemplates.pas | 131 +---------------------- components/codetools/memcheck.pas | 12 ++- ide/lazarusidestrconsts.pas | 4 +- ide/mainbar.pas | 1 - ide/project.pp | 26 +++-- ide/projectdefs.pas | 34 ++++++ ide/publishprojectdlg.lfm | 9 ++ ide/publishprojectdlg.lrs | 90 ++++++++-------- ide/publishprojectdlg.pas | 3 +- 9 files changed, 121 insertions(+), 189 deletions(-) diff --git a/components/codetools/definetemplates.pas b/components/codetools/definetemplates.pas index a13bdee48e..4bd78eb209 100644 --- a/components/codetools/definetemplates.pas +++ b/components/codetools/definetemplates.pas @@ -56,15 +56,7 @@ uses const ExternalMacroStart = ExprEval.ExternalMacroStart; - {$ifdef win32} - SpecialChar = '/'; // used to use PathDelim, e.g. /\ - {$else} - SpecialChar = '\'; - {$endif} - {$ifdef win32} - {$define CaseInsensitiveFilenames} - {$endif} - + // Standard Template Names (do not translate them) StdDefTemplFPC = 'Free Pascal Compiler'; StdDefTemplFPCSrc = 'Free Pascal Sources'; @@ -333,15 +325,6 @@ begin end; end; -function CompareFilenames(const FileName1, Filename2: string): integer; -begin - {$ifdef CaseInsensitiveFilenames} - Result:=AnsiCompareText(FileName1,Filename2); - {$else} - Result:=AnsiCompareStr(FileName1,Filename2); - {$endif} -end; - function CompareUnitLinkNodes(NodeData1, NodeData2: pointer): integer; var Link1, Link2: TUnitNameLink; begin @@ -358,118 +341,6 @@ begin Result:=CompareFilenames(DirDef1.Path,DirDef2.Path); end; -function FilenameIsMatching(const Mask, Filename: string; - MatchExactly: boolean): boolean; -{ - check if Filename matches Mask - Filename matches exactly or is a file/directory in a subdirectory of mask - Mask can contain the wildcards * and ? - The wildcards will _not_ match PathDelim - If you need the asterisk, the question mark or the PathDelim as character - just put the SpecialChar character in front of it. - - Examples: - /abc matches /abc, /abc/p, /abc/xyz/filename - but not /abcd - /abc/x?z/www matches /abc/xyz/www, /abc/xaz/www - but not /abc/x/z/www - /abc/x*z/www matches /abc/xz/www, /abc/xyz/www, /abc/xAAAz/www - but not /abc/x/z/www - /abc/x\*z/www matches /abc/x*z/www, /abc/x*z/www/ttt -} -var DirStartMask, DirEndMask, DirStartFile, DirEndFile, AsteriskPos: integer; -begin - //writeln('[FilenameIsMatching] Mask="',Mask,'" Filename="',Filename,'" MatchExactly=',MatchExactly); - Result:=false; - if (Filename='') then exit; - if (Mask='') then begin - Result:=true; exit; - end; - // test every directory - DirStartMask:=1; - DirStartFile:=1; - repeat - // find start of directories - while (DirStartMask<=length(Mask)) - and (Mask[DirStartMask]=PathDelim) do - inc(DirStartMask); - while (DirStartFile<=length(Filename)) - and (Filename[DirStartFile]=PathDelim) do - inc(DirStartFile); - // find ends of directories - DirEndMask:=DirStartMask; - DirEndFile:=DirStartFile; - while (DirEndMask<=length(Mask)) do begin - if Mask[DirEndMask]=SpecialChar then - inc(DirEndMask,2) - else if (Mask[DirEndMask]=PathDelim) then - break - else - inc(DirEndMask); - end; - while (DirEndFile<=length(Filename)) do begin - if Filename[DirEndFile]=SpecialChar then - inc(DirEndFile,2) - else if (Filename[DirEndFile]=PathDelim) then - break - else - inc(DirEndFile); - end; - // writeln(' Compare "',copy(Mask,DirStartMask,DirEndMask-DirStartMask),'"', - // ' "',copy(Filename,DirStartFile,DirEndFile-DirStartFile),'"'); - // compare directories - AsteriskPos:=0; - while (DirStartMasklength(Mask)) then exit; - end; - {$ifdef CaseInsensitiveFilenames} - if (UpChars[Mask[DirStartMask]]<>UpChars[Filename[DirStartFile]]) then - {$else} - if (Mask[DirStartMask]<>Filename[DirStartFile]) then - {$endif} - begin - if AsteriskPos=0 then exit; - DirStartMask:=AsteriskPos; - end else begin - inc(DirStartMask); - inc(DirStartFile); - end; - end; - end; - end; - if (DirStartMasklength(Filename)) or (DirStartMask>length(Mask)); - while (DirStartMask<=length(Mask)) - and (Mask[DirStartMask]=PathDelim) do - inc(DirStartMask); - Result:=(DirStartMask>length(Mask)); - if MatchExactly then begin - while (DirStartFile<=length(Filename)) - and (Filename[DirStartFile]=PathDelim) do - inc(DirStartFile); - Result:=(Result and (DirStartFile>length(Filename))); - end; - //writeln(' [FilenameIsMatching] Result=',Result,' ',DirStartMask,',',length(Mask),' ',DirStartFile,',',length(Filename)); -end; - { TDefineTemplate } diff --git a/components/codetools/memcheck.pas b/components/codetools/memcheck.pas index af737e03d7..d9639f14f4 100644 --- a/components/codetools/memcheck.pas +++ b/components/codetools/memcheck.pas @@ -24,7 +24,7 @@ unit MemCheck; {$goto on} -{$DEFINE EXTRA} +{off $DEFINE EXTRA} interface @@ -433,11 +433,13 @@ begin RunError(204); end; if pp=p then - is_in_getmem_list:=true; + is_in_getmem_list:=true; pp:=pp^.previous; inc(i); - if i>getmem_cnt-freemem_cnt then - writeln(ptext^,'error in linked list of heap_mem_info'); + if i>getmem_cnt-freemem_cnt then begin + writeln(ptext^,'error in linked list of heap_mem_info'); + RunError(204); + end; end; end; @@ -524,7 +526,7 @@ begin pp:=pheap_mem_info(p); if not quicktrace and not(is_in_getmem_list(pp)) then RunError(204); - if (pp^.sig=$AAAAAAAA) and not usecrc then + if (pp^.sig=$AAAAAAAA) {MG: fix for codetools :} {and not usecrc} then begin error_in_heap:=true; dump_already_free(pp,ptext^); diff --git a/ide/lazarusidestrconsts.pas b/ide/lazarusidestrconsts.pas index cfd76cdcdc..891fbdb2ef 100644 --- a/ide/lazarusidestrconsts.pas +++ b/ide/lazarusidestrconsts.pas @@ -86,8 +86,10 @@ resourcestring lisSaveAllModified = 'save all modified files'; lisTargetFilenameOfProject = 'Target filename of project'; lisTargetFilenamePlusParams = 'Target filename + params'; + lisTestDirectory = 'Test directory'; lisLaunchingCmdLine = 'Launching target command line'; - + lisPublishProjDir = 'Publish project directory'; + // main bar menu lisMenuFile = '&File'; lisMenuEdit = '&Edit'; diff --git a/ide/mainbar.pas b/ide/mainbar.pas index 3606e3fd3c..894b6c9d20 100644 --- a/ide/mainbar.pas +++ b/ide/mainbar.pas @@ -847,7 +847,6 @@ begin itmProjectPublish := TMenuItem.Create(Self); itmProjectPublish.Name:='itmProjectPublish'; itmProjectPublish.Caption := lisMenuPublishProject; - itmProjectPublish.Enabled:=false; mnuProject.Add(itmProjectPublish); mnuProject.Add(CreateMenuSeparator); diff --git a/ide/project.pp b/ide/project.pp index f25f608d48..c4e3294f52 100644 --- a/ide/project.pp +++ b/ide/project.pp @@ -268,7 +268,8 @@ type destructor Destroy; override; function ReadProject(const LPIFilename: string): TModalResult; - function WriteProject: TModalResult; + function WriteProject(ProjectWriteFlags: TProjectWriteFlags; + const OverrideProjectInfoFile: string): TModalResult; property Units[Index: integer]:TUnitInfo read GetUnits write SetUnits; function UnitCount:integer; @@ -1041,7 +1042,8 @@ end; {------------------------------------------------------------------------------ TProject WriteProject ------------------------------------------------------------------------------} -function TProject.WriteProject: TModalResult; +function TProject.WriteProject(ProjectWriteFlags: TProjectWriteFlags; + const OverrideProjectInfoFile: string): TModalResult; procedure SaveFlags; var f: TProjectFlag; @@ -1055,10 +1057,14 @@ function TProject.WriteProject: TModalResult; function UnitMustBeSaved(i: integer): boolean; begin Result:=false; - if (pfSaveOnlyProjectUnits in Flags) and (not Units[i].IsPartOfProject) then - exit; - if (not (pfSaveClosedUnits in Flags)) and (not Units[i].IsPartOfProject) - and (not Units[i].Loaded) then exit; + if not Units[i].IsPartOfProject then begin + if (pfSaveOnlyProjectUnits in Flags) then exit; + if (pwfSaveOnlyProjectUnits in ProjectWriteFlags) then exit; + if (not Units[i].Loaded) then begin + if (not (pfSaveClosedUnits in Flags)) then exit; + if (pwfDontSaveClosedUnits in ProjectWriteFlags) then exit; + end; + end; Result:=true; end; @@ -1083,7 +1089,10 @@ var begin Result := mrCancel; - confPath := ProjectInfoFile; + if OverrideProjectInfoFile<>'' then + confPath := OverrideProjectInfoFile + else + confPath := ProjectInfoFile; if Assigned(fOnFileBackup) then begin Result:=fOnFileBackup(confPath,true); if Result=mrAbort then exit; @@ -2066,6 +2075,9 @@ end. { $Log$ + Revision 1.83 2002/10/13 09:35:37 lazarus + MG: added publish project + Revision 1.82 2002/10/04 21:31:56 lazarus MG: added some component rename checks diff --git a/ide/projectdefs.pas b/ide/projectdefs.pas index 46e7b5ebd4..9ce44b9a12 100644 --- a/ide/projectdefs.pas +++ b/ide/projectdefs.pas @@ -42,6 +42,9 @@ uses type TOnLoadSaveFilename = procedure(var Filename:string; Load:boolean) of object; + TProjectWriteFlag = (pwfDontSaveClosedUnits, pwfSaveOnlyProjectUnits); + TProjectWriteFlags = set of TProjectWriteFlag; + //--------------------------------------------------------------------------- TProjectBookmark = class private @@ -266,6 +269,8 @@ type procedure LoadDefaults; procedure LoadFromXMLConfig(XMLConfig: TXMLConfig; const APath: string); procedure SaveToXMLConfig(XMLConfig: TXMLConfig; const APath: string); + function FileCanBePublished(const AFilename: string): boolean; + function WriteFlags: TProjectWriteFlags; // destination property DestinationDirectory: string @@ -1052,5 +1057,34 @@ begin SaveEditorInfoOfNonProjectFiles); end; +function TPublishProjectOptions.FileCanBePublished( + const AFilename: string): boolean; +begin + {Result:=false; + + // check include filter + if UseIncludeFileFilter + and not FilenameIsMatching(IncludeFileFilter,ExtractFilename(AFilename),true) + then + exit; + // check exclude filter + if UseExcludeFileFilter + and FilenameIsMatching(ExcludeFileFilter,ExtractFilename(AFilename),true) + then + exit;} + + Result:=true; +end; + +function TPublishProjectOptions.WriteFlags: TProjectWriteFlags; +begin + Result:=[]; + if not SaveEditorInfoOfNonProjectFiles then + Include(Result,pwfSaveOnlyProjectUnits); + if not SaveClosedEditorFilesInfo then + Include(Result,pwfDontSaveClosedUnits); +end; + + end. diff --git a/ide/publishprojectdlg.lfm b/ide/publishprojectdlg.lfm index 90cc2800b4..fc684c46e1 100644 --- a/ide/publishprojectdlg.lfm +++ b/ide/publishprojectdlg.lfm @@ -34,6 +34,9 @@ object PublishProjectDialog: TPublishProjectDialog object DestDirGroupBox: TGROUPBOX ANCHORS = [aktop, akleft] CAPTION = 'Destination directory' + COLOR = -2147483643 + PARENTCTL3D = False + TABORDER = 2 ONRESIZE = DestDirGroupBoxRESIZE LEFT = 8 HEIGHT = 111 @@ -89,6 +92,9 @@ object PublishProjectDialog: TPublishProjectDialog object FilesGroupbox: TGROUPBOX ANCHORS = [aktop, akleft] CAPTION = 'Files' + COLOR = -2147483643 + PARENTCTL3D = False + TABORDER = 3 ONRESIZE = FilesGroupboxRESIZE LEFT = 8 HEIGHT = 139 @@ -147,6 +153,9 @@ object PublishProjectDialog: TPublishProjectDialog object ProjectInfoGroupbox: TGROUPBOX ANCHORS = [aktop, akleft] CAPTION = 'Project Information' + COLOR = -2147483643 + PARENTCTL3D = False + TABORDER = 4 ONRESIZE = ProjectInfoGroupboxRESIZE LEFT = 8 HEIGHT = 69 diff --git a/ide/publishprojectdlg.lrs b/ide/publishprojectdlg.lrs index 7b7ad81807..ee820e1165 100644 --- a/ide/publishprojectdlg.lrs +++ b/ide/publishprojectdlg.lrs @@ -11,48 +11,50 @@ LazarusResources.Add('TPublishProjectDialog','FORMDATA',[ +'n'#7'ANCHORS'#11#5'aktop'#7'akright'#0#11'MODALRESULT'#2#2#7'CAPTION'#6#6'C' +'ancel'#7'TABSTOP'#9#8'TABORDER'#2#1#4'LEFT'#3'w'#1#6'HEIGHT'#2#25#3'TOP'#3 +'p'#1#5'WIDTH'#2'K'#0#0#9'TGROUPBOX'#15'DestDirGroupBox'#7'ANCHORS'#11#5'akt' - +'op'#6'akleft'#0#7'CAPTION'#6#21'Destination directory'#8'ONRESIZE'#7#21'Des' - +'tDirGroupBoxRESIZE'#4'LEFT'#2#8#6'HEIGHT'#2'o'#3'TOP'#2#8#5'WIDTH'#3#194#1#0 - +#9'TCOMBOBOX'#15'DestDirComboBox'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#11'PARE' - +'NTCTL3D'#8#7'TABSTOP'#9#4'TEXT'#6#15'DestDirComboBox'#4'LEFT'#2#6#6'HEIGHT' - +#2#25#3'TOP'#2#1#5'WIDTH'#3'^'#1#0#0#7'TBITBTN'#19'BrowseDestDirBitBtn'#10'G' - +'LYPH.Data'#10'>'#0#0#0':'#0#0#0'BM:'#0#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#1#0#0#0 - +#1#0#0#0#1#0#16#0#0#0#0#0#4#0#0#0'Z'#0#0#0'`'#0#0#0'@'#0#0#0'@'#0#0#0#0#0#0#0 - +#7'SPACING'#2#3#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6#6'Browse'#7 - +'TABSTOP'#9#8'TABORDER'#2#1#4'LEFT'#3'n'#1#6'HEIGHT'#2#25#3'TOP'#2#1#5'WIDTH' - +#2'H'#0#0#9'TCOMBOBOX'#20'CommandAfterCombobox'#7'ANCHORS'#11#5'aktop'#6'akl' - +'eft'#0#11'PARENTCTL3D'#8#8'TABORDER'#2#2#7'TABSTOP'#9#4'TEXT'#6#20'CommandA' - +'fterCombobox'#4'LEFT'#2#6#6'HEIGHT'#2#25#3'TOP'#2':'#5'WIDTH'#3#174#1#0#0#6 - +'TLABEL'#17'CommandAfterLabel'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAPTION' - +#6#14'Command after:'#5'COLOR'#4#5#0#0#128#6'LAYOUT'#7#5'tltop'#4'LEFT'#2#6#6 - +'HEIGHT'#2#17#3'TOP'#2'!'#5'WIDTH'#3#172#1#0#0#0#9'TGROUPBOX'#13'FilesGroupb' - +'ox'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6#5'Files'#8'ONRESIZE'#7 - +#19'FilesGroupboxRESIZE'#4'LEFT'#2#8#6'HEIGHT'#3#139#0#3'TOP'#3#128#0#5'WIDT' - +'H'#3#194#1#0#9'TCHECKBOX'#24'UseIncludeFilterCheckbox'#8'AUTOSIZE'#9#11'ALL' - +'OWGRAYED'#9#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6#18'Use include ' - +'filter'#10'DRAGCURSOR'#2#0#7'TABSTOP'#9#7'TABSTOP'#9#4'LEFT'#2#4#6'HEIGHT'#2 - +#20#5'WIDTH'#3#171#0#0#0#9'TCOMBOBOX'#25'IncludeFileFilterCombobox'#7'ANCHOR' - +'S'#11#5'aktop'#6'akleft'#0#11'PARENTCTL3D'#8#8'TABORDER'#2#1#7'TABSTOP'#9#4 - +'TEXT'#6#25'IncludeFileFilterCombobox'#4'LEFT'#2#4#6'HEIGHT'#2#25#3'TOP'#2#24 - +#5'WIDTH'#3#176#1#0#0#9'TCHECKBOX'#24'UseExcludeFilterCheckbox'#8'AUTOSIZE'#9 - +#11'ALLOWGRAYED'#9#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6#18'Use ex' - +'clude filter'#10'DRAGCURSOR'#2#0#8'TABORDER'#2#2#7'TABSTOP'#9#8'TABORDER'#2 - +#2#7'TABSTOP'#9#4'LEFT'#2#4#6'HEIGHT'#2#20#3'TOP'#2'@'#5'WIDTH'#3#175#0#0#0#9 - +'TCOMBOBOX'#25'ExcludeFileFilterCombobox'#7'ANCHORS'#11#5'aktop'#6'akleft'#0 - +#11'PARENTCTL3D'#8#8'TABORDER'#2#3#7'TABSTOP'#9#4'TEXT'#6#25'ExcludeFileFilt' - +'erCombobox'#4'LEFT'#2#4#6'HEIGHT'#2#25#3'TOP'#2'X'#5'WIDTH'#3#176#1#0#0#0#9 - +'TGROUPBOX'#19'ProjectInfoGroupbox'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAP' - +'TION'#6#19'Project Information'#8'ONRESIZE'#7#25'ProjectInfoGroupboxRESIZE' - +#4'LEFT'#2#8#6'HEIGHT'#2'E'#3'TOP'#3#24#1#5'WIDTH'#3#194#1#0#9'TCHECKBOX!Sav' - +'eClosedEditorFilesInfoCheckbox'#8'AUTOSIZE'#9#11'ALLOWGRAYED'#9#7'ANCHORS' - +#11#5'aktop'#6'akleft'#0#7'CAPTION'#6' Save editor info of closed files'#10 - +'DRAGCURSOR'#2#0#7'TABSTOP'#9#7'TABSTOP'#9#4'LEFT'#2#4#6'HEIGHT'#2#20#3'TOP' - +#2#1#5'WIDTH'#3#176#1#0#0#9'TCHECKBOX''SaveEditorInfoOfNonProjectFilesCheckb' - +'ox'#8'AUTOSIZE'#9#11'ALLOWGRAYED'#9#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CA' - +'PTION'#6'%Save editor info of non project files'#10'DRAGCURSOR'#2#0#8'TABOR' - +'DER'#2#1#7'TABSTOP'#9#8'TABORDER'#2#1#7'TABSTOP'#9#4'LEFT'#2#4#6'HEIGHT'#2 - +#20#3'TOP'#2#26#5'WIDTH'#3#176#1#0#0#0#7'TBUTTON'#18'SaveSettingsButton'#7'A' - +'NCHORS'#11#5'aktop'#7'akright'#0#7'CAPTION'#6#13'Save settings'#7'TABSTOP'#9 - +#8'TABORDER'#2#5#7'ONCLICK'#7#23'SaveSettingsButtonCLICK'#4'LEFT'#3#202#0#6 - +'HEIGHT'#2#25#3'TOP'#3'p'#1#5'WIDTH'#2'x'#0#0#0 + +'op'#6'akleft'#0#7'CAPTION'#6#21'Destination directory'#5'COLOR'#4#5#0#0#128 + +#11'PARENTCTL3D'#8#8'TABORDER'#2#2#8'ONRESIZE'#7#21'DestDirGroupBoxRESIZE'#4 + +'LEFT'#2#8#6'HEIGHT'#2'o'#3'TOP'#2#8#5'WIDTH'#3#194#1#0#9'TCOMBOBOX'#15'Dest' + +'DirComboBox'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#11'PARENTCTL3D'#8#7'TABSTOP' + +#9#4'TEXT'#6#15'DestDirComboBox'#4'LEFT'#2#6#6'HEIGHT'#2#25#3'TOP'#2#1#5'WID' + +'TH'#3'^'#1#0#0#7'TBITBTN'#19'BrowseDestDirBitBtn'#10'GLYPH.Data'#10'>'#0#0#0 + +':'#0#0#0'BM:'#0#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#1#0#0#0#1#0#0#0#1#0#16#0#0#0#0 + +#0#4#0#0#0'Z'#0#0#0'`'#0#0#0'@'#0#0#0'@'#0#0#0#0#0#0#0#7'SPACING'#2#3#7'ANCH' + +'ORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6#6'Browse'#7'TABSTOP'#9#8'TABORDER' + +#2#1#4'LEFT'#3'n'#1#6'HEIGHT'#2#25#3'TOP'#2#1#5'WIDTH'#2'H'#0#0#9'TCOMBOBOX' + +#20'CommandAfterCombobox'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#11'PARENTCTL3D' + +#8#8'TABORDER'#2#2#7'TABSTOP'#9#4'TEXT'#6#20'CommandAfterCombobox'#4'LEFT'#2 + +#6#6'HEIGHT'#2#25#3'TOP'#2':'#5'WIDTH'#3#174#1#0#0#6'TLABEL'#17'CommandAfter' + +'Label'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6#14'Command after:'#5 + +'COLOR'#4#5#0#0#128#6'LAYOUT'#7#5'tltop'#4'LEFT'#2#6#6'HEIGHT'#2#17#3'TOP'#2 + +'!'#5'WIDTH'#3#172#1#0#0#0#9'TGROUPBOX'#13'FilesGroupbox'#7'ANCHORS'#11#5'ak' + +'top'#6'akleft'#0#7'CAPTION'#6#5'Files'#5'COLOR'#4#5#0#0#128#11'PARENTCTL3D' + +#8#8'TABORDER'#2#3#8'ONRESIZE'#7#19'FilesGroupboxRESIZE'#4'LEFT'#2#8#6'HEIGH' + +'T'#3#139#0#3'TOP'#3#128#0#5'WIDTH'#3#194#1#0#9'TCHECKBOX'#24'UseIncludeFilt' + +'erCheckbox'#8'AUTOSIZE'#9#11'ALLOWGRAYED'#9#7'ANCHORS'#11#5'aktop'#6'akleft' + +#0#7'CAPTION'#6#18'Use include filter'#10'DRAGCURSOR'#2#0#7'TABSTOP'#9#7'TAB' + +'STOP'#9#4'LEFT'#2#4#6'HEIGHT'#2#20#5'WIDTH'#3#171#0#0#0#9'TCOMBOBOX'#25'Inc' + +'ludeFileFilterCombobox'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#11'PARENTCTL3D'#8 + +#8'TABORDER'#2#1#7'TABSTOP'#9#4'TEXT'#6#25'IncludeFileFilterCombobox'#4'LEFT' + +#2#4#6'HEIGHT'#2#25#3'TOP'#2#24#5'WIDTH'#3#176#1#0#0#9'TCHECKBOX'#24'UseExcl' + +'udeFilterCheckbox'#8'AUTOSIZE'#9#11'ALLOWGRAYED'#9#7'ANCHORS'#11#5'aktop'#6 + +'akleft'#0#7'CAPTION'#6#18'Use exclude filter'#10'DRAGCURSOR'#2#0#8'TABORDER' + +#2#2#7'TABSTOP'#9#8'TABORDER'#2#2#7'TABSTOP'#9#4'LEFT'#2#4#6'HEIGHT'#2#20#3 + +'TOP'#2'@'#5'WIDTH'#3#175#0#0#0#9'TCOMBOBOX'#25'ExcludeFileFilterCombobox'#7 + +'ANCHORS'#11#5'aktop'#6'akleft'#0#11'PARENTCTL3D'#8#8'TABORDER'#2#3#7'TABSTO' + +'P'#9#4'TEXT'#6#25'ExcludeFileFilterCombobox'#4'LEFT'#2#4#6'HEIGHT'#2#25#3'T' + +'OP'#2'X'#5'WIDTH'#3#176#1#0#0#0#9'TGROUPBOX'#19'ProjectInfoGroupbox'#7'ANCH' + +'ORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6#19'Project Information'#5'COLOR'#4 + +#5#0#0#128#11'PARENTCTL3D'#8#8'TABORDER'#2#4#8'ONRESIZE'#7#25'ProjectInfoGro' + +'upboxRESIZE'#4'LEFT'#2#8#6'HEIGHT'#2'E'#3'TOP'#3#24#1#5'WIDTH'#3#194#1#0#9 + +'TCHECKBOX!SaveClosedEditorFilesInfoCheckbox'#8'AUTOSIZE'#9#11'ALLOWGRAYED'#9 + +#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6' Save editor info of closed' + +' files'#10'DRAGCURSOR'#2#0#7'TABSTOP'#9#7'TABSTOP'#9#4'LEFT'#2#4#6'HEIGHT'#2 + +#20#3'TOP'#2#1#5'WIDTH'#3#176#1#0#0#9'TCHECKBOX''SaveEditorInfoOfNonProjectF' + +'ilesCheckbox'#8'AUTOSIZE'#9#11'ALLOWGRAYED'#9#7'ANCHORS'#11#5'aktop'#6'akle' + +'ft'#0#7'CAPTION'#6'%Save editor info of non project files'#10'DRAGCURSOR'#2 + +#0#8'TABORDER'#2#1#7'TABSTOP'#9#8'TABORDER'#2#1#7'TABSTOP'#9#4'LEFT'#2#4#6'H' + +'EIGHT'#2#20#3'TOP'#2#26#5'WIDTH'#3#176#1#0#0#0#7'TBUTTON'#18'SaveSettingsBu' + +'tton'#7'ANCHORS'#11#5'aktop'#7'akright'#0#7'CAPTION'#6#13'Save settings'#7 + +'TABSTOP'#9#8'TABORDER'#2#5#7'ONCLICK'#7#23'SaveSettingsButtonCLICK'#4'LEFT' + +#3#202#0#6'HEIGHT'#2#25#3'TOP'#3'p'#1#5'WIDTH'#2'x'#0#0#0 ]); diff --git a/ide/publishprojectdlg.pas b/ide/publishprojectdlg.pas index d16ca6a0a5..bc9b5e98d7 100644 --- a/ide/publishprojectdlg.pas +++ b/ide/publishprojectdlg.pas @@ -182,7 +182,7 @@ begin // command after List:=InputHistories.HistoryLists.GetList(PublishProjectCommandsAfter,true); if List.Count=0 then begin - List.Add('tar czf $(ProjPublishDir).tgz $(ProjPublishDir)'); + List.Add('/bin/tar czf $MakeFile($(ProjPublishDir)).tgz $(ProjPublishDir)'); end; CommandAfterCombobox.Items.Assign(List); @@ -235,6 +235,7 @@ begin Position:=poScreenCenter; IDEDialogLayoutList.ApplyLayout(Self,500,405); LoadHistoryLists; + FilesGroupbox.Enabled:=false; end; destructor TPublishProjectDialog.Destroy;