From 2e542bed450475ee193d4179fdf9189f950998f0 Mon Sep 17 00:00:00 2001 From: mattias Date: Wed, 18 Nov 2015 13:17:06 +0000 Subject: [PATCH] project groups: option to show targets by name or by filename git-svn-id: trunk@50389 - --- components/projectgroups/projectgroup.pp | 20 +++++-- .../projectgroups/projectgroupeditor.pas | 52 +++++++++++-------- components/projectgroups/projectgroupintf.pp | 4 +- 3 files changed, 50 insertions(+), 26 deletions(-) diff --git a/components/projectgroups/projectgroup.pp b/components/projectgroups/projectgroup.pp index 8c46f0eb31..e5b6277b45 100644 --- a/components/projectgroups/projectgroup.pp +++ b/components/projectgroups/projectgroup.pp @@ -100,8 +100,10 @@ type FChangeStamp: integer; FLastSavedChangeStamp: integer; FRecentProjectGroups: TStringList; + FShowTargetPaths: boolean; function GetModified: boolean; procedure SetModified(AValue: boolean); + procedure SetShowTargetPaths(AValue: boolean); public constructor Create; destructor Destroy; override; @@ -109,12 +111,15 @@ type procedure LoadSafe; procedure SaveToFile(aFilename: string); procedure LoadFromFile(aFilename: string); - // recent project groups - property RecentProjectGroups: TStringList read FRecentProjectGroups; - procedure AddToRecentProjectGroups(aFilename: string); + // changestamp procedure IncreaseChangeStamp; property ChangeStamp: integer read FChangeStamp; property Modified: boolean read GetModified write SetModified; + // recent project groups + property RecentProjectGroups: TStringList read FRecentProjectGroups; + procedure AddToRecentProjectGroups(aFilename: string); + // misc + property ShowTargetPaths: boolean read FShowTargetPaths write SetShowTargetPaths; end; { TIDEProjectGroupManager } @@ -231,6 +236,13 @@ begin FLastSavedChangeStamp:=FChangeStamp; end; +procedure TIDEProjectGroupOptions.SetShowTargetPaths(AValue: boolean); +begin + if FShowTargetPaths=AValue then Exit; + FShowTargetPaths:=AValue; + IncreaseChangeStamp; +end; + constructor TIDEProjectGroupOptions.Create; begin FRecentProjectGroups:=TStringList.Create; @@ -271,6 +283,7 @@ begin Cfg:=GetIDEConfigStorage(aFilename,false); try Cfg.SetValue('RecentProjectGroups/',FRecentProjectGroups); + Cfg.SetDeleteValue('ShowTargetPaths/',ShowTargetPaths,false); finally Cfg.Free; end; @@ -283,6 +296,7 @@ begin Cfg:=GetIDEConfigStorage(aFilename,true); try Cfg.GetValue('RecentProjectGroups/',FRecentProjectGroups); + ShowTargetPaths:=Cfg.GetValue('ShowTargetPaths/',false); finally Cfg.Free; end; diff --git a/components/projectgroups/projectgroupeditor.pas b/components/projectgroups/projectgroupeditor.pas index 501b8651ef..f908fabbb8 100644 --- a/components/projectgroups/projectgroupeditor.pas +++ b/components/projectgroups/projectgroupeditor.pas @@ -928,15 +928,20 @@ var begin Result:=''; if aTarget=nil then exit('?'); - if aTarget.Parent<>nil then - BaseDir:=ExtractFilePath(aTarget.Parent.Filename) - else - BaseDir:=''; - Result:=aTarget.Filename; - if Result='' then - Result:='?' - else - Result:=CreateRelativePath(Result,BaseDir); + if IDEProjectGroupManager.Options.ShowTargetPaths then + begin + if aTarget.Parent<>nil then + BaseDir:=ExtractFilePath(aTarget.Parent.Filename) + else + BaseDir:=''; + Result:=aTarget.Filename; + if Result='' then + Result:='?' + else + Result:=CreateRelativePath(Result,BaseDir); + end else begin + Result:=ExtractFileNameOnly(aTarget.Filename); + end; end; function TProjectGroupEditorForm.DisplayFileName(Node: TTreeNode): string; @@ -950,18 +955,23 @@ function TProjectGroupEditorForm.DisplayFileName(NodeData: TNodeData): string; var BaseDir: String; begin - Result:=''; - if NodeData.ParentTarget<>nil then - BaseDir:=ExtractFilePath(NodeData.ParentTarget.Filename) - else - BaseDir:=''; - if NodeData.Target<>nil then - Result:=NodeData.Target.Filename; - debugln(['TProjectGroupEditorForm.DisplayFileName ',dbgs(NodeData.NodeType),' BaseDir=',BaseDir,' File=',Result]); - if Result='' then - Result:='?' - else - Result:=CreateRelativePath(Result,BaseDir); + if (NodeData.Target<>nil) + and (not IDEProjectGroupManager.Options.ShowTargetPaths) then + begin + Result:=ExtractFileNameOnly(NodeData.Target.Filename); + end else begin + Result:=''; + if NodeData.ParentTarget<>nil then + BaseDir:=ExtractFilePath(NodeData.ParentTarget.Filename) + else + BaseDir:=''; + if NodeData.Target<>nil then + Result:=NodeData.Target.Filename; + if Result='' then + Result:='?' + else + Result:=CreateRelativePath(Result,BaseDir); + end; end; procedure TProjectGroupEditorForm.ShowFileName; diff --git a/components/projectgroups/projectgroupintf.pp b/components/projectgroups/projectgroupintf.pp index abae5b651f..b54780aaa7 100644 --- a/components/projectgroups/projectgroupintf.pp +++ b/components/projectgroups/projectgroupintf.pp @@ -61,8 +61,8 @@ Type function GetFiles(Index: integer): string; virtual; abstract; function GetRequiredPackageCount: integer; virtual; abstract; function GetRequiredPackages(Index: integer): TPGDependency; virtual; abstract; - function Perform (AAction: TPGTargetAction): TPGActionResult; - function PerformAction (AAction: TPGTargetAction): TPGActionResult; virtual; abstract; + function Perform(AAction: TPGTargetAction): TPGActionResult; + function PerformAction(AAction: TPGTargetAction): TPGActionResult; virtual; abstract; procedure Activate; virtual; procedure DeActivate; virtual; procedure SetFilename(const AValue: string); virtual;