IDE: fixed saving environment on every change

git-svn-id: trunk@36574 -
This commit is contained in:
mattias 2012-04-05 09:30:26 +00:00
parent 6f022b3bae
commit cea599f60f
4 changed files with 18 additions and 9 deletions

View File

@ -1355,7 +1355,6 @@ var
CurLazDir: String;
BaseDir: String;
begin
//DumpStack;
Cfg:=nil;
try
XMLConfig:=GetXMLCfg(true);

View File

@ -645,6 +645,7 @@ type
FApplicationIsActivate: boolean;
FCheckingFilesOnDisk: boolean;
FCheckFilesOnDiskNeeded: boolean;
fNeedSaveEnvironment: boolean;
FRemoteControlTimer: TTimer;
FRemoteControlFileAge: integer;
@ -1105,7 +1106,7 @@ type
procedure DoToggleViewIDESpeedButtons;
// editor and environment options
procedure SaveEnvironment; override;
procedure SaveEnvironment(Immediately: boolean = false); override;
procedure LoadDesktopSettings(TheEnvironmentOptions: TEnvironmentOptions);
procedure SaveDesktopSettings(TheEnvironmentOptions: TEnvironmentOptions);
end;
@ -1899,7 +1900,7 @@ procedure TMainIDE.MainIDEFormClose(Sender: TObject;
var CloseAction: TCloseAction);
begin
DoCallNotifyHandler(lihtIDEClose);
SaveEnvironment;
SaveEnvironment(true);
if IDEDockMaster<>nil then
IDEDockMaster.CloseAll
else
@ -4610,8 +4611,7 @@ begin
if ShowExtToolDialog(ExternalTools,GlobalMacroList)=mrOk then
begin
// save to environment options
SaveDesktopSettings(EnvironmentOptions);
EnvironmentOptions.Save(false);
SaveEnvironment(true);
// save shortcuts to editor options
ExternalTools.SaveShortCuts(EditorOpts.KeyMap);
EditorOpts.Save;
@ -5289,8 +5289,14 @@ begin
ShowEditorFileManagerForm;
end;
procedure TMainIDE.SaveEnvironment;
procedure TMainIDE.SaveEnvironment(Immediately: boolean);
begin
if not Immediately then
begin
fNeedSaveEnvironment:=true;
exit;
end;
fNeedSaveEnvironment:=false;
SaveDesktopSettings(EnvironmentOptions);
EnvironmentOptions.Save(false);
//debugln('TMainIDE.SaveEnvironment A ',dbgsName(ObjectInspector1.Favourites));
@ -8640,7 +8646,7 @@ function TMainIDE.DoCompleteLoadingProjectInfo: TModalResult;
begin
UpdateCaption;
EnvironmentOptions.LastSavedProjectFile:=Project1.ProjectInfoFile;
EnvironmentOptions.Save(false);
SaveEnvironment;
MainBuildBoss.SetBuildTargetProject1(false);
@ -12308,7 +12314,7 @@ begin
if CurResult=mrAbort then exit(mrAbort);
if CurResult<>mrOk then Result:=mrCancel;
CurResult:=DoSaveProject(Flags);
SaveEnvironment;
SaveEnvironment(true);
SaveIncludeLinks;
PkgBoss.SaveSettings;
InputHistories.Save;
@ -17487,6 +17493,9 @@ begin
{$ENDIF}
UpdateHighlighters(true);
end;
if fNeedSaveEnvironment then
SaveEnvironment(true);
GetDefaultProcessList.FreeStoppedProcesses;
ExternalTools.FreeStoppedProcesses;
if (SplashForm<>nil) then FreeThenNil(SplashForm);

View File

@ -404,6 +404,7 @@ begin
else
EnvironmentOptions.NewFormTemplate:=Template.Name;
//DebugLn(['TMainIDEBar.NewUFDefaultClick ',Template.Name]);
EnvironmentOptions.Save(False);
end;

View File

@ -183,7 +183,7 @@ type
OpenFlags: TOpenFlags): TModalResult; virtual; abstract;
procedure UpdateWindowMenu(Immediately: boolean = false); virtual; abstract;
procedure SaveEnvironment; virtual; abstract;
procedure SaveEnvironment(Immediately: boolean = false); virtual; abstract;
procedure UpdateHighlighters(Immediately: boolean = false); virtual; abstract;
procedure SetRecentSubMenu(Section: TIDEMenuSection; FileList: TStringList;
OnClickEvent: TNotifyEvent); virtual; abstract;