mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-20 18:39:43 +02:00
Unit-Dependencies, PkgGraphExplorer: Add DEBUG setting "TestRandomSeed" to option dialog. Allows other options to be tested on a fixed/reproducible graph
git-svn-id: trunk@60893 -
This commit is contained in:
parent
180da00d4a
commit
18edc84831
@ -1,6 +1,7 @@
|
|||||||
unit DependencyGraphOptions;
|
unit DependencyGraphOptions;
|
||||||
|
|
||||||
{$mode objfpc}{$H+}
|
{$mode objfpc}{$H+}
|
||||||
|
{off $DEFINE WITH_RANDOM_SEED} // ONLY applies, after "apply" or "ok" when the graph is redrawn
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
@ -27,6 +28,9 @@ type
|
|||||||
FOnLoaded: TNotifyEvent;
|
FOnLoaded: TNotifyEvent;
|
||||||
FReduceBackEdges: Boolean;
|
FReduceBackEdges: Boolean;
|
||||||
FStraightenGraph: Boolean;
|
FStraightenGraph: Boolean;
|
||||||
|
{$IFDEF WITH_RANDOM_SEED}
|
||||||
|
FTestRandomSeed: integer;
|
||||||
|
{$ENDIF}
|
||||||
public
|
public
|
||||||
constructor Create;
|
constructor Create;
|
||||||
procedure ReadFromXml(AnXmlConf: TRttiXMLConfig; APath: String); override;
|
procedure ReadFromXml(AnXmlConf: TRttiXMLConfig; APath: String); override;
|
||||||
@ -46,6 +50,9 @@ type
|
|||||||
property StraightenGraph: Boolean read FStraightenGraph write FStraightenGraph;
|
property StraightenGraph: Boolean read FStraightenGraph write FStraightenGraph;
|
||||||
property LimitLvlHeighAbs: integer read FLimitLvlHeighAbs write FLimitLvlHeighAbs;
|
property LimitLvlHeighAbs: integer read FLimitLvlHeighAbs write FLimitLvlHeighAbs;
|
||||||
property LimitLvlHeighRel: Single read FLimitLvlHeighRel write FLimitLvlHeighRel;
|
property LimitLvlHeighRel: Single read FLimitLvlHeighRel write FLimitLvlHeighRel;
|
||||||
|
{$IFDEF WITH_RANDOM_SEED}
|
||||||
|
property TestRandomSeed: integer read FTestRandomSeed write FTestRandomSeed;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
property OnLoaded: TNotifyEvent read FOnLoaded write FOnLoaded;
|
property OnLoaded: TNotifyEvent read FOnLoaded write FOnLoaded;
|
||||||
end;
|
end;
|
||||||
@ -106,6 +113,9 @@ type
|
|||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure OKButtonClick(Sender: TObject);
|
procedure OKButtonClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
|
{$IFDEF WITH_RANDOM_SEED}
|
||||||
|
spinTestRandomSeed: TSpinEdit;
|
||||||
|
{$ENDIF}
|
||||||
FApplyCallback: TApplyOptionsProc;
|
FApplyCallback: TApplyOptionsProc;
|
||||||
FGraph: TLvlGraph;
|
FGraph: TLvlGraph;
|
||||||
FOptions: TLvlGraphOptions;
|
FOptions: TLvlGraphOptions;
|
||||||
@ -192,6 +202,14 @@ begin
|
|||||||
spinHorizSpacing.Hint := Format(LvlGraphAddHorizontalSpacing, [LineEnding]);
|
spinHorizSpacing.Hint := Format(LvlGraphAddHorizontalSpacing, [LineEnding]);
|
||||||
spinVertSpacing.Hint := Format(LvlGraphAddVerticalSpacingAr, [LineEnding]);
|
spinVertSpacing.Hint := Format(LvlGraphAddVerticalSpacingAr, [LineEnding]);
|
||||||
|
|
||||||
|
{$IFDEF WITH_RANDOM_SEED}
|
||||||
|
spinTestRandomSeed := TSpinEdit.Create(Self);
|
||||||
|
spinTestRandomSeed.Parent := OptionsGroup;
|
||||||
|
spinTestRandomSeed.Hint := 'Random seed for testing. Set to none zero to activate';
|
||||||
|
spinTestRandomSeed.ShowHint := True;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
PopulateEdgeSplit;
|
PopulateEdgeSplit;
|
||||||
PopulateEdgeShape;
|
PopulateEdgeShape;
|
||||||
end;
|
end;
|
||||||
@ -305,6 +323,9 @@ begin
|
|||||||
Options.ExtraSpacingVert := spinVertSpacing.Value;
|
Options.ExtraSpacingVert := spinVertSpacing.Value;
|
||||||
Options.LimitLvlHeighAbs := spinLvlLimitAbs.Value;
|
Options.LimitLvlHeighAbs := spinLvlLimitAbs.Value;
|
||||||
Options.LimitLvlHeighRel := spinLvlLimitRel.Value;
|
Options.LimitLvlHeighRel := spinLvlLimitRel.Value;
|
||||||
|
{$IFDEF WITH_RANDOM_SEED}
|
||||||
|
Options.TestRandomSeed := spinTestRandomSeed.Value;
|
||||||
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TDependencyGraphOptDialog.ReadFromOpts;
|
procedure TDependencyGraphOptDialog.ReadFromOpts;
|
||||||
@ -320,6 +341,9 @@ begin
|
|||||||
spinVertSpacing.Value := Options.ExtraSpacingVert;
|
spinVertSpacing.Value := Options.ExtraSpacingVert;
|
||||||
spinLvlLimitAbs.Value := Options.LimitLvlHeighAbs;
|
spinLvlLimitAbs.Value := Options.LimitLvlHeighAbs;
|
||||||
spinLvlLimitRel.Value := Options.LimitLvlHeighRel;
|
spinLvlLimitRel.Value := Options.LimitLvlHeighRel;
|
||||||
|
{$IFDEF WITH_RANDOM_SEED}
|
||||||
|
spinTestRandomSeed.Value := Options.TestRandomSeed;
|
||||||
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TDependencyGraphOptDialog.UpdateInfo;
|
procedure TDependencyGraphOptDialog.UpdateInfo;
|
||||||
@ -464,6 +488,10 @@ begin
|
|||||||
AValue.Options := AValue.Options - [lgoStraightenGraph];
|
AValue.Options := AValue.Options - [lgoStraightenGraph];
|
||||||
AValue.Limits.MaxLevelHeightAbs := LimitLvlHeighAbs;
|
AValue.Limits.MaxLevelHeightAbs := LimitLvlHeighAbs;
|
||||||
AValue.Limits.MaxLevelHeightRel := LimitLvlHeighRel;
|
AValue.Limits.MaxLevelHeightRel := LimitLvlHeighRel;
|
||||||
|
{$IFDEF WITH_RANDOM_SEED}
|
||||||
|
if TestRandomSeed <> 0 then
|
||||||
|
RandSeed := TestRandomSeed; // graph autolayout should be triggered before anything else uses random
|
||||||
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TLvlGraphOptions.ReadFromGraph(AValue: TLvlGraphControl);
|
procedure TLvlGraphOptions.ReadFromGraph(AValue: TLvlGraphControl);
|
||||||
|
Loading…
Reference in New Issue
Block a user