mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-08 14:38:12 +02:00
* Also accept *.fmx as form file extension (Firemonkey form files)
This commit is contained in:
parent
5a59ce23e7
commit
f95b262013
@ -4099,7 +4099,7 @@ var
|
||||
if (ACleanPos<1) or (ACleanPos>SrcLen) or (ParamPos>SrcLen) then break;
|
||||
s:=UpperCaseStr(copy(Src,ParamPos,6));
|
||||
if (Src[ACleanPos]='{')
|
||||
and ((s='*.DFM}') or (s='*.XFM}'))
|
||||
and ((s='*.DFM}') or (s='*.XFM}') or (s='*.FMX}'))
|
||||
then begin
|
||||
StartPos:=FindLineEndOrCodeInFrontOfPosition(ACleanPos,true);
|
||||
if not SourceChangeCache.Replace(gtNone,gtNone,StartPos,ParamPos+6,'')
|
||||
|
@ -662,7 +662,7 @@ var
|
||||
begin
|
||||
// form dfm comment
|
||||
lsToken:=UpperCase(pt.SourceCode);
|
||||
Result := (pt.TokenType = ttComment) and ((lsToken = '{$R *.DFM}') or (lsToken = '{$R *.LFM}')) and
|
||||
Result := (pt.TokenType = ttComment) and ((lsToken = '{$R *.DFM}') or (lsToken = '{$R *.LFM}') or (lsToken = '{$R *.FMX}') ) and
|
||||
pt.HasParentNode(nImplementationSection, 4);
|
||||
end;
|
||||
|
||||
|
@ -338,7 +338,7 @@ begin
|
||||
Key:=copy(Code.Source, ParamPos+2, 3);
|
||||
LowKey:=LowerCase(Key);
|
||||
// Form file resource rename or lowercase:
|
||||
if (LowKey='dfm') or (LowKey='xfm') then begin
|
||||
if (LowKey='dfm') or (LowKey='xfm') or (LowKey='fmx') then begin
|
||||
if Assigned(Settings) and Settings.SupportDelphi then begin
|
||||
// Use the same dfm file. Lowercase existing key.
|
||||
if Settings.SameDfmFile then begin
|
||||
@ -348,7 +348,7 @@ begin
|
||||
else begin
|
||||
// Add IFDEF for .lfm and .dfm allowing Delphi to use .dfm.
|
||||
s:='{$IFnDEF FPC}'+LineEnding+
|
||||
' {$R *.dfm}'+LineEnding+
|
||||
' {$R *.'+Key+'}'+LineEnding+
|
||||
'{$ELSE}'+LineEnding+
|
||||
' {$R *.lfm}'+LineEnding+
|
||||
'{$ENDIF}';
|
||||
|
@ -497,6 +497,10 @@ begin
|
||||
Result:=ChangeFileExt(fOrigUnitFilename,'.xfm');
|
||||
if FileExistsUTF8(Result) then exit;
|
||||
Result:=ChangeFileExt(fOrigUnitFilename,'.XFM');
|
||||
if FileExistsUTF8(Result) then exit;
|
||||
Result:=ChangeFileExt(fOrigUnitFilename,'.fmx');
|
||||
if FileExistsUTF8(Result) then exit;
|
||||
Result:=ChangeFileExt(fOrigUnitFilename,'.FMX');
|
||||
if not FileExistsUTF8(Result) then
|
||||
Result:='';
|
||||
end;
|
||||
|
@ -366,7 +366,7 @@ begin
|
||||
dlgOpen.Filter:=dlgFilterAll+' ('+GetAllFilesMask+')|'+GetAllFilesMask
|
||||
+'|'+dlgFilterLazarusUnit+' (*.pas;*.pp)|*.pas;*.pp'
|
||||
+'|'+dlgFilterLazarusProject+' (*.lpi)|*.lpi'
|
||||
+'|'+dlgFilterLazarusForm+' (*.lfm;*.dfm)|*.lfm;*.dfm'
|
||||
+'|'+dlgFilterLazarusForm+' (*.lfm;*.dfm;*.fmx)|*.lfm;*.dfm;*.fmx'
|
||||
+'|'+dlgFilterLazarusPackage+' (*.lpk)|*.lpk'
|
||||
+'|'+dlgFilterLazarusProjectSource+' (*.lpr)|*.lpr';
|
||||
|
||||
|
@ -3610,7 +3610,7 @@ begin
|
||||
TheType := lshLFM;
|
||||
DefaultCommentType := DefaultCommentTypes{%H-}[TheType];
|
||||
SynInstance := LazSyntaxHighlighterClasses{%H-}[TheType].Create(nil);
|
||||
SetBothFilextensions('lfm;dfm;xfm');
|
||||
SetBothFilextensions('lfm;dfm;fmx');
|
||||
SampleSource :=
|
||||
'{ Lazarus Form Definitions }'#13 + 'object TestForm: TTestForm'#13 +
|
||||
' Left = 273'#13 + ' Top = 103'#13 +
|
||||
|
@ -156,7 +156,7 @@ function GetDefaultFileDialogFilter: string;
|
||||
begin
|
||||
Result := dlgFilterLazarusUnit + ' (*.pas;*.pp)|*.pas;*.pp'
|
||||
+ '|' + dlgFilterLazarusProject + ' (*.lpi)|*.lpi'
|
||||
+ '|' + dlgFilterLazarusForm + ' (*.lfm;*.dfm)|*.lfm;*.dfm'
|
||||
+ '|' + dlgFilterLazarusForm + ' (*.lfm;*.dfm;*.fmx)|*.lfm;*.dfm;*.fmx'
|
||||
+ '|' + dlgFilterLazarusPackage + ' (*.lpk)|*.lpk'
|
||||
+ '|' + dlgFilterLazarusProjectSource + ' (*.lpr)|*.lpr'
|
||||
+ '|' + dlgFilterLazarusOtherFile + ' (*.inc;*.lrs;*.lpl;*.todo)|*.inc;*.lrs;*.lpl;*.todo';
|
||||
|
@ -1016,7 +1016,7 @@ resourcestring
|
||||
lisClickHereToBrowseTheFileHint = 'Click here to browse the file';
|
||||
lisOpenPackageFile = 'Open Package File';
|
||||
lisSaveSpace = 'Save ';
|
||||
lisSelectDFMFiles = 'Select Delphi form files (*.dfm)';
|
||||
lisSelectDFMFiles = 'Select Delphi form files (*.dfm|*.fmx)';
|
||||
lisChooseLazarusSourceDirectory = 'Choose Lazarus Directory';
|
||||
lisChooseCompilerExecutable = 'Choose compiler executable (%s)';
|
||||
lisChooseFPCSourceDir = 'Choose FPC source directory';
|
||||
|
@ -120,11 +120,16 @@ begin
|
||||
NewCode,NewX,NewY,NewTopLine, ResourceDirectiveFilename,false)
|
||||
then
|
||||
Cache.ResourceDirective:=ResourceDirectiveFilename
|
||||
else if (ResourceDirectiveFilename<>'*.dfm')
|
||||
else if (ResourceDirectiveFilename<>'*.dfm')
|
||||
and CodeToolBoss.FindResourceDirective(CodeBuf,1,1,
|
||||
NewCode,NewX,NewY,NewTopLine, '*.dfm',false)
|
||||
then
|
||||
Cache.ResourceDirective:='*.dfm';
|
||||
Cache.ResourceDirective:='*.dfm'
|
||||
else if (ResourceDirectiveFilename<>'*.fmx')
|
||||
and CodeToolBoss.FindResourceDirective(CodeBuf,1,1,
|
||||
NewCode,NewX,NewY,NewTopLine, '*.fmx',false)
|
||||
then
|
||||
Cache.ResourceDirective:='*.fmx';
|
||||
end;
|
||||
Result:=Cache.ResourceDirective<>'';
|
||||
end;
|
||||
@ -140,7 +145,13 @@ begin
|
||||
then begin
|
||||
DFMFilename:=ChangeFileExt(AUnitFilename,'.dfm');
|
||||
if FileExistsCached(DFMFilename) then
|
||||
Result:=DFMFilename;
|
||||
Result:=DFMFilename
|
||||
else
|
||||
begin
|
||||
DFMFilename:=ChangeFileExt(AUnitFilename,'.fmx');
|
||||
if FileExistsCached(DFMFilename) then
|
||||
Result:=DFMFilename;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
18
ide/main.pp
18
ide/main.pp
@ -5475,7 +5475,11 @@ var
|
||||
// ToDo: use UnitResources
|
||||
LFMFilename:=ChangeFileExt(UnitFilename,'.lfm');
|
||||
if not FileExistsCached(LFMFilename) then
|
||||
begin
|
||||
LFMFilename:=ChangeFileExt(UnitFilename,'.dfm');
|
||||
if not FileExistsCached(LFMFilename) then
|
||||
LFMFilename:=ChangeFileExt(UnitFilename,'.fmx');
|
||||
end;
|
||||
if FileExistsCached(LFMFilename) then begin
|
||||
// load the lfm file
|
||||
ModalResult:=LoadCodeBuffer(LFMCode,LFMFilename,[lbfCheckIfText],true);
|
||||
@ -5541,7 +5545,11 @@ var
|
||||
// ToDo: use UnitResources
|
||||
LFMFilename:=ChangeFileExt(UnitFilename,'.lfm');
|
||||
if not FileExistsUTF8(LFMFilename) then
|
||||
begin
|
||||
LFMFilename:=ChangeFileExt(UnitFilename,'.dfm');
|
||||
if not FileExistsUTF8(LFMFilename) then
|
||||
LFMFilename:=ChangeFileExt(UnitFilename,'.fmx');
|
||||
end;
|
||||
ModalResult:=LoadCodeBuffer(LFMCode,LFMFilename,[lbfCheckIfText],false);
|
||||
if ModalResult<>mrOk then begin
|
||||
debugln('Error: (lazarus) [TMainIDE.DoFixupComponentReferences] Failed loading ',LFMFilename);
|
||||
@ -8564,7 +8572,7 @@ begin
|
||||
InputHistories.ApplyFileDialogSettings(OpenDialog);
|
||||
OpenDialog.Title:=lisSelectDFMFiles;
|
||||
OpenDialog.Options:=OpenDialog.Options+[ofAllowMultiSelect];
|
||||
OpenDialog.Filter:=dlgFilterDelphiForm+' (*.dfm)|*.dfm|'+dlgFilterAll+'|'+GetAllFilesMask;
|
||||
OpenDialog.Filter:=dlgFilterDelphiForm+' (*.dfm|*.fmx)|*.dfm|*.fmx|'+dlgFilterAll+'|'+GetAllFilesMask;
|
||||
if OpenDialog.Execute and (OpenDialog.Files.Count>0) then begin
|
||||
n := 0;
|
||||
For I := 0 to OpenDialog.Files.Count-1 do begin
|
||||
@ -12118,7 +12126,11 @@ begin
|
||||
// ToDo: use UnitResources
|
||||
LFMFilename:=ChangeFileExt(AnUnitInfo.Filename, '.lfm');
|
||||
if not FileExistsUTF8(LFMFilename) then
|
||||
begin
|
||||
LFMFilename:=ChangeFileExt(AnUnitInfo.Filename, '.dfm');
|
||||
if not FileExistsUTF8(LFMFilename) then
|
||||
LFMFilename:=ChangeFileExt(AnUnitInfo.Filename, '.fmx');
|
||||
end;
|
||||
OpenEditorFile(LFMFilename, EditorInfo.PageIndex+1, EditorInfo.WindowID, nil, [], True);
|
||||
end;
|
||||
|
||||
@ -12580,7 +12592,9 @@ begin
|
||||
else if FilenameIsAbsolute(AnUnitInfo.Filename)
|
||||
and FilenameIsPascalSource(AnUnitInfo.Filename)
|
||||
and ( FileExistsCached(ChangeFileExt(AnUnitInfo.Filename,'.lfm'))
|
||||
or FileExistsCached(ChangeFileExt(AnUnitInfo.Filename,'.dfm')) )
|
||||
or FileExistsCached(ChangeFileExt(AnUnitInfo.Filename,'.dfm'))
|
||||
or FileExistsCached(ChangeFileExt(AnUnitInfo.Filename,'.fmx'))
|
||||
)
|
||||
then
|
||||
HasResources:=true;
|
||||
end;
|
||||
|
@ -615,7 +615,7 @@ begin
|
||||
OpenDialog.Filter:=dlgFilterAll+' ('+GetAllFilesMask+')|'+GetAllFilesMask
|
||||
+'|'+dlgFilterLazarusUnit+' (*.pas;*.pp)|*.pas;*.pp'
|
||||
+'|'+dlgFilterLazarusInclude+' (*.inc)|*.inc'
|
||||
+'|'+dlgFilterLazarusForm+' (*.lfm;*.dfm)|*.lfm;*.dfm';
|
||||
+'|'+dlgFilterLazarusForm+' (*.lfm;*.dfm;*.fmx)|*.lfm;*.dfm;*.fmx';
|
||||
if OpenDialog.Execute then
|
||||
begin
|
||||
InputHistories.StoreFileDialogSettings(OpenDialog);
|
||||
|
@ -244,7 +244,11 @@ begin
|
||||
begin
|
||||
LfmFile := ChangeFileExt(AFilename, '.dfm');
|
||||
if not FileExistsUTF8(LfmFile) then
|
||||
LfmFile := '';
|
||||
begin
|
||||
LfmFile := ChangeFileExt(AFilename, '.fmx');
|
||||
if not FileExistsUTF8(LfmFile) then
|
||||
LfmFile := '';
|
||||
end;
|
||||
end;
|
||||
if LfmFile <> '' then
|
||||
Result := CopyAFile(LfmFile); // Recursive call.
|
||||
|
@ -7538,12 +7538,14 @@ begin
|
||||
if FilenameHasPascalExt(ShortFileName) then begin
|
||||
MaybeAddPopup('.lfm');
|
||||
MaybeAddPopup('.dfm');
|
||||
MaybeAddPopup('.fmx');
|
||||
MaybeAddPopup('.lrs');
|
||||
MaybeAddPopup('.s');
|
||||
end;
|
||||
// ToDo: unit resources
|
||||
if FilenameExtIs(ShortFileName,'lfm',true)
|
||||
or FilenameExtIs(ShortFileName,'dfm') then begin
|
||||
or FilenameExtIs(ShortFileName,'dfm')
|
||||
or FilenameExtIs(ShortFileName,'fmx') then begin
|
||||
MaybeAddPopup('.pas');
|
||||
MaybeAddPopup('.pp');
|
||||
MaybeAddPopup('.p');
|
||||
|
@ -4952,8 +4952,8 @@ begin
|
||||
Filter := dlgFilterLazarusUnit + ' (*.pas;*.pp)|*.pas;*.pp';
|
||||
if (SaveAsFileExt='.lpi') then
|
||||
Filter:=Filter+ '|' + dlgFilterLazarusProject + ' (*.lpi)|*.lpi';
|
||||
if (SaveAsFileExt='.lfm') or (SaveAsFileExt='.dfm') then
|
||||
Filter:=Filter+ '|' + dlgFilterLazarusForm + ' (*.lfm;*.dfm)|*.lfm;*.dfm';
|
||||
if (SaveAsFileExt='.lfm') or (SaveAsFileExt='.dfm') or (SaveAsFileExt='.fmx') then
|
||||
Filter:=Filter+ '|' + dlgFilterLazarusForm + ' (*.lfm;*.dfm;*.fmx)|*.lfm;*.dfm;*.fmx';
|
||||
if (SaveAsFileExt='.lpk') then
|
||||
Filter:=Filter+ '|' + dlgFilterLazarusPackage + ' (*.lpk)|*.lpk';
|
||||
if (SaveAsFileExt='.lpr') then
|
||||
@ -5802,7 +5802,11 @@ begin
|
||||
if FilenameHasPascalExt(OldFilename) then begin
|
||||
OldLFMFilename:=ChangeFileExt(OldFilename,'.lfm');
|
||||
if not FileExistsUTF8(OldLFMFilename) then
|
||||
begin
|
||||
OldLFMFilename:=ChangeFileExt(OldFilename,'.dfm');
|
||||
if not FileExistsUTF8(OldLFMFilename) then
|
||||
OldLFMFilename:=ChangeFileExt(OldFilename,'.fmx');
|
||||
end;
|
||||
end;
|
||||
if NewUnitName='' then
|
||||
NewUnitName:=AnUnitInfo.Unit_Name;
|
||||
@ -6089,7 +6093,9 @@ begin
|
||||
// check, if a .lfm file is opened in the source editor
|
||||
if (LFMUnitInfo=nil)
|
||||
or not ( FilenameExtIs(LFMUnitInfo.Filename,'lfm',true) or
|
||||
FilenameExtIs(LFMUnitInfo.Filename,'dfm') ) then
|
||||
FilenameExtIs(LFMUnitInfo.Filename,'dfm') or
|
||||
FilenameExtIs(LFMUnitInfo.Filename,'fmx')
|
||||
) then
|
||||
begin
|
||||
if not Quiet then
|
||||
begin
|
||||
@ -6897,7 +6903,11 @@ begin
|
||||
// ToDo: use UnitResources
|
||||
LFMFilename:=ChangeFileExt(AFilename,'.lfm');
|
||||
if not FileExistsInIDE(LFMFilename,[]) then
|
||||
begin
|
||||
LFMFilename:=ChangeFileExt(AFilename,'.dfm');
|
||||
if not FileExistsInIDE(LFMFilename,[]) then
|
||||
LFMFilename:=ChangeFileExt(AFilename,'.fmx');
|
||||
end;
|
||||
if not FileExistsInIDE(LFMFilename,[]) then begin
|
||||
DebugLn(['OpenComponent file not found ',LFMFilename]);
|
||||
exit(mrCancel);
|
||||
@ -7220,7 +7230,14 @@ var
|
||||
{$IFDEF VerboseLFMSearch}
|
||||
debugln([' TryLFM CurLFMFilename="',CurLFMFilename,'" does not exist']);
|
||||
{$ENDIF}
|
||||
exit;
|
||||
CurLFMFilename:=ChangeFileExt(UnitFilename,'.fmx');
|
||||
if not FileExistsCached(CurLFMFilename) then
|
||||
begin
|
||||
{$IFDEF VerboseLFMSearch}
|
||||
debugln([' TryLFM CurLFMFilename="',CurLFMFilename,'" does not exist']);
|
||||
{$ENDIF}
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
// load the lfm file
|
||||
@ -8141,7 +8158,11 @@ begin
|
||||
then begin
|
||||
LFMFilename:=ChangeFileExt(AnUnitInfo.Filename,'.lfm');
|
||||
if not FileExistsCached(LFMFilename) then
|
||||
begin
|
||||
LFMFilename:=ChangeFileExt(AnUnitInfo.Filename,'.dfm');
|
||||
if not FileExistsCached(LFMFilename) then
|
||||
LFMFilename:=ChangeFileExt(AnUnitInfo.Filename,'.fmx');
|
||||
end;
|
||||
AnUnitInfo.HasResources:=FileExistsCached(LFMFilename);
|
||||
end;
|
||||
end;
|
||||
|
@ -295,6 +295,7 @@ procedure TPGIPConflictsDialog.DeleteSelectedFilesButtonClick(Sender: TObject);
|
||||
DeleteFileUTF8(ChangeFileExt(aFilename,'.lfm'));
|
||||
DeleteFileUTF8(ChangeFileExt(aFilename,'.dfm'));
|
||||
DeleteFileUTF8(ChangeFileExt(aFilename,'.xfm'));
|
||||
DeleteFileUTF8(ChangeFileExt(aFilename,'.fmx'));
|
||||
end else if FilenameIsCompiledSource(aFilename) then begin
|
||||
// compiled file -> delete compiled files. Keep sources.
|
||||
DeleteFileUTF8(ChangeFileExt(aFilename,'.ppu'));
|
||||
@ -310,6 +311,7 @@ procedure TPGIPConflictsDialog.DeleteSelectedFilesButtonClick(Sender: TObject);
|
||||
DeleteFileUTF8(ChangeFileExt(aFilename,'.lfm'));
|
||||
DeleteFileUTF8(ChangeFileExt(aFilename,'.dfm'));
|
||||
DeleteFileUTF8(ChangeFileExt(aFilename,'.xfm'));
|
||||
DeleteFileUTF8(ChangeFileExt(aFilename,'.fmx'));
|
||||
end;
|
||||
end;
|
||||
Result:=true;
|
||||
@ -656,7 +658,7 @@ var
|
||||
AnUnitName:=ExtractFileNameOnly(aFilename);
|
||||
if not IsDottedIdentifier(AnUnitName) then continue;
|
||||
end
|
||||
else if FilenameExtIn(aFilename,['.inc', '.lfm', '.dfm']) then
|
||||
else if FilenameExtIn(aFilename,['.inc', '.lfm', '.dfm','.fmx']) then
|
||||
begin {Do nothing} end
|
||||
else
|
||||
continue;
|
||||
|
@ -1695,7 +1695,7 @@ begin
|
||||
dlgFilterAll+' ('+GetAllFilesMask+')|'+GetAllFilesMask
|
||||
+'|'+dlgFilterLazarusUnit+' (*.pas;*.pp)|*.pas;*.pp'
|
||||
+'|'+dlgFilterLazarusProject+' (*.lpi)|*.lpi'
|
||||
+'|'+dlgFilterLazarusForm+' (*.lfm;*.dfm)|*.lfm;*.dfm'
|
||||
+'|'+dlgFilterLazarusForm+' (*.lfm;*.dfm;*.fmx)|*.lfm;*.dfm;*.fmx'
|
||||
+'|'+dlgFilterLazarusPackage+' (*.lpk)|*.lpk'
|
||||
+'|'+dlgFilterLazarusProjectSource+' (*.lpr)|*.lpr';
|
||||
if OpenDialog.Execute then
|
||||
|
@ -2081,6 +2081,7 @@ var
|
||||
UnitFilenameToResFileList[OldFilename]:=ResFileList;
|
||||
AddResFile(ResFileList,ChangeFileExt(OldFilename,'.lfm'));
|
||||
AddResFile(ResFileList,ChangeFileExt(OldFilename,'.dfm'));
|
||||
AddResFile(ResFileList,ChangeFileExt(OldFilename,'.fmx'));
|
||||
AddResFile(ResFileList,ChangeFileExt(OldFilename,'.lrs'));
|
||||
UnitResArr:=GetUnitResourcefileFormats;
|
||||
for j:=0 to length(UnitResArr)-1 do begin
|
||||
|
Loading…
Reference in New Issue
Block a user