IDE: add method "DoSaveEditorFile(const Filename: string; ..." to IDE interface. Analogous to DoCloseEditorFile method with Filename param.

git-svn-id: trunk@40566 -
This commit is contained in:
juha 2013-03-17 11:36:31 +00:00
parent c16cec36c1
commit 950bdb1d35
3 changed files with 34 additions and 10 deletions

View File

@ -738,6 +738,8 @@ type
deprecated 'use method with EditorObject'; // deprecated in 0.9.29 March 2010
function DoSaveEditorFile(AEditor: TSourceEditorInterface;
Flags: TSaveFlags): TModalResult; override;
function DoSaveEditorFile(const Filename: string;
Flags: TSaveFlags): TModalResult; override;
function DoCloseEditorFile(PageIndex:integer;
Flags: TCloseFlags):TModalResult; override;
@ -746,6 +748,7 @@ type
Flags: TCloseFlags):TModalResult; override;
function DoCloseEditorFile(const Filename: string;
Flags: TCloseFlags): TModalResult; override;
function DoSaveAll(Flags: TSaveFlags): TModalResult; override;
function DoOpenEditorFile(AFileName: string; PageIndex: integer;
Flags: TOpenFlags): TModalResult; override;
@ -5473,7 +5476,7 @@ begin
SourceFileMgr.CreateFileDialogFilterForSourceEditorFiles(Filter, AllEditorMask, AllMask);
end;
function TMainIDE.DoSaveEditorFile(PageIndex:integer; Flags: TSaveFlags):TModalResult;
function TMainIDE.DoSaveEditorFile(PageIndex:integer; Flags: TSaveFlags): TModalResult;
begin
Result := DoSaveEditorFile(
SourceEditorManager.ActiveSourceWindow.FindSourceEditorWithPageIndex(PageIndex),Flags);
@ -5484,6 +5487,11 @@ begin
Result:=SourceFileMgr.SaveEditorFile(AEditor, Flags);
end;
function TMainIDE.DoSaveEditorFile(const Filename: string; Flags: TSaveFlags): TModalResult;
begin
Result:=SourceFileMgr.SaveEditorFile(Filename, Flags);
end;
function TMainIDE.DoCloseEditorFile(PageIndex:integer; Flags: TCloseFlags): TModalResult;
begin
Result := DoCloseEditorFile(

View File

@ -78,10 +78,10 @@ type
out AllEditorMask, AllMask: string);
function SaveEditorFile(AEditor: TSourceEditorInterface;
Flags: TSaveFlags): TModalResult;
function SaveEditorFile(const Filename: string; Flags: TSaveFlags): TModalResult;
function CloseEditorFile(AEditor: TSourceEditorInterface;
Flags: TCloseFlags):TModalResult;
function CloseEditorFile(const Filename: string;
Flags: TCloseFlags): TModalResult;
function CloseEditorFile(const Filename: string; Flags: TCloseFlags): TModalResult;
function OpenEditorFile(AFileName:string; PageIndex, WindowIndex: integer;
AEditorInfo: TUnitEditorInfo;
Flags: TOpenFlags;
@ -980,6 +980,24 @@ begin
Result:=mrOk;
end;
function TLazSourceFileManager.SaveEditorFile(const Filename: string;
Flags: TSaveFlags): TModalResult;
var
UnitIndex: Integer;
AnUnitInfo: TUnitInfo;
i: Integer;
begin
Result:=mrOk;
if Filename='' then exit;
UnitIndex:=Project1.IndexOfFilename(TrimFilename(Filename),[pfsfOnlyEditorFiles]);
if UnitIndex<0 then exit;
AnUnitInfo:=Project1.Units[UnitIndex];
for i := 0 to AnUnitInfo.OpenEditorInfoCount-1 do begin
Result:=SaveEditorFile(AnUnitInfo.OpenEditorInfo[i].EditorComponent, Flags);
if Result <> mrOK then Break;
end;
end;
function TLazSourceFileManager.CloseEditorFile(AEditor: TSourceEditorInterface;
Flags: TCloseFlags): TModalResult;
var
@ -1113,11 +1131,9 @@ var
begin
Result:=mrOk;
if Filename='' then exit;
UnitIndex:=Project1.IndexOfFilename(TrimFilename(Filename),
[pfsfOnlyEditorFiles]);
UnitIndex:=Project1.IndexOfFilename(TrimFilename(Filename),[pfsfOnlyEditorFiles]);
if UnitIndex<0 then exit;
AnUnitInfo:=Project1.Units[UnitIndex];
Result:=mrOk;
while (AnUnitInfo.OpenEditorInfoCount > 0) and (Result = mrOK) do
Result:=CloseEditorFile(AnUnitInfo.OpenEditorInfo[0].EditorComponent, Flags);
end;
@ -2047,8 +2063,7 @@ begin
and AnUnitInfo.IsPartOfProject
and (Project1.MainUnitID<>i)
and (AnUnitInfo.OpenEditorInfoCount > 0) then begin
SaveFileFlags:=[sfSaveAs,sfProjectSaving]
+[sfCheckAmbiguousFiles]*Flags;
SaveFileFlags:=[sfSaveAs,sfProjectSaving]+[sfCheckAmbiguousFiles]*Flags;
if sfSaveToTestDir in Flags then begin
if AnUnitInfo.IsPartOfProject or AnUnitInfo.IsVirtual then
Include(SaveFileFlags,sfSaveToTestDir);
@ -2068,8 +2083,7 @@ begin
AnUnitInfo:=Project1.UnitWithEditorComponent(SrcEdit);
if (Project1.MainUnitID>=0) and (Project1.MainUnitInfo = AnUnitInfo) then
continue;
SaveFileFlags:=[sfProjectSaving]
+Flags*[sfCheckAmbiguousFiles];
SaveFileFlags:=[sfProjectSaving]+Flags*[sfCheckAmbiguousFiles];
if AnUnitInfo = nil
then begin
// consistency check

View File

@ -206,6 +206,8 @@ type
deprecated 'use method with EditorObject'; // deprecated in 0.9.29 March 2010
function DoSaveEditorFile(AEditor: TSourceEditorInterface;
Flags: TSaveFlags): TModalResult; virtual; abstract;
function DoSaveEditorFile(const Filename: string;
Flags: TSaveFlags): TModalResult; virtual; abstract;
function DoSaveAll(Flags: TSaveFlags): TModalResult; virtual; abstract;
function DoCloseEditorFile(PageIndex:integer;
Flags: TCloseFlags):TModalResult; virtual; abstract;