mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-13 14:09:16 +02:00
IDE, IDEIntf: changes needed for Favorites package
git-svn-id: trunk@50511 -
This commit is contained in:
parent
22c38e578f
commit
151f452c84
@ -118,6 +118,38 @@ type
|
|||||||
TAbstractIDEEnvironmentOptions = class(TAbstractIDEOptions);
|
TAbstractIDEEnvironmentOptions = class(TAbstractIDEOptions);
|
||||||
TAbstractIDEHelpOptions = class(TAbstractIDEEnvironmentOptions);
|
TAbstractIDEHelpOptions = class(TAbstractIDEEnvironmentOptions);
|
||||||
|
|
||||||
|
TOnAddToRecent = procedure(Sender: TObject; AFileName: string; var AAllow: Boolean) of object;
|
||||||
|
TIDERecentHandler = (irhOpenFiles, irhProjectFiles, irhPackageFiles);
|
||||||
|
|
||||||
|
TIDEEnvironmentOptions = class(TAbstractIDEEnvironmentOptions)
|
||||||
|
private
|
||||||
|
fRecentHandlers: array[TIDERecentHandler] of TMethodList;
|
||||||
|
|
||||||
|
procedure DoCallRecentHandlers(AHandler: TIDERecentHandler;
|
||||||
|
const AFileName: string; var AAllow: Boolean);
|
||||||
|
protected
|
||||||
|
procedure DoAddToRecentOpenFiles(const AFileName: string; var AAllow: Boolean);
|
||||||
|
procedure DoAddToRecentProjectFiles(const AFileName: string; var AAllow: Boolean);
|
||||||
|
procedure DoAddToRecentPackageFiles(const AFileName: string; var AAllow: Boolean);
|
||||||
|
public
|
||||||
|
constructor Create;
|
||||||
|
destructor Destroy; override;
|
||||||
|
public
|
||||||
|
procedure AddToRecentOpenFiles(const AFilename: string); virtual; abstract;
|
||||||
|
procedure RemoveFromRecentOpenFiles(const AFilename: string); virtual; abstract;
|
||||||
|
procedure AddToRecentProjectFiles(const AFilename: string); virtual; abstract;
|
||||||
|
procedure RemoveFromRecentProjectFiles(const AFilename: string); virtual; abstract;
|
||||||
|
procedure AddToRecentPackageFiles(const AFilename: string); virtual; abstract;
|
||||||
|
procedure RemoveFromRecentPackageFiles(const AFilename: string); virtual; abstract;
|
||||||
|
|
||||||
|
procedure AddHandlerAddToRecentOpenFiles(Handler: TOnAddToRecent; const AsFirst: boolean = true); // AsFirst means: first to call
|
||||||
|
procedure RemoveHandlerAddToRecentOpenFiles(Handler: TOnAddToRecent);
|
||||||
|
procedure AddHandlerAddToRecentProjectFiles(Handler: TOnAddToRecent; const AsFirst: boolean = true); // AsFirst means: first to call
|
||||||
|
procedure RemoveHandlerAddToRecentProjectFiles(Handler: TOnAddToRecent);
|
||||||
|
procedure AddHandlerAddToRecentPackageFiles(Handler: TOnAddToRecent; const AsFirst: boolean = true); // AsFirst means: first to call
|
||||||
|
procedure RemoveHandlerAddToRecentPackageFiles(Handler: TOnAddToRecent);
|
||||||
|
end;
|
||||||
|
|
||||||
TOnLoadIDEOptions = procedure(Sender: TObject; AOptions: TAbstractIDEOptions) of object;
|
TOnLoadIDEOptions = procedure(Sender: TObject; AOptions: TAbstractIDEOptions) of object;
|
||||||
TOnSaveIDEOptions = procedure(Sender: TObject; AOptions: TAbstractIDEOptions) of object;
|
TOnSaveIDEOptions = procedure(Sender: TObject; AOptions: TAbstractIDEOptions) of object;
|
||||||
|
|
||||||
@ -233,6 +265,9 @@ function RegisterIDEOptionsEditor(AGroupIndex: Integer;
|
|||||||
|
|
||||||
function IDEEditorGroups: TIDEOptionsGroupList;
|
function IDEEditorGroups: TIDEOptionsGroupList;
|
||||||
|
|
||||||
|
var
|
||||||
|
IDEEnvironmentOptions: TIDEEnvironmentOptions;
|
||||||
|
|
||||||
const
|
const
|
||||||
// Font style used by filter
|
// Font style used by filter
|
||||||
MatchFontStyle: TFontStyles = [fsBold, fsItalic]; // Color = clFuchsia;
|
MatchFontStyle: TFontStyles = [fsBold, fsItalic]; // Color = clFuchsia;
|
||||||
@ -423,6 +458,95 @@ begin
|
|||||||
Result := 0;
|
Result := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TIDEEnvironmentOptions }
|
||||||
|
|
||||||
|
constructor TIDEEnvironmentOptions.Create;
|
||||||
|
var
|
||||||
|
I: TIDERecentHandler;
|
||||||
|
begin
|
||||||
|
inherited Create;
|
||||||
|
|
||||||
|
for I := Low(fRecentHandlers) to High(fRecentHandlers) do
|
||||||
|
fRecentHandlers[I] := TMethodList.Create;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEEnvironmentOptions.AddHandlerAddToRecentOpenFiles(
|
||||||
|
Handler: TOnAddToRecent; const AsFirst: boolean);
|
||||||
|
begin
|
||||||
|
fRecentHandlers[irhOpenFiles].Add(TMethod(Handler), AsFirst);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEEnvironmentOptions.AddHandlerAddToRecentPackageFiles(
|
||||||
|
Handler: TOnAddToRecent; const AsFirst: boolean);
|
||||||
|
begin
|
||||||
|
fRecentHandlers[irhPackageFiles].Add(TMethod(Handler), AsFirst);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEEnvironmentOptions.AddHandlerAddToRecentProjectFiles(
|
||||||
|
Handler: TOnAddToRecent; const AsFirst: boolean);
|
||||||
|
begin
|
||||||
|
fRecentHandlers[irhProjectFiles].Add(TMethod(Handler), AsFirst);
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TIDEEnvironmentOptions.Destroy;
|
||||||
|
var
|
||||||
|
I: TIDERecentHandler;
|
||||||
|
begin
|
||||||
|
for I := Low(fRecentHandlers) to High(fRecentHandlers) do
|
||||||
|
fRecentHandlers[I].Free;
|
||||||
|
|
||||||
|
inherited Destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEEnvironmentOptions.DoAddToRecentOpenFiles(
|
||||||
|
const AFileName: string; var AAllow: Boolean);
|
||||||
|
begin
|
||||||
|
DoCallRecentHandlers(irhOpenFiles, AFileName, AAllow);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEEnvironmentOptions.DoAddToRecentPackageFiles(
|
||||||
|
const AFileName: string; var AAllow: Boolean);
|
||||||
|
begin
|
||||||
|
DoCallRecentHandlers(irhPackageFiles, AFileName, AAllow);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEEnvironmentOptions.DoAddToRecentProjectFiles(
|
||||||
|
const AFileName: string; var AAllow: Boolean);
|
||||||
|
begin
|
||||||
|
DoCallRecentHandlers(irhProjectFiles, AFileName, AAllow);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEEnvironmentOptions.DoCallRecentHandlers(
|
||||||
|
AHandler: TIDERecentHandler; const AFileName: string; var AAllow: Boolean);
|
||||||
|
var
|
||||||
|
xMethod: TOnAddToRecent;
|
||||||
|
I: Integer;
|
||||||
|
begin
|
||||||
|
for I := 0 to fRecentHandlers[AHandler].Count-1 do
|
||||||
|
begin
|
||||||
|
xMethod := TOnAddToRecent(fRecentHandlers[AHandler][I]);
|
||||||
|
xMethod(Self, AFileName, AAllow);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEEnvironmentOptions.RemoveHandlerAddToRecentOpenFiles(
|
||||||
|
Handler: TOnAddToRecent);
|
||||||
|
begin
|
||||||
|
fRecentHandlers[irhOpenFiles].Remove(TMethod(Handler));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEEnvironmentOptions.RemoveHandlerAddToRecentPackageFiles(
|
||||||
|
Handler: TOnAddToRecent);
|
||||||
|
begin
|
||||||
|
fRecentHandlers[irhPackageFiles].Remove(TMethod(Handler));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIDEEnvironmentOptions.RemoveHandlerAddToRecentProjectFiles(
|
||||||
|
Handler: TOnAddToRecent);
|
||||||
|
begin
|
||||||
|
fRecentHandlers[irhProjectFiles].Remove(TMethod(Handler));
|
||||||
|
end;
|
||||||
|
|
||||||
{ TAbstractDesktopDockingOpt }
|
{ TAbstractDesktopDockingOpt }
|
||||||
|
|
||||||
constructor TAbstractDesktopDockingOpt.Create;
|
constructor TAbstractDesktopDockingOpt.Create;
|
||||||
|
@ -316,6 +316,7 @@ end;
|
|||||||
constructor TBuildManager.Create(AOwner: TComponent);
|
constructor TBuildManager.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
EnvironmentOptions := TEnvironmentOptions.Create;
|
EnvironmentOptions := TEnvironmentOptions.Create;
|
||||||
|
IDEEnvironmentOptions := EnvironmentOptions;
|
||||||
EnvironmentOptions.IsGlobalMode:=@EnvironmentOptionsIsGlobalMode;
|
EnvironmentOptions.IsGlobalMode:=@EnvironmentOptionsIsGlobalMode;
|
||||||
DefaultCfgVars:=TCTCfgScriptVariables.Create;
|
DefaultCfgVars:=TCTCfgScriptVariables.Create;
|
||||||
DefaultCfgVarsBuildMacroStamp:=CTInvalidChangeStamp;
|
DefaultCfgVarsBuildMacroStamp:=CTInvalidChangeStamp;
|
||||||
|
@ -376,7 +376,7 @@ type
|
|||||||
|
|
||||||
{ TEnvironmentOptions - class for storing environment options }
|
{ TEnvironmentOptions - class for storing environment options }
|
||||||
|
|
||||||
TEnvironmentOptions = class(TAbstractIDEEnvironmentOptions)
|
TEnvironmentOptions = class(TIDEEnvironmentOptions)
|
||||||
private
|
private
|
||||||
// config file
|
// config file
|
||||||
FFilename: string;
|
FFilename: string;
|
||||||
@ -739,16 +739,18 @@ type
|
|||||||
property RecentOpenFiles: TStringList read FRecentOpenFiles;
|
property RecentOpenFiles: TStringList read FRecentOpenFiles;
|
||||||
property MaxRecentOpenFiles: integer read FMaxRecentOpenFiles
|
property MaxRecentOpenFiles: integer read FMaxRecentOpenFiles
|
||||||
write FMaxRecentOpenFiles;
|
write FMaxRecentOpenFiles;
|
||||||
procedure AddToRecentOpenFiles(const AFilename: string);
|
procedure AddToRecentOpenFiles(const AFilename: string); override;
|
||||||
procedure RemoveFromRecentOpenFiles(const AFilename: string);
|
procedure RemoveFromRecentOpenFiles(const AFilename: string); override;
|
||||||
property RecentProjectFiles: TStringList read FRecentProjectFiles;
|
property RecentProjectFiles: TStringList read FRecentProjectFiles;
|
||||||
property MaxRecentProjectFiles: integer read FMaxRecentProjectFiles
|
property MaxRecentProjectFiles: integer read FMaxRecentProjectFiles
|
||||||
write FMaxRecentProjectFiles;
|
write FMaxRecentProjectFiles;
|
||||||
procedure AddToRecentProjectFiles(const AFilename: string);
|
procedure AddToRecentProjectFiles(const AFilename: string); override;
|
||||||
procedure RemoveFromRecentProjectFiles(const AFilename: string);
|
procedure RemoveFromRecentProjectFiles(const AFilename: string); override;
|
||||||
property RecentPackageFiles: TStringList read FRecentPackageFiles;
|
property RecentPackageFiles: TStringList read FRecentPackageFiles;
|
||||||
property MaxRecentPackageFiles: integer read FMaxRecentPackageFiles
|
property MaxRecentPackageFiles: integer read FMaxRecentPackageFiles
|
||||||
write FMaxRecentPackageFiles;
|
write FMaxRecentPackageFiles;
|
||||||
|
procedure AddToRecentPackageFiles(const AFilename: string); override;
|
||||||
|
procedure RemoveFromRecentPackageFiles(const AFilename: string); override;
|
||||||
property LastSavedProjectFile: string read FLastSavedProjectFile
|
property LastSavedProjectFile: string read FLastSavedProjectFile
|
||||||
write FLastSavedProjectFile; { if empty then create new project,
|
write FLastSavedProjectFile; { if empty then create new project,
|
||||||
if '-' then do not load/create any project }
|
if '-' then do not load/create any project }
|
||||||
@ -2194,8 +2196,23 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TEnvironmentOptions.AddToRecentOpenFiles(const AFilename: string);
|
procedure TEnvironmentOptions.AddToRecentOpenFiles(const AFilename: string);
|
||||||
|
var
|
||||||
|
Allow: Boolean;
|
||||||
begin
|
begin
|
||||||
AddToRecentList(AFilename,FRecentOpenFiles,FMaxRecentOpenFiles,rltFile);
|
Allow := True;
|
||||||
|
DoAddToRecentOpenFiles(AFilename, Allow);
|
||||||
|
if Allow then
|
||||||
|
AddToRecentList(AFilename,FRecentOpenFiles,FMaxRecentOpenFiles,rltFile);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TEnvironmentOptions.AddToRecentPackageFiles(const AFilename: string);
|
||||||
|
var
|
||||||
|
Allow: Boolean;
|
||||||
|
begin
|
||||||
|
Allow := True;
|
||||||
|
DoAddToRecentPackageFiles(AFilename, Allow);
|
||||||
|
if Allow then
|
||||||
|
AddToRecentList(AFilename,FRecentPackageFiles,FMaxRecentPackageFiles,rltFile);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TEnvironmentOptions.RemoveFromRecentOpenFiles(const AFilename: string);
|
procedure TEnvironmentOptions.RemoveFromRecentOpenFiles(const AFilename: string);
|
||||||
@ -2203,9 +2220,20 @@ begin
|
|||||||
RemoveFromRecentList(AFilename,FRecentOpenFiles,rltFile);
|
RemoveFromRecentList(AFilename,FRecentOpenFiles,rltFile);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TEnvironmentOptions.AddToRecentProjectFiles(const AFilename: string);
|
procedure TEnvironmentOptions.RemoveFromRecentPackageFiles(
|
||||||
|
const AFilename: string);
|
||||||
begin
|
begin
|
||||||
AddToRecentList(AFilename,FRecentProjectFiles,FMaxRecentProjectFiles,rltFile);
|
RemoveFromRecentList(AFilename,FRecentPackageFiles,rltFile);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TEnvironmentOptions.AddToRecentProjectFiles(const AFilename: string);
|
||||||
|
var
|
||||||
|
Allow: Boolean;
|
||||||
|
begin
|
||||||
|
Allow := True;
|
||||||
|
DoAddToRecentProjectFiles(AFilename, Allow);
|
||||||
|
if Allow then
|
||||||
|
AddToRecentList(AFilename,FRecentProjectFiles,FMaxRecentProjectFiles,rltFile);
|
||||||
{$ifdef Windows}
|
{$ifdef Windows}
|
||||||
SHAddToRecentDocs(SHARD_PATHW, PWideChar(UTF8ToUTF16(AFileName)));
|
SHAddToRecentDocs(SHARD_PATHW, PWideChar(UTF8ToUTF16(AFileName)));
|
||||||
{$endif}
|
{$endif}
|
||||||
|
@ -3039,8 +3039,7 @@ end;
|
|||||||
|
|
||||||
procedure TPkgManager.AddToMenuRecentPackages(const Filename: string);
|
procedure TPkgManager.AddToMenuRecentPackages(const Filename: string);
|
||||||
begin
|
begin
|
||||||
AddToRecentList(Filename,EnvironmentOptions.RecentPackageFiles,
|
EnvironmentOptions.AddToRecentPackageFiles(Filename);
|
||||||
EnvironmentOptions.MaxRecentPackageFiles,rltFile);
|
|
||||||
SetRecentPackagesMenu;
|
SetRecentPackagesMenu;
|
||||||
MainIDE.SaveEnvironment;
|
MainIDE.SaveEnvironment;
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user