Package editor: don't update the whole tree after changing Min or Max version of required package. Part of issue #26188

git-svn-id: trunk@46038 -
This commit is contained in:
juha 2014-08-11 22:58:43 +00:00
parent 26324afb73
commit 79cefdc9de
2 changed files with 29 additions and 20 deletions

View File

@ -1534,48 +1534,58 @@ end;
procedure TPackageEditorForm.ApplyDependencyButtonClick(Sender: TObject); procedure TPackageEditorForm.ApplyDependencyButtonClick(Sender: TObject);
var var
NewDependency: TPkgDependency; Flags: TPkgDependencyFlags;
MinVers, MaxVers: TPkgVersion;
begin begin
if LazPackage=nil then exit; if LazPackage=nil then exit;
if FSingleSelectedDep=nil then exit; if FSingleSelectedDep=nil then exit;
if LazPackage.FindDependencyByName(FSingleSelectedDep.PackageName)<>FSingleSelectedDep if LazPackage.FindDependencyByName(FSingleSelectedDep.PackageName)<>FSingleSelectedDep
then exit; then exit;
NewDependency:=TPkgDependency.Create; MinVers:=TPkgVersion.Create;
MaxVers:=TPkgVersion.Create;
try try
NewDependency.Assign(FSingleSelectedDep); // Assign relevant data to temp variables
Flags:=FSingleSelectedDep.Flags;
MinVers.Assign(FSingleSelectedDep.MinVersion);
MaxVers.Assign(FSingleSelectedDep.MinVersion);
// read minimum version // read minimum version
if UseMinVersionCheckBox.Checked then begin if UseMinVersionCheckBox.Checked then begin
NewDependency.Flags:=NewDependency.Flags+[pdfMinVersion]; Include(Flags, pdfMinVersion);
if not NewDependency.MinVersion.ReadString(MinVersionEdit.Text) then begin if not MinVers.ReadString(MinVersionEdit.Text) then begin
MessageDlg(lisPckEditInvalidMinimumVersion, MessageDlg(lisPckEditInvalidMinimumVersion,
Format(lisPckEditTheMinimumVersionIsNotAValidPackageVersion, Format(lisPckEditTheMinimumVersionIsNotAValidPackageVersion,
[MinVersionEdit.Text, LineEnding]), [MinVersionEdit.Text, LineEnding]),
mtError,[mbCancel],0); mtError,[mbCancel],0);
exit; exit;
end; end;
end else begin end
NewDependency.Flags:=NewDependency.Flags-[pdfMinVersion]; else
end; Exclude(Flags, pdfMinVersion);
// read maximum version // read maximum version
if UseMaxVersionCheckBox.Checked then begin if UseMaxVersionCheckBox.Checked then begin
NewDependency.Flags:=NewDependency.Flags+[pdfMaxVersion]; Include(Flags, pdfMaxVersion);
if not NewDependency.MaxVersion.ReadString(MaxVersionEdit.Text) then begin if not MaxVers.ReadString(MaxVersionEdit.Text) then begin
MessageDlg(lisPckEditInvalidMaximumVersion, MessageDlg(lisPckEditInvalidMaximumVersion,
Format(lisPckEditTheMaximumVersionIsNotAValidPackageVersion, Format(lisPckEditTheMaximumVersionIsNotAValidPackageVersion,
[MaxVersionEdit.Text, LineEnding]), [MaxVersionEdit.Text, LineEnding]),
mtError,[mbCancel],0); mtError,[mbCancel],0);
exit; exit;
end; end;
end else begin end
NewDependency.Flags:=NewDependency.Flags-[pdfMaxVersion]; else
end; Exclude(Flags, pdfMaxVersion);
PackageGraph.ChangeDependency(FSingleSelectedDep,NewDependency); // Assign changes back to the dependency
FSingleSelectedDep.Flags := Flags;
FSingleSelectedDep.MinVersion.Assign(MinVers);
FSingleSelectedDep.MaxVersion.Assign(MaxVers);
LazPackage.ModifySilently;
finally finally
NewDependency.Free; MaxVers.Free;
MinVers.Free;
end; end;
end; end;

View File

@ -386,7 +386,7 @@ type
procedure AddDependencyToPackage(APackage, RequiredPackage: TLazPackage); procedure AddDependencyToPackage(APackage, RequiredPackage: TLazPackage);
procedure RemoveDependencyFromPackage(APackage: TLazPackage; procedure RemoveDependencyFromPackage(APackage: TLazPackage;
Dependency: TPkgDependency; AddToRemovedList: boolean); Dependency: TPkgDependency; AddToRemovedList: boolean);
procedure ChangeDependency(Dependency, NewDependency: TPkgDependency); //procedure ChangeDependency(Dependency, NewDependency: TPkgDependency);
function OpenDependency(Dependency: TPkgDependency; function OpenDependency(Dependency: TPkgDependency;
ShowAbort: boolean): TLoadPackageResult; ShowAbort: boolean): TLoadPackageResult;
function FindAlternativeLPK(APackage: TLazPackage): string; function FindAlternativeLPK(APackage: TLazPackage): string;
@ -5239,9 +5239,8 @@ begin
IncreaseBuildMacroChangeStamp; IncreaseBuildMacroChangeStamp;
EndUpdate; EndUpdate;
end; end;
{
procedure TLazPackageGraph.ChangeDependency(Dependency, procedure TLazPackageGraph.ChangeDependency(Dependency, NewDependency: TPkgDependency);
NewDependency: TPkgDependency);
begin begin
if Dependency.Compare(NewDependency)=0 then exit; if Dependency.Compare(NewDependency)=0 then exit;
BeginUpdate(true); BeginUpdate(true);
@ -5252,7 +5251,7 @@ begin
DoDependencyChanged(Dependency); DoDependencyChanged(Dependency);
EndUpdate; EndUpdate;
end; end;
}
function TLazPackageGraph.OpenDependency(Dependency: TPkgDependency; function TLazPackageGraph.OpenDependency(Dependency: TPkgDependency;
ShowAbort: boolean): TLoadPackageResult; ShowAbort: boolean): TLoadPackageResult;