IDE: package editor: update dependencyappy button

git-svn-id: trunk@45451 -
This commit is contained in:
mattias 2014-06-10 11:44:06 +00:00
parent 9297739c60
commit 0741098302

View File

@ -1477,6 +1477,7 @@ begin
finally finally
EndUpdate; EndUpdate;
end; end;
exit;
end; end;
end; end;
end; end;
@ -1489,6 +1490,7 @@ var
Dependency: TPkgDependency; Dependency: TPkgDependency;
begin begin
if LazPackage=nil then exit; if LazPackage=nil then exit;
BeginUdate;
ListOfNodeInfos:=nil; ListOfNodeInfos:=nil;
try try
if ShowCleanPkgDepDlg(LazPackage,ListOfNodeInfos)<>mrOk then exit; if ShowCleanPkgDepDlg(LazPackage,ListOfNodeInfos)<>mrOk then exit;
@ -1500,6 +1502,7 @@ begin
end; end;
finally finally
ListOfNodeInfos.Free; ListOfNodeInfos.Free;
EndUpdate;
end; end;
end; end;
@ -1690,22 +1693,27 @@ end;
procedure TPackageEditorForm.SetDependencyDefaultFilename(AsPreferred: boolean); procedure TPackageEditorForm.SetDependencyDefaultFilename(AsPreferred: boolean);
var var
NewFilename: String; NewFilename: String;
CurDependency: TPkgDependency;
Removed: boolean;
begin begin
CurDependency:=GetCurrentDependency(Removed); if LazPackage=nil then exit;
if (CurDependency=nil) or Removed then exit; if FSingleSelectedDependency=nil then exit;
if LazPackage.FindDependencyByName(FSingleSelectedDependency.PackageName
)<>FSingleSelectedDependency then exit;
if LazPackage.ReadOnly then exit; if LazPackage.ReadOnly then exit;
if CurDependency.RequiredPackage=nil then exit; if FSingleSelectedDependency.RequiredPackage=nil then exit;
NewFilename:=CurDependency.RequiredPackage.Filename; NewFilename:=FSingleSelectedDependency.RequiredPackage.Filename;
if (NewFilename=CurDependency.DefaultFilename) if (NewFilename=FSingleSelectedDependency.DefaultFilename)
and (CurDependency.PreferDefaultFilename=AsPreferred) then and (FSingleSelectedDependency.PreferDefaultFilename=AsPreferred) then
exit; exit;
CurDependency.DefaultFilename:=NewFilename; BeginUdate;
CurDependency.PreferDefaultFilename:=AsPreferred; try
FSingleSelectedDependency.DefaultFilename:=NewFilename;
FSingleSelectedDependency.PreferDefaultFilename:=AsPreferred;
LazPackage.Modified:=true; LazPackage.Modified:=true;
UpdateRequiredPkgs; UpdateRequiredPkgs;
UpdateButtons; UpdateButtons;
finally
EndUpdate;
end;
end; end;
procedure TPackageEditorForm.SetIdleConnected(AValue: boolean); procedure TPackageEditorForm.SetIdleConnected(AValue: boolean);
@ -2436,38 +2444,55 @@ end;
procedure TPackageEditorForm.UpdateApplyDependencyButton(Immediately: boolean); procedure TPackageEditorForm.UpdateApplyDependencyButton(Immediately: boolean);
var var
DepencyChanged: Boolean; DependencyChanged: Boolean;
CurDependency: TPkgDependency;
AVersion: TPkgVersion; AVersion: TPkgVersion;
Removed: boolean; i: Integer;
TVNode: TTreeNode;
NodeData: TPENodeData;
Item: TObject;
begin begin
if not CanUpdate(pefNeedUpdateApplyDependencyButton) then exit; if not CanUpdate(pefNeedUpdateApplyDependencyButton) then exit;
DepencyChanged:=false; FSingleSelectedDependency:=nil;
CurDependency:=GetCurrentDependency(Removed); for i:=0 to ItemsTreeView.SelectionCount-1 do begin
if (CurDependency<>nil) then begin TVNode:=ItemsTreeView.Selections[i];
if not GetNodeDataItem(TVNode,NodeData,Item) then continue;
if Item is TPkgFile then begin
FSingleSelectedDependency:=nil;
break;
end else if Item is TPkgDependency then begin
if FSingleSelectedDependency<>nil then begin
FSingleSelectedDependency:=nil;
break;
end;
FSingleSelectedDependency:=TPkgDependency(Item);
end;
end;
DependencyChanged:=false;
if (FSingleSelectedDependency<>nil) then begin
// check min version // check min version
if UseMinVersionCheckBox.Checked<>(pdfMinVersion in CurDependency.Flags) then if UseMinVersionCheckBox.Checked<>(pdfMinVersion in FSingleSelectedDependency.Flags) then
DepencyChanged:=true; DependencyChanged:=true;
if UseMinVersionCheckBox.Checked then begin if UseMinVersionCheckBox.Checked then begin
AVersion:=TPkgVersion.Create; AVersion:=TPkgVersion.Create;
if AVersion.ReadString(MinVersionEdit.Text) if AVersion.ReadString(MinVersionEdit.Text)
and (AVersion.Compare(CurDependency.MinVersion)<>0) then and (AVersion.Compare(FSingleSelectedDependency.MinVersion)<>0) then
DepencyChanged:=true; DependencyChanged:=true;
AVersion.Free; AVersion.Free;
end; end;
// check max version // check max version
if UseMaxVersionCheckBox.Checked<>(pdfMaxVersion in CurDependency.Flags) then if UseMaxVersionCheckBox.Checked<>(pdfMaxVersion in FSingleSelectedDependency.Flags) then
DepencyChanged:=true; DependencyChanged:=true;
if UseMaxVersionCheckBox.Checked then begin if UseMaxVersionCheckBox.Checked then begin
AVersion:=TPkgVersion.Create; AVersion:=TPkgVersion.Create;
if AVersion.ReadString(MaxVersionEdit.Text) if AVersion.ReadString(MaxVersionEdit.Text)
and (AVersion.Compare(CurDependency.MaxVersion)<>0) then and (AVersion.Compare(FSingleSelectedDependency.MaxVersion)<>0) then
DepencyChanged:=true; DependencyChanged:=true;
AVersion.Free; AVersion.Free;
end; end;
end; end;
ApplyDependencyButton.Enabled:=DepencyChanged; ApplyDependencyButton.Enabled:=DependencyChanged;
end; end;
procedure TPackageEditorForm.UpdateStatusBar(Immediately: boolean); procedure TPackageEditorForm.UpdateStatusBar(Immediately: boolean);