spiegel-keyman/developer/src/tike/project/Keyman.Developer.UI.Project.ProjectUI.pas

74 lines
1.9 KiB
ObjectPascal

(*
Name: Keyman.Developer.UI.Project.ProjectUI
Copyright: Copyright (C) SIL International.
Documentation:
Description:
Create Date: 4 May 2015
Modified Date: 4 May 2015
Authors: mcdurdin
Related Files:
Dependencies:
Bugs:
Todo:
Notes:
History: 04 May 2015 - mcdurdin - I4687 - V9.0 - Split project UI actions into separate classes
*)
unit Keyman.Developer.UI.Project.ProjectUI; // I4687
interface
uses
Keyman.Developer.System.Project.ProjectFile,
Keyman.Developer.UI.Project.ProjectFileUI;
function GetGlobalProjectUI: TProjectUI;
function LoadGlobalProjectUI(pt: TProjectType; AFilename: string; ALoadPersistedUntitledProject: Boolean = False): TProjectUI;
function NewGlobalProjectUI(pt: TProjectType): TProjectUI;
procedure FreeGlobalProjectUI;
function IsGlobalProjectUIReady: Boolean;
implementation
uses
System.SysUtils,
Keyman.Developer.System.Project.Project;
function GetGlobalProjectUI: TProjectUI;
begin
Result := FGlobalProject as TProjectUI;
end;
function IsGlobalProjectUIReady: Boolean;
begin
Result := Assigned(FGlobalProject);
end;
procedure FreeGlobalProjectUI;
begin
FreeAndNil(FGlobalProject);
end;
function LoadGlobalProjectUI(pt: TProjectType; AFilename: string; ALoadPersistedUntitledProject: Boolean = False): TProjectUI;
begin
Assert(not Assigned(FGlobalProject));
Result := TProjectUI.Create(pt, AFilename, ALoadPersistedUntitledProject); // I4687
FGlobalProject := Result;
end;
function NewGlobalProjectUI(pt: TProjectType): TProjectUI;
var
FSessionUntitledProjectFilename: string;
begin
Assert(not Assigned(FGlobalProject));
FSessionUntitledProjectFilename := TProject.GetUntitledProjectFilename(True);
if FileExists(FSessionUntitledProjectFilename) then
DeleteFile(FSessionUntitledProjectFilename);
Result := TProjectUI.Create(pt, '', False); // I4687
FGlobalProject := Result;
end;
end.