project groups: option to show targets by name or by filename

git-svn-id: trunk@50389 -
This commit is contained in:
mattias 2015-11-18 13:17:06 +00:00
parent 8fa20c95fa
commit 2e542bed45
3 changed files with 50 additions and 26 deletions

View File

@ -100,8 +100,10 @@ type
FChangeStamp: integer; FChangeStamp: integer;
FLastSavedChangeStamp: integer; FLastSavedChangeStamp: integer;
FRecentProjectGroups: TStringList; FRecentProjectGroups: TStringList;
FShowTargetPaths: boolean;
function GetModified: boolean; function GetModified: boolean;
procedure SetModified(AValue: boolean); procedure SetModified(AValue: boolean);
procedure SetShowTargetPaths(AValue: boolean);
public public
constructor Create; constructor Create;
destructor Destroy; override; destructor Destroy; override;
@ -109,12 +111,15 @@ type
procedure LoadSafe; procedure LoadSafe;
procedure SaveToFile(aFilename: string); procedure SaveToFile(aFilename: string);
procedure LoadFromFile(aFilename: string); procedure LoadFromFile(aFilename: string);
// recent project groups // changestamp
property RecentProjectGroups: TStringList read FRecentProjectGroups;
procedure AddToRecentProjectGroups(aFilename: string);
procedure IncreaseChangeStamp; procedure IncreaseChangeStamp;
property ChangeStamp: integer read FChangeStamp; property ChangeStamp: integer read FChangeStamp;
property Modified: boolean read GetModified write SetModified; 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; end;
{ TIDEProjectGroupManager } { TIDEProjectGroupManager }
@ -231,6 +236,13 @@ begin
FLastSavedChangeStamp:=FChangeStamp; FLastSavedChangeStamp:=FChangeStamp;
end; end;
procedure TIDEProjectGroupOptions.SetShowTargetPaths(AValue: boolean);
begin
if FShowTargetPaths=AValue then Exit;
FShowTargetPaths:=AValue;
IncreaseChangeStamp;
end;
constructor TIDEProjectGroupOptions.Create; constructor TIDEProjectGroupOptions.Create;
begin begin
FRecentProjectGroups:=TStringList.Create; FRecentProjectGroups:=TStringList.Create;
@ -271,6 +283,7 @@ begin
Cfg:=GetIDEConfigStorage(aFilename,false); Cfg:=GetIDEConfigStorage(aFilename,false);
try try
Cfg.SetValue('RecentProjectGroups/',FRecentProjectGroups); Cfg.SetValue('RecentProjectGroups/',FRecentProjectGroups);
Cfg.SetDeleteValue('ShowTargetPaths/',ShowTargetPaths,false);
finally finally
Cfg.Free; Cfg.Free;
end; end;
@ -283,6 +296,7 @@ begin
Cfg:=GetIDEConfigStorage(aFilename,true); Cfg:=GetIDEConfigStorage(aFilename,true);
try try
Cfg.GetValue('RecentProjectGroups/',FRecentProjectGroups); Cfg.GetValue('RecentProjectGroups/',FRecentProjectGroups);
ShowTargetPaths:=Cfg.GetValue('ShowTargetPaths/',false);
finally finally
Cfg.Free; Cfg.Free;
end; end;

View File

@ -928,15 +928,20 @@ var
begin begin
Result:=''; Result:='';
if aTarget=nil then exit('?'); if aTarget=nil then exit('?');
if aTarget.Parent<>nil then if IDEProjectGroupManager.Options.ShowTargetPaths then
BaseDir:=ExtractFilePath(aTarget.Parent.Filename) begin
else if aTarget.Parent<>nil then
BaseDir:=''; BaseDir:=ExtractFilePath(aTarget.Parent.Filename)
Result:=aTarget.Filename; else
if Result='' then BaseDir:='';
Result:='?' Result:=aTarget.Filename;
else if Result='' then
Result:=CreateRelativePath(Result,BaseDir); Result:='?'
else
Result:=CreateRelativePath(Result,BaseDir);
end else begin
Result:=ExtractFileNameOnly(aTarget.Filename);
end;
end; end;
function TProjectGroupEditorForm.DisplayFileName(Node: TTreeNode): string; function TProjectGroupEditorForm.DisplayFileName(Node: TTreeNode): string;
@ -950,18 +955,23 @@ function TProjectGroupEditorForm.DisplayFileName(NodeData: TNodeData): string;
var var
BaseDir: String; BaseDir: String;
begin begin
Result:=''; if (NodeData.Target<>nil)
if NodeData.ParentTarget<>nil then and (not IDEProjectGroupManager.Options.ShowTargetPaths) then
BaseDir:=ExtractFilePath(NodeData.ParentTarget.Filename) begin
else Result:=ExtractFileNameOnly(NodeData.Target.Filename);
BaseDir:=''; end else begin
if NodeData.Target<>nil then Result:='';
Result:=NodeData.Target.Filename; if NodeData.ParentTarget<>nil then
debugln(['TProjectGroupEditorForm.DisplayFileName ',dbgs(NodeData.NodeType),' BaseDir=',BaseDir,' File=',Result]); BaseDir:=ExtractFilePath(NodeData.ParentTarget.Filename)
if Result='' then else
Result:='?' BaseDir:='';
else if NodeData.Target<>nil then
Result:=CreateRelativePath(Result,BaseDir); Result:=NodeData.Target.Filename;
if Result='' then
Result:='?'
else
Result:=CreateRelativePath(Result,BaseDir);
end;
end; end;
procedure TProjectGroupEditorForm.ShowFileName; procedure TProjectGroupEditorForm.ShowFileName;

View File

@ -61,8 +61,8 @@ Type
function GetFiles(Index: integer): string; virtual; abstract; function GetFiles(Index: integer): string; virtual; abstract;
function GetRequiredPackageCount: integer; virtual; abstract; function GetRequiredPackageCount: integer; virtual; abstract;
function GetRequiredPackages(Index: integer): TPGDependency; virtual; abstract; function GetRequiredPackages(Index: integer): TPGDependency; virtual; abstract;
function Perform (AAction: TPGTargetAction): TPGActionResult; function Perform(AAction: TPGTargetAction): TPGActionResult;
function PerformAction (AAction: TPGTargetAction): TPGActionResult; virtual; abstract; function PerformAction(AAction: TPGTargetAction): TPGActionResult; virtual; abstract;
procedure Activate; virtual; procedure Activate; virtual;
procedure DeActivate; virtual; procedure DeActivate; virtual;
procedure SetFilename(const AValue: string); virtual; procedure SetFilename(const AValue: string); virtual;