MG: added publish project

git-svn-id: trunk@3501 -
This commit is contained in:
lazarus 2002-10-13 09:35:38 +00:00
parent 81cc7f3a50
commit 92e2f6aee5
9 changed files with 121 additions and 189 deletions

View File

@ -56,14 +56,6 @@ uses
const const
ExternalMacroStart = ExprEval.ExternalMacroStart; 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) // Standard Template Names (do not translate them)
StdDefTemplFPC = 'Free Pascal Compiler'; StdDefTemplFPC = 'Free Pascal Compiler';
@ -333,15 +325,6 @@ begin
end; end;
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; function CompareUnitLinkNodes(NodeData1, NodeData2: pointer): integer;
var Link1, Link2: TUnitNameLink; var Link1, Link2: TUnitNameLink;
begin begin
@ -358,118 +341,6 @@ begin
Result:=CompareFilenames(DirDef1.Path,DirDef2.Path); Result:=CompareFilenames(DirDef1.Path,DirDef2.Path);
end; 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 (DirStartMask<DirEndMask) and (DirStartFile<DirEndFile) do begin
case Mask[DirStartMask] of
'?':
begin
inc(DirStartMask);
inc(DirStartFile);
end;
'*':
begin
inc(DirStartMask);
AsteriskPos:=DirStartMask;
end;
else
begin
if Mask[DirStartMask]=SpecialChar then begin
inc(DirStartMask);
if (DirStartMask>length(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 (DirStartMask<DirEndmask) or (DirStartFile<DirEndFile) then exit;
// find starts of next directorys
DirStartMask:=DirEndMask+1;
DirStartFile:=DirEndFile+1;
until (DirStartFile>length(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 } { TDefineTemplate }

View File

@ -24,7 +24,7 @@ unit MemCheck;
{$goto on} {$goto on}
{$DEFINE EXTRA} {off $DEFINE EXTRA}
interface interface
@ -436,8 +436,10 @@ begin
is_in_getmem_list:=true; is_in_getmem_list:=true;
pp:=pp^.previous; pp:=pp^.previous;
inc(i); inc(i);
if i>getmem_cnt-freemem_cnt then if i>getmem_cnt-freemem_cnt then begin
writeln(ptext^,'error in linked list of heap_mem_info'); writeln(ptext^,'error in linked list of heap_mem_info');
RunError(204);
end;
end; end;
end; end;
@ -524,7 +526,7 @@ begin
pp:=pheap_mem_info(p); pp:=pheap_mem_info(p);
if not quicktrace and not(is_in_getmem_list(pp)) then if not quicktrace and not(is_in_getmem_list(pp)) then
RunError(204); RunError(204);
if (pp^.sig=$AAAAAAAA) and not usecrc then if (pp^.sig=$AAAAAAAA) {MG: fix for codetools :} {and not usecrc} then
begin begin
error_in_heap:=true; error_in_heap:=true;
dump_already_free(pp,ptext^); dump_already_free(pp,ptext^);

View File

@ -86,7 +86,9 @@ resourcestring
lisSaveAllModified = 'save all modified files'; lisSaveAllModified = 'save all modified files';
lisTargetFilenameOfProject = 'Target filename of project'; lisTargetFilenameOfProject = 'Target filename of project';
lisTargetFilenamePlusParams = 'Target filename + params'; lisTargetFilenamePlusParams = 'Target filename + params';
lisTestDirectory = 'Test directory';
lisLaunchingCmdLine = 'Launching target command line'; lisLaunchingCmdLine = 'Launching target command line';
lisPublishProjDir = 'Publish project directory';
// main bar menu // main bar menu
lisMenuFile = '&File'; lisMenuFile = '&File';

View File

@ -847,7 +847,6 @@ begin
itmProjectPublish := TMenuItem.Create(Self); itmProjectPublish := TMenuItem.Create(Self);
itmProjectPublish.Name:='itmProjectPublish'; itmProjectPublish.Name:='itmProjectPublish';
itmProjectPublish.Caption := lisMenuPublishProject; itmProjectPublish.Caption := lisMenuPublishProject;
itmProjectPublish.Enabled:=false;
mnuProject.Add(itmProjectPublish); mnuProject.Add(itmProjectPublish);
mnuProject.Add(CreateMenuSeparator); mnuProject.Add(CreateMenuSeparator);

View File

@ -268,7 +268,8 @@ type
destructor Destroy; override; destructor Destroy; override;
function ReadProject(const LPIFilename: string): TModalResult; 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; property Units[Index: integer]:TUnitInfo read GetUnits write SetUnits;
function UnitCount:integer; function UnitCount:integer;
@ -1041,7 +1042,8 @@ end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------
TProject WriteProject TProject WriteProject
------------------------------------------------------------------------------} ------------------------------------------------------------------------------}
function TProject.WriteProject: TModalResult; function TProject.WriteProject(ProjectWriteFlags: TProjectWriteFlags;
const OverrideProjectInfoFile: string): TModalResult;
procedure SaveFlags; procedure SaveFlags;
var f: TProjectFlag; var f: TProjectFlag;
@ -1055,10 +1057,14 @@ function TProject.WriteProject: TModalResult;
function UnitMustBeSaved(i: integer): boolean; function UnitMustBeSaved(i: integer): boolean;
begin begin
Result:=false; Result:=false;
if (pfSaveOnlyProjectUnits in Flags) and (not Units[i].IsPartOfProject) then if not Units[i].IsPartOfProject then begin
exit; if (pfSaveOnlyProjectUnits in Flags) then exit;
if (not (pfSaveClosedUnits in Flags)) and (not Units[i].IsPartOfProject) if (pwfSaveOnlyProjectUnits in ProjectWriteFlags) then exit;
and (not Units[i].Loaded) 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; Result:=true;
end; end;
@ -1083,6 +1089,9 @@ var
begin begin
Result := mrCancel; Result := mrCancel;
if OverrideProjectInfoFile<>'' then
confPath := OverrideProjectInfoFile
else
confPath := ProjectInfoFile; confPath := ProjectInfoFile;
if Assigned(fOnFileBackup) then begin if Assigned(fOnFileBackup) then begin
Result:=fOnFileBackup(confPath,true); Result:=fOnFileBackup(confPath,true);
@ -2066,6 +2075,9 @@ end.
{ {
$Log$ $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 Revision 1.82 2002/10/04 21:31:56 lazarus
MG: added some component rename checks MG: added some component rename checks

View File

@ -42,6 +42,9 @@ uses
type type
TOnLoadSaveFilename = procedure(var Filename:string; Load:boolean) of object; TOnLoadSaveFilename = procedure(var Filename:string; Load:boolean) of object;
TProjectWriteFlag = (pwfDontSaveClosedUnits, pwfSaveOnlyProjectUnits);
TProjectWriteFlags = set of TProjectWriteFlag;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
TProjectBookmark = class TProjectBookmark = class
private private
@ -266,6 +269,8 @@ type
procedure LoadDefaults; procedure LoadDefaults;
procedure LoadFromXMLConfig(XMLConfig: TXMLConfig; const APath: string); procedure LoadFromXMLConfig(XMLConfig: TXMLConfig; const APath: string);
procedure SaveToXMLConfig(XMLConfig: TXMLConfig; const APath: string); procedure SaveToXMLConfig(XMLConfig: TXMLConfig; const APath: string);
function FileCanBePublished(const AFilename: string): boolean;
function WriteFlags: TProjectWriteFlags;
// destination // destination
property DestinationDirectory: string property DestinationDirectory: string
@ -1052,5 +1057,34 @@ begin
SaveEditorInfoOfNonProjectFiles); SaveEditorInfoOfNonProjectFiles);
end; 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. end.

View File

@ -34,6 +34,9 @@ object PublishProjectDialog: TPublishProjectDialog
object DestDirGroupBox: TGROUPBOX object DestDirGroupBox: TGROUPBOX
ANCHORS = [aktop, akleft] ANCHORS = [aktop, akleft]
CAPTION = 'Destination directory' CAPTION = 'Destination directory'
COLOR = -2147483643
PARENTCTL3D = False
TABORDER = 2
ONRESIZE = DestDirGroupBoxRESIZE ONRESIZE = DestDirGroupBoxRESIZE
LEFT = 8 LEFT = 8
HEIGHT = 111 HEIGHT = 111
@ -89,6 +92,9 @@ object PublishProjectDialog: TPublishProjectDialog
object FilesGroupbox: TGROUPBOX object FilesGroupbox: TGROUPBOX
ANCHORS = [aktop, akleft] ANCHORS = [aktop, akleft]
CAPTION = 'Files' CAPTION = 'Files'
COLOR = -2147483643
PARENTCTL3D = False
TABORDER = 3
ONRESIZE = FilesGroupboxRESIZE ONRESIZE = FilesGroupboxRESIZE
LEFT = 8 LEFT = 8
HEIGHT = 139 HEIGHT = 139
@ -147,6 +153,9 @@ object PublishProjectDialog: TPublishProjectDialog
object ProjectInfoGroupbox: TGROUPBOX object ProjectInfoGroupbox: TGROUPBOX
ANCHORS = [aktop, akleft] ANCHORS = [aktop, akleft]
CAPTION = 'Project Information' CAPTION = 'Project Information'
COLOR = -2147483643
PARENTCTL3D = False
TABORDER = 4
ONRESIZE = ProjectInfoGroupboxRESIZE ONRESIZE = ProjectInfoGroupboxRESIZE
LEFT = 8 LEFT = 8
HEIGHT = 69 HEIGHT = 69

View File

@ -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' +'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 +'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' +'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' +'op'#6'akleft'#0#7'CAPTION'#6#21'Destination directory'#5'COLOR'#4#5#0#0#128
+'tDirGroupBoxRESIZE'#4'LEFT'#2#8#6'HEIGHT'#2'o'#3'TOP'#2#8#5'WIDTH'#3#194#1#0 +#11'PARENTCTL3D'#8#8'TABORDER'#2#2#8'ONRESIZE'#7#21'DestDirGroupBoxRESIZE'#4
+#9'TCOMBOBOX'#15'DestDirComboBox'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#11'PARE' +'LEFT'#2#8#6'HEIGHT'#2'o'#3'TOP'#2#8#5'WIDTH'#3#194#1#0#9'TCOMBOBOX'#15'Dest'
+'NTCTL3D'#8#7'TABSTOP'#9#4'TEXT'#6#15'DestDirComboBox'#4'LEFT'#2#6#6'HEIGHT' +'DirComboBox'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#11'PARENTCTL3D'#8#7'TABSTOP'
+#2#25#3'TOP'#2#1#5'WIDTH'#3'^'#1#0#0#7'TBITBTN'#19'BrowseDestDirBitBtn'#10'G' +#9#4'TEXT'#6#15'DestDirComboBox'#4'LEFT'#2#6#6'HEIGHT'#2#25#3'TOP'#2#1#5'WID'
+'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 +'TH'#3'^'#1#0#0#7'TBITBTN'#19'BrowseDestDirBitBtn'#10'GLYPH.Data'#10'>'#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 +':'#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
+#7'SPACING'#2#3#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6#6'Browse'#7 +#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'
+'TABSTOP'#9#8'TABORDER'#2#1#4'LEFT'#3'n'#1#6'HEIGHT'#2#25#3'TOP'#2#1#5'WIDTH' +'ORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6#6'Browse'#7'TABSTOP'#9#8'TABORDER'
+#2'H'#0#0#9'TCOMBOBOX'#20'CommandAfterCombobox'#7'ANCHORS'#11#5'aktop'#6'akl' +#2#1#4'LEFT'#3'n'#1#6'HEIGHT'#2#25#3'TOP'#2#1#5'WIDTH'#2'H'#0#0#9'TCOMBOBOX'
+'eft'#0#11'PARENTCTL3D'#8#8'TABORDER'#2#2#7'TABSTOP'#9#4'TEXT'#6#20'CommandA' +#20'CommandAfterCombobox'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#11'PARENTCTL3D'
+'fterCombobox'#4'LEFT'#2#6#6'HEIGHT'#2#25#3'TOP'#2':'#5'WIDTH'#3#174#1#0#0#6 +#8#8'TABORDER'#2#2#7'TABSTOP'#9#4'TEXT'#6#20'CommandAfterCombobox'#4'LEFT'#2
+'TLABEL'#17'CommandAfterLabel'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAPTION' +#6#6'HEIGHT'#2#25#3'TOP'#2':'#5'WIDTH'#3#174#1#0#0#6'TLABEL'#17'CommandAfter'
+#6#14'Command after:'#5'COLOR'#4#5#0#0#128#6'LAYOUT'#7#5'tltop'#4'LEFT'#2#6#6 +'Label'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6#14'Command after:'#5
+'HEIGHT'#2#17#3'TOP'#2'!'#5'WIDTH'#3#172#1#0#0#0#9'TGROUPBOX'#13'FilesGroupb' +'COLOR'#4#5#0#0#128#6'LAYOUT'#7#5'tltop'#4'LEFT'#2#6#6'HEIGHT'#2#17#3'TOP'#2
+'ox'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6#5'Files'#8'ONRESIZE'#7 +'!'#5'WIDTH'#3#172#1#0#0#0#9'TGROUPBOX'#13'FilesGroupbox'#7'ANCHORS'#11#5'ak'
+#19'FilesGroupboxRESIZE'#4'LEFT'#2#8#6'HEIGHT'#3#139#0#3'TOP'#3#128#0#5'WIDT' +'top'#6'akleft'#0#7'CAPTION'#6#5'Files'#5'COLOR'#4#5#0#0#128#11'PARENTCTL3D'
+'H'#3#194#1#0#9'TCHECKBOX'#24'UseIncludeFilterCheckbox'#8'AUTOSIZE'#9#11'ALL' +#8#8'TABORDER'#2#3#8'ONRESIZE'#7#19'FilesGroupboxRESIZE'#4'LEFT'#2#8#6'HEIGH'
+'OWGRAYED'#9#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6#18'Use include ' +'T'#3#139#0#3'TOP'#3#128#0#5'WIDTH'#3#194#1#0#9'TCHECKBOX'#24'UseIncludeFilt'
+'filter'#10'DRAGCURSOR'#2#0#7'TABSTOP'#9#7'TABSTOP'#9#4'LEFT'#2#4#6'HEIGHT'#2 +'erCheckbox'#8'AUTOSIZE'#9#11'ALLOWGRAYED'#9#7'ANCHORS'#11#5'aktop'#6'akleft'
+#20#5'WIDTH'#3#171#0#0#0#9'TCOMBOBOX'#25'IncludeFileFilterCombobox'#7'ANCHOR' +#0#7'CAPTION'#6#18'Use include filter'#10'DRAGCURSOR'#2#0#7'TABSTOP'#9#7'TAB'
+'S'#11#5'aktop'#6'akleft'#0#11'PARENTCTL3D'#8#8'TABORDER'#2#1#7'TABSTOP'#9#4 +'STOP'#9#4'LEFT'#2#4#6'HEIGHT'#2#20#5'WIDTH'#3#171#0#0#0#9'TCOMBOBOX'#25'Inc'
+'TEXT'#6#25'IncludeFileFilterCombobox'#4'LEFT'#2#4#6'HEIGHT'#2#25#3'TOP'#2#24 +'ludeFileFilterCombobox'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#11'PARENTCTL3D'#8
+#5'WIDTH'#3#176#1#0#0#9'TCHECKBOX'#24'UseExcludeFilterCheckbox'#8'AUTOSIZE'#9 +#8'TABORDER'#2#1#7'TABSTOP'#9#4'TEXT'#6#25'IncludeFileFilterCombobox'#4'LEFT'
+#11'ALLOWGRAYED'#9#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6#18'Use ex' +#2#4#6'HEIGHT'#2#25#3'TOP'#2#24#5'WIDTH'#3#176#1#0#0#9'TCHECKBOX'#24'UseExcl'
+'clude filter'#10'DRAGCURSOR'#2#0#8'TABORDER'#2#2#7'TABSTOP'#9#8'TABORDER'#2 +'udeFilterCheckbox'#8'AUTOSIZE'#9#11'ALLOWGRAYED'#9#7'ANCHORS'#11#5'aktop'#6
+#2#7'TABSTOP'#9#4'LEFT'#2#4#6'HEIGHT'#2#20#3'TOP'#2'@'#5'WIDTH'#3#175#0#0#0#9 +'akleft'#0#7'CAPTION'#6#18'Use exclude filter'#10'DRAGCURSOR'#2#0#8'TABORDER'
+'TCOMBOBOX'#25'ExcludeFileFilterCombobox'#7'ANCHORS'#11#5'aktop'#6'akleft'#0 +#2#2#7'TABSTOP'#9#8'TABORDER'#2#2#7'TABSTOP'#9#4'LEFT'#2#4#6'HEIGHT'#2#20#3
+#11'PARENTCTL3D'#8#8'TABORDER'#2#3#7'TABSTOP'#9#4'TEXT'#6#25'ExcludeFileFilt' +'TOP'#2'@'#5'WIDTH'#3#175#0#0#0#9'TCOMBOBOX'#25'ExcludeFileFilterCombobox'#7
+'erCombobox'#4'LEFT'#2#4#6'HEIGHT'#2#25#3'TOP'#2'X'#5'WIDTH'#3#176#1#0#0#0#9 +'ANCHORS'#11#5'aktop'#6'akleft'#0#11'PARENTCTL3D'#8#8'TABORDER'#2#3#7'TABSTO'
+'TGROUPBOX'#19'ProjectInfoGroupbox'#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAP' +'P'#9#4'TEXT'#6#25'ExcludeFileFilterCombobox'#4'LEFT'#2#4#6'HEIGHT'#2#25#3'T'
+'TION'#6#19'Project Information'#8'ONRESIZE'#7#25'ProjectInfoGroupboxRESIZE' +'OP'#2'X'#5'WIDTH'#3#176#1#0#0#0#9'TGROUPBOX'#19'ProjectInfoGroupbox'#7'ANCH'
+#4'LEFT'#2#8#6'HEIGHT'#2'E'#3'TOP'#3#24#1#5'WIDTH'#3#194#1#0#9'TCHECKBOX!Sav' +'ORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6#19'Project Information'#5'COLOR'#4
+'eClosedEditorFilesInfoCheckbox'#8'AUTOSIZE'#9#11'ALLOWGRAYED'#9#7'ANCHORS' +#5#0#0#128#11'PARENTCTL3D'#8#8'TABORDER'#2#4#8'ONRESIZE'#7#25'ProjectInfoGro'
+#11#5'aktop'#6'akleft'#0#7'CAPTION'#6' Save editor info of closed files'#10 +'upboxRESIZE'#4'LEFT'#2#8#6'HEIGHT'#2'E'#3'TOP'#3#24#1#5'WIDTH'#3#194#1#0#9
+'DRAGCURSOR'#2#0#7'TABSTOP'#9#7'TABSTOP'#9#4'LEFT'#2#4#6'HEIGHT'#2#20#3'TOP' +'TCHECKBOX!SaveClosedEditorFilesInfoCheckbox'#8'AUTOSIZE'#9#11'ALLOWGRAYED'#9
+#2#1#5'WIDTH'#3#176#1#0#0#9'TCHECKBOX''SaveEditorInfoOfNonProjectFilesCheckb' +#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CAPTION'#6' Save editor info of closed'
+'ox'#8'AUTOSIZE'#9#11'ALLOWGRAYED'#9#7'ANCHORS'#11#5'aktop'#6'akleft'#0#7'CA' +' files'#10'DRAGCURSOR'#2#0#7'TABSTOP'#9#7'TABSTOP'#9#4'LEFT'#2#4#6'HEIGHT'#2
+'PTION'#6'%Save editor info of non project files'#10'DRAGCURSOR'#2#0#8'TABOR' +#20#3'TOP'#2#1#5'WIDTH'#3#176#1#0#0#9'TCHECKBOX''SaveEditorInfoOfNonProjectF'
+'DER'#2#1#7'TABSTOP'#9#8'TABORDER'#2#1#7'TABSTOP'#9#4'LEFT'#2#4#6'HEIGHT'#2 +'ilesCheckbox'#8'AUTOSIZE'#9#11'ALLOWGRAYED'#9#7'ANCHORS'#11#5'aktop'#6'akle'
+#20#3'TOP'#2#26#5'WIDTH'#3#176#1#0#0#0#7'TBUTTON'#18'SaveSettingsButton'#7'A' +'ft'#0#7'CAPTION'#6'%Save editor info of non project files'#10'DRAGCURSOR'#2
+'NCHORS'#11#5'aktop'#7'akright'#0#7'CAPTION'#6#13'Save settings'#7'TABSTOP'#9 +#0#8'TABORDER'#2#1#7'TABSTOP'#9#8'TABORDER'#2#1#7'TABSTOP'#9#4'LEFT'#2#4#6'H'
+#8'TABORDER'#2#5#7'ONCLICK'#7#23'SaveSettingsButtonCLICK'#4'LEFT'#3#202#0#6 +'EIGHT'#2#20#3'TOP'#2#26#5'WIDTH'#3#176#1#0#0#0#7'TBUTTON'#18'SaveSettingsBu'
+'HEIGHT'#2#25#3'TOP'#3'p'#1#5'WIDTH'#2'x'#0#0#0 +'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
]); ]);

View File

@ -182,7 +182,7 @@ begin
// command after // command after
List:=InputHistories.HistoryLists.GetList(PublishProjectCommandsAfter,true); List:=InputHistories.HistoryLists.GetList(PublishProjectCommandsAfter,true);
if List.Count=0 then begin if List.Count=0 then begin
List.Add('tar czf $(ProjPublishDir).tgz $(ProjPublishDir)'); List.Add('/bin/tar czf $MakeFile($(ProjPublishDir)).tgz $(ProjPublishDir)');
end; end;
CommandAfterCombobox.Items.Assign(List); CommandAfterCombobox.Items.Assign(List);
@ -235,6 +235,7 @@ begin
Position:=poScreenCenter; Position:=poScreenCenter;
IDEDialogLayoutList.ApplyLayout(Self,500,405); IDEDialogLayoutList.ApplyLayout(Self,500,405);
LoadHistoryLists; LoadHistoryLists;
FilesGroupbox.Enabled:=false;
end; end;
destructor TPublishProjectDialog.Destroy; destructor TPublishProjectDialog.Destroy;