mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-01 22:00:20 +02:00
anchordockingdsgn: added comman line parameter --anchordocklayout=<file>
git-svn-id: trunk@41823 -
This commit is contained in:
parent
9774750058
commit
e293626964
@ -35,9 +35,9 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
Math, Classes, SysUtils, LCLProc, Forms, Controls, FileUtil, LazFileCache,
|
Math, Classes, SysUtils, LCLProc, Forms, Controls, FileUtil, LazFileCache,
|
||||||
Dialogs, LazConfigStorage, XMLConf, XMLPropStorage, StdCtrls, LCLIntf,
|
Dialogs, LazConfigStorage, LazFileUtils, XMLConf, XMLPropStorage, StdCtrls,
|
||||||
BaseIDEIntf, ProjectIntf, MacroIntf, IDEDialogs, MenuIntf, LazIDEIntf,
|
LCLIntf, BaseIDEIntf, ProjectIntf, MacroIntf, IDEDialogs, MenuIntf,
|
||||||
IDEWindowIntf, IDEOptionsIntf, AnchorDockStr, AnchorDocking,
|
LazIDEIntf, IDEWindowIntf, IDEOptionsIntf, AnchorDockStr, AnchorDocking,
|
||||||
AnchorDockOptionsDlg;
|
AnchorDockOptionsDlg;
|
||||||
|
|
||||||
const
|
const
|
||||||
@ -57,6 +57,7 @@ type
|
|||||||
TIDEAnchorDockMaster = class(TIDEDockMaster)
|
TIDEAnchorDockMaster = class(TIDEDockMaster)
|
||||||
private
|
private
|
||||||
FChangeStamp: int64;
|
FChangeStamp: int64;
|
||||||
|
FCmdLineLayoutFile: string;
|
||||||
FSavedChangeStamp: int64;
|
FSavedChangeStamp: int64;
|
||||||
FSavedDMChangeStamp: int64;
|
FSavedDMChangeStamp: int64;
|
||||||
FUserLayoutLoaded: boolean;
|
FUserLayoutLoaded: boolean;
|
||||||
@ -76,13 +77,14 @@ type
|
|||||||
procedure LoadOptions;
|
procedure LoadOptions;
|
||||||
procedure SaveOptions;
|
procedure SaveOptions;
|
||||||
// layouts
|
// layouts
|
||||||
function GetDefaultLayoutFilename(Full: boolean): string;
|
function GetUserLayoutFilename(Full: boolean): string;
|
||||||
procedure LoadDefaultLayout;
|
procedure LoadDefaultLayout;
|
||||||
procedure LoadUserLayout;
|
procedure LoadUserLayout;
|
||||||
procedure SaveUserLayout;
|
procedure SaveUserLayout;
|
||||||
procedure LoadLayoutFromFile(Filename: string);
|
procedure LoadLayoutFromFile(Filename: string);
|
||||||
procedure SaveLayoutToFile(Filename: string);
|
procedure SaveLayoutToFile(Filename: string);
|
||||||
property UserLayoutLoaded: boolean read FUserLayoutLoaded write SetUserLayoutLoaded;
|
property UserLayoutLoaded: boolean read FUserLayoutLoaded write SetUserLayoutLoaded;
|
||||||
|
property CmdLineLayoutFile: string read FCmdLineLayoutFile write FCmdLineLayoutFile;
|
||||||
// events
|
// events
|
||||||
procedure MakeIDEWindowDockSite(AForm: TCustomForm; ASides: TDockSides = [alBottom]); override;
|
procedure MakeIDEWindowDockSite(AForm: TCustomForm; ASides: TDockSides = [alBottom]); override;
|
||||||
procedure MakeIDEWindowDockable(AControl: TWinControl); override;
|
procedure MakeIDEWindowDockable(AControl: TWinControl); override;
|
||||||
@ -231,6 +233,9 @@ begin
|
|||||||
DockMaster.OnShowOptions:=@ShowAnchorDockOptions;
|
DockMaster.OnShowOptions:=@ShowAnchorDockOptions;
|
||||||
DockMaster.ShowMenuItemShowHeader:=true;
|
DockMaster.ShowMenuItemShowHeader:=true;
|
||||||
FHideSimpleLayoutOptions:=true;
|
FHideSimpleLayoutOptions:=true;
|
||||||
|
fCmdLineLayoutFile:=TrimAndExpandFilename(Application.GetOptionValue('anchordocklayout'));
|
||||||
|
if CmdLineLayoutFile<>'' then
|
||||||
|
debugln(['Hint: anchordocking layout file: "',CmdLineLayoutFile,'"']);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TIDEAnchorDockMaster.Destroy;
|
destructor TIDEAnchorDockMaster.Destroy;
|
||||||
@ -269,11 +274,15 @@ begin
|
|||||||
Result:=true;
|
Result:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TIDEAnchorDockMaster.GetDefaultLayoutFilename(Full: boolean): string;
|
function TIDEAnchorDockMaster.GetUserLayoutFilename(Full: boolean): string;
|
||||||
begin
|
begin
|
||||||
|
if CmdLineLayoutFile<>'' then begin
|
||||||
|
Result:=CmdLineLayoutFile;
|
||||||
|
end else begin
|
||||||
Result:=DefaultLayoutFileName;
|
Result:=DefaultLayoutFileName;
|
||||||
if Full then
|
if Full then
|
||||||
Result:=AppendPathDelim(LazarusIDE.GetPrimaryConfigPath)+Result;
|
Result:=AppendPathDelim(LazarusIDE.GetPrimaryConfigPath)+Result;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TIDEAnchorDockMaster.LoadDefaultLayout;
|
procedure TIDEAnchorDockMaster.LoadDefaultLayout;
|
||||||
@ -296,7 +305,7 @@ var
|
|||||||
Filename: String;
|
Filename: String;
|
||||||
Config: TConfigStorage;
|
Config: TConfigStorage;
|
||||||
begin
|
begin
|
||||||
Filename:=GetDefaultLayoutFilename(false);
|
Filename:=GetUserLayoutFilename(false);
|
||||||
try
|
try
|
||||||
debugln(['TIDEAnchorDockMaster.LoadUserLayout ',Filename]);
|
debugln(['TIDEAnchorDockMaster.LoadUserLayout ',Filename]);
|
||||||
Config:=GetIDEConfigStorage(Filename,true);
|
Config:=GetIDEConfigStorage(Filename,true);
|
||||||
@ -326,7 +335,7 @@ var
|
|||||||
Filename: String;
|
Filename: String;
|
||||||
Config: TConfigStorage;
|
Config: TConfigStorage;
|
||||||
begin
|
begin
|
||||||
Filename:=GetDefaultLayoutFilename(false);
|
Filename:=GetUserLayoutFilename(false);
|
||||||
try
|
try
|
||||||
debugln(['TIDEAnchorDockMaster.SaveDefaultLayout ',Filename]);
|
debugln(['TIDEAnchorDockMaster.SaveDefaultLayout ',Filename]);
|
||||||
Config:=GetIDEConfigStorage(Filename,false);
|
Config:=GetIDEConfigStorage(Filename,false);
|
||||||
@ -660,7 +669,7 @@ begin
|
|||||||
if not (AOptions is SupportedOptionsClass) then exit;
|
if not (AOptions is SupportedOptionsClass) then exit;
|
||||||
OptionsFrame.SaveToSettings(FSettings);
|
OptionsFrame.SaveToSettings(FSettings);
|
||||||
if (not DockMaster.SettingsAreEqual(FSettings))
|
if (not DockMaster.SettingsAreEqual(FSettings))
|
||||||
or (not FileExistsUTF8(IDEAnchorDockMaster.GetDefaultLayoutFilename(true)))
|
or (not FileExistsCached(IDEAnchorDockMaster.GetUserLayoutFilename(true)))
|
||||||
then begin
|
then begin
|
||||||
DockMaster.LoadSettings(FSettings);
|
DockMaster.LoadSettings(FSettings);
|
||||||
IDEAnchorDockMaster.SaveUserLayout;
|
IDEAnchorDockMaster.SaveUserLayout;
|
||||||
|
Loading…
Reference in New Issue
Block a user