mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-08 00:02:03 +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;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
{off $DEFINE WITH_RANDOM_SEED} // ONLY applies, after "apply" or "ok" when the graph is redrawn
|
||||
|
||||
interface
|
||||
|
||||
@ -27,6 +28,9 @@ type
|
||||
FOnLoaded: TNotifyEvent;
|
||||
FReduceBackEdges: Boolean;
|
||||
FStraightenGraph: Boolean;
|
||||
{$IFDEF WITH_RANDOM_SEED}
|
||||
FTestRandomSeed: integer;
|
||||
{$ENDIF}
|
||||
public
|
||||
constructor Create;
|
||||
procedure ReadFromXml(AnXmlConf: TRttiXMLConfig; APath: String); override;
|
||||
@ -46,6 +50,9 @@ type
|
||||
property StraightenGraph: Boolean read FStraightenGraph write FStraightenGraph;
|
||||
property LimitLvlHeighAbs: integer read FLimitLvlHeighAbs write FLimitLvlHeighAbs;
|
||||
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;
|
||||
end;
|
||||
@ -106,6 +113,9 @@ type
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure OKButtonClick(Sender: TObject);
|
||||
private
|
||||
{$IFDEF WITH_RANDOM_SEED}
|
||||
spinTestRandomSeed: TSpinEdit;
|
||||
{$ENDIF}
|
||||
FApplyCallback: TApplyOptionsProc;
|
||||
FGraph: TLvlGraph;
|
||||
FOptions: TLvlGraphOptions;
|
||||
@ -192,6 +202,14 @@ begin
|
||||
spinHorizSpacing.Hint := Format(LvlGraphAddHorizontalSpacing, [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;
|
||||
PopulateEdgeShape;
|
||||
end;
|
||||
@ -305,6 +323,9 @@ begin
|
||||
Options.ExtraSpacingVert := spinVertSpacing.Value;
|
||||
Options.LimitLvlHeighAbs := spinLvlLimitAbs.Value;
|
||||
Options.LimitLvlHeighRel := spinLvlLimitRel.Value;
|
||||
{$IFDEF WITH_RANDOM_SEED}
|
||||
Options.TestRandomSeed := spinTestRandomSeed.Value;
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
procedure TDependencyGraphOptDialog.ReadFromOpts;
|
||||
@ -320,6 +341,9 @@ begin
|
||||
spinVertSpacing.Value := Options.ExtraSpacingVert;
|
||||
spinLvlLimitAbs.Value := Options.LimitLvlHeighAbs;
|
||||
spinLvlLimitRel.Value := Options.LimitLvlHeighRel;
|
||||
{$IFDEF WITH_RANDOM_SEED}
|
||||
spinTestRandomSeed.Value := Options.TestRandomSeed;
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
procedure TDependencyGraphOptDialog.UpdateInfo;
|
||||
@ -464,6 +488,10 @@ begin
|
||||
AValue.Options := AValue.Options - [lgoStraightenGraph];
|
||||
AValue.Limits.MaxLevelHeightAbs := LimitLvlHeighAbs;
|
||||
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;
|
||||
|
||||
procedure TLvlGraphOptions.ReadFromGraph(AValue: TLvlGraphControl);
|
||||
|
Loading…
Reference in New Issue
Block a user