mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-26 10:17:41 +00:00
[Developer] Fixup persistence of untitled project state
This commit is contained in:
parent
bff538f23f
commit
b82cae2b8c
2 changed files with 48 additions and 16 deletions
|
|
@ -111,7 +111,7 @@ procedure TAppHttpResponder.RespondProject(doc: string; AContext: TIdContext;
|
|||
end;
|
||||
|
||||
// Transform the .kpj
|
||||
with TProject.Create(path) do
|
||||
with TProject.Create(path, (path='')) do
|
||||
try
|
||||
AResponseInfo.ContentType := 'text/html; charset=UTF-8';
|
||||
AResponseInfo.ContentText := Render;
|
||||
|
|
@ -196,16 +196,10 @@ procedure TAppHttpResponder.RespondProject(doc: string; AContext: TIdContext;
|
|||
Exit;
|
||||
end;
|
||||
|
||||
FProject := TProject.Create(path, False);
|
||||
FProject := TProject.Create(path, (path = ''));
|
||||
try
|
||||
FProject.DisplayState := displayState;
|
||||
//TODO: file in-use conflicts
|
||||
with TProjectSaver.Create(FProject, path) do
|
||||
try
|
||||
SaveUser;
|
||||
finally
|
||||
Free;
|
||||
end;
|
||||
FProject.SaveUser;
|
||||
finally
|
||||
FProject.Free;
|
||||
end;
|
||||
|
|
|
|||
|
|
@ -122,12 +122,13 @@ type
|
|||
procedure MRUChange(Sender: TObject);
|
||||
procedure UpdateFileParameters;
|
||||
procedure LoadPersistedUntitledProject;
|
||||
procedure PersistUntitledProjectUser;
|
||||
protected
|
||||
procedure DoRefresh; virtual;
|
||||
procedure DoRefreshCaption; virtual;
|
||||
|
||||
property SavedFileName: string read GetSavedFileName;
|
||||
property State: TProjectState read FState;
|
||||
property SavedFileName: string read GetSavedFileName;
|
||||
|
||||
public
|
||||
procedure Log(AState: TProjectLogState; Filename, Msg: string); virtual;
|
||||
|
|
@ -143,6 +144,7 @@ type
|
|||
|
||||
function Load: Boolean; virtual; // I4694
|
||||
function Save: Boolean; virtual; // I4694
|
||||
function SaveUser: Boolean; virtual; // I4694
|
||||
|
||||
class function StandardTemplatePath: string;
|
||||
class function StringsTemplatePath: string;
|
||||
|
|
@ -813,6 +815,22 @@ begin
|
|||
FState := psReady;
|
||||
end;
|
||||
|
||||
procedure TProject.PersistUntitledProjectUser;
|
||||
var
|
||||
path: string;
|
||||
begin
|
||||
path := GetFolderPath(CSIDL_APPDATA) + SFolderKeymanDeveloper + '\Untitled.kps';
|
||||
|
||||
FState := psSaving;
|
||||
with TProjectSaver.Create(Self, path) do
|
||||
try
|
||||
SaveUser;
|
||||
finally
|
||||
Free;
|
||||
end;
|
||||
FState := psReady;
|
||||
end;
|
||||
|
||||
procedure TProject.Refresh; // I4687
|
||||
begin
|
||||
DoRefresh;
|
||||
|
|
@ -940,16 +958,36 @@ end;
|
|||
function TProject.Save: Boolean;
|
||||
begin
|
||||
FState := psSaving;
|
||||
//Result := False;
|
||||
|
||||
with TProjectSaver.Create(Self, SavedFileName) do
|
||||
try
|
||||
Execute;
|
||||
with TProjectSaver.Create(Self, SavedFileName) do
|
||||
try
|
||||
Execute;
|
||||
finally
|
||||
Free;
|
||||
end;
|
||||
finally
|
||||
Free;
|
||||
FState := psReady;
|
||||
end;
|
||||
|
||||
FState := psReady;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function TProject.SaveUser: Boolean;
|
||||
begin
|
||||
FState := psSaving;
|
||||
try
|
||||
if FFilename = '' then
|
||||
PersistUntitledProjectUser
|
||||
else
|
||||
with TProjectSaver.Create(Self, SavedFileName) do
|
||||
try
|
||||
SaveUser;
|
||||
finally
|
||||
Free;
|
||||
end;
|
||||
finally
|
||||
FState := psReady;
|
||||
end;
|
||||
|
||||
Result := True;
|
||||
end;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue