mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-12 09:20:40 +01:00
IDE: package editor: multi remove
git-svn-id: trunk@45434 -
This commit is contained in:
parent
925c9da8f3
commit
97cbd8076e
@ -4182,6 +4182,8 @@ resourcestring
|
|||||||
lisPckEditRemoveDependency2 = 'Remove Dependency?';
|
lisPckEditRemoveDependency2 = 'Remove Dependency?';
|
||||||
lisPckEditRemoveDependencyFromPackage = 'Remove dependency %s%s%s%sfrom '
|
lisPckEditRemoveDependencyFromPackage = 'Remove dependency %s%s%s%sfrom '
|
||||||
+'package %s%s%s?';
|
+'package %s%s%s?';
|
||||||
|
lisRemoveDependenciesFromPackage =
|
||||||
|
'Remove %s dependencies from package "%s"?';
|
||||||
lisPckEditInvalidMinimumVersion = 'Invalid minimum version';
|
lisPckEditInvalidMinimumVersion = 'Invalid minimum version';
|
||||||
lisPckEditTheMinimumVersionIsNotAValidPackageVersion = 'The minimum '
|
lisPckEditTheMinimumVersionIsNotAValidPackageVersion = 'The minimum '
|
||||||
+'version %s%s%s is not a valid package version.%s(good example 1.2.3.4)';
|
+'version %s%s%s is not a valid package version.%s(good example 1.2.3.4)';
|
||||||
@ -5286,6 +5288,7 @@ resourcestring
|
|||||||
lisChangeBuildMode = 'Change build mode';
|
lisChangeBuildMode = 'Change build mode';
|
||||||
lisWarningThisIsTheMainUnitTheNewMainUnitWillBePas = '%sWarning: This is '
|
lisWarningThisIsTheMainUnitTheNewMainUnitWillBePas = '%sWarning: This is '
|
||||||
+'the main unit. The new main unit will be %s.pas.';
|
+'the main unit. The new main unit will be %s.pas.';
|
||||||
|
lisRemoveFilesFromPackage = 'Remove %s files from package "%s"?';
|
||||||
lisDirectivesForNewUnit = 'Directives for new unit';
|
lisDirectivesForNewUnit = 'Directives for new unit';
|
||||||
lisRemoveFromInstallList = 'Remove from install list';
|
lisRemoveFromInstallList = 'Remove from install list';
|
||||||
lisKeepInInstallList = 'Keep in install list';
|
lisKeepInInstallList = 'Keep in install list';
|
||||||
|
|||||||
@ -1041,7 +1041,15 @@ var
|
|||||||
CurDependency: TPkgDependency;
|
CurDependency: TPkgDependency;
|
||||||
s: String;
|
s: String;
|
||||||
mt: TMsgDlgType;
|
mt: TMsgDlgType;
|
||||||
Removed: boolean;
|
i: Integer;
|
||||||
|
TVNode: TTreeNode;
|
||||||
|
NodeData: TPENodeData;
|
||||||
|
Item: TObject;
|
||||||
|
MainUnitSelected: Boolean;
|
||||||
|
FileWarning: String;
|
||||||
|
FileCount: Integer;
|
||||||
|
PkgCount: Integer;
|
||||||
|
PkgWarning: String;
|
||||||
begin
|
begin
|
||||||
BeginUdate;
|
BeginUdate;
|
||||||
try
|
try
|
||||||
@ -1051,43 +1059,82 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// get current package file
|
// check selection
|
||||||
CurFile:=GetCurrentFile(Removed);
|
MainUnitSelected:=false;
|
||||||
if CurFile<>nil then begin
|
FileWarning:='';
|
||||||
if Removed then exit;
|
FileCount:=0;
|
||||||
// confirm deletion
|
PkgCount:=0;
|
||||||
s:='';
|
PkgWarning:='';
|
||||||
mt:=mtConfirmation;
|
for i:=0 to ItemsTreeView.SelectionCount-1 do begin
|
||||||
if CurFile.FileType=pftMainUnit then begin
|
TVNode:=ItemsTreeView.Selections[i];
|
||||||
s:=Format(lisWarningThisIsTheMainUnitTheNewMainUnitWillBePas,
|
if not GetNodeDataItem(TVNode,NodeData,Item) then continue;
|
||||||
[LineEnding+LineEnding, lowercase(LazPackage.Name)]);
|
if NodeData.Removed then continue;
|
||||||
mt:=mtWarning;
|
if Item is TPkgFile then begin
|
||||||
|
CurFile:=TPkgFile(Item);
|
||||||
|
inc(FileCount);
|
||||||
|
if CurFile.FileType=pftMainUnit then
|
||||||
|
MainUnitSelected:=true;
|
||||||
|
if FileWarning='' then
|
||||||
|
FileWarning:=Format(lisPckEditRemoveFileFromPackage,
|
||||||
|
['"', CurFile.Filename, '"', LineEnding, '"', LazPackage.IDAsString, '"']);
|
||||||
|
end else if Item is TPkgDependency then begin
|
||||||
|
CurDependency:=TPkgDependency(Item);
|
||||||
|
inc(PkgCount);
|
||||||
|
if PkgWarning='' then
|
||||||
|
PkgWarning:=Format(lisPckEditRemoveDependencyFromPackage, ['"',
|
||||||
|
CurDependency.AsString, '"', LineEnding, '"', LazPackage.IDAsString, '"']);
|
||||||
end;
|
end;
|
||||||
if MessageDlg(lisPckEditRemoveFile2,
|
end;
|
||||||
Format(lisPckEditRemoveFileFromPackage, ['"', CurFile.Filename, '"',
|
if (FileCount=0) and (PkgCount=0) then begin
|
||||||
LineEnding, '"', LazPackage.IDAsString, '"'])+s,
|
UpdateButtons;
|
||||||
mt,[mbYes,mbNo],0)=mrNo
|
|
||||||
then
|
|
||||||
exit;
|
|
||||||
LazPackage.RemoveFile(CurFile);
|
|
||||||
UpdateFiles;
|
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// get current dependency
|
|
||||||
CurDependency:=GetCurrentDependency(Removed);
|
|
||||||
if (CurDependency<>nil) then begin
|
|
||||||
if Removed then exit;
|
|
||||||
// confirm deletion
|
// confirm deletion
|
||||||
if MessageDlg(lisPckEditRemoveDependency2,
|
if FileCount>0 then begin
|
||||||
Format(lisPckEditRemoveDependencyFromPackage, ['"',
|
s:='';
|
||||||
CurDependency.AsString, '"', LineEnding, '"', LazPackage.IDAsString, '"']),
|
mt:=mtConfirmation;
|
||||||
mtConfirmation,[mbYes,mbNo],0)=mrNo
|
if FileCount=1 then
|
||||||
then
|
s:=FileWarning
|
||||||
|
else
|
||||||
|
s:=Format(lisRemoveFilesFromPackage, [IntToStr(FileCount), LazPackage.
|
||||||
|
Name]);
|
||||||
|
if MainUnitSelected then begin
|
||||||
|
s+=Format(lisWarningThisIsTheMainUnitTheNewMainUnitWillBePas,
|
||||||
|
[LineEnding+LineEnding, lowercase(LazPackage.Name)]);
|
||||||
|
mt:=mtWarning;
|
||||||
|
end;
|
||||||
|
if IDEMessageDialog(lisPckEditRemoveFile2,s,mt,[mbYes,mbNo])<>mrYes then
|
||||||
exit;
|
exit;
|
||||||
|
end;
|
||||||
|
if PkgCount>0 then begin
|
||||||
|
s:='';
|
||||||
|
mt:=mtConfirmation;
|
||||||
|
if PkgCount=1 then
|
||||||
|
s:=PkgWarning
|
||||||
|
else
|
||||||
|
s:=Format(lisRemoveDependenciesFromPackage, [IntToStr(PkgCount),
|
||||||
|
LazPackage.Name]);
|
||||||
|
if IDEMessageDialog(lisPckEditRemoveDependencyFromPackage,s,mt,[mbYes,mbNo])<>mrYes then
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// remove
|
||||||
|
for i:=0 to ItemsTreeView.SelectionCount-1 do begin
|
||||||
|
TVNode:=ItemsTreeView.Selections[i];
|
||||||
|
if not GetNodeDataItem(TVNode,NodeData,Item) then continue;
|
||||||
|
if NodeData.Removed then continue;
|
||||||
|
if Item is TPkgFile then begin
|
||||||
|
CurFile:=TPkgFile(Item);
|
||||||
|
LazPackage.RemoveFile(CurFile);
|
||||||
|
UpdateFiles;
|
||||||
|
end else if Item is TPkgDependency then begin
|
||||||
|
CurDependency:=TPkgDependency(Item);
|
||||||
PackageGraph.RemoveDependencyFromPackage(LazPackage,CurDependency,true);
|
PackageGraph.RemoveDependencyFromPackage(LazPackage,CurDependency,true);
|
||||||
UpdateRequiredPkgs;
|
UpdateRequiredPkgs;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
finally
|
finally
|
||||||
EndUpdate;
|
EndUpdate;
|
||||||
end;
|
end;
|
||||||
@ -1985,7 +2032,7 @@ begin
|
|||||||
RemovedBranch.AddNodeData(CurFile.GetShortFilename(true), NodeData);
|
RemovedBranch.AddNodeData(CurFile.GetShortFilename(true), NodeData);
|
||||||
end;
|
end;
|
||||||
end else begin
|
end else begin
|
||||||
// No removed dependencies -> delete the root node
|
// No more removed files left -> delete the root node
|
||||||
if FRemovedFilesNode<>nil then begin
|
if FRemovedFilesNode<>nil then begin
|
||||||
FilterEdit.DeleteBranch(FRemovedFilesNode);
|
FilterEdit.DeleteBranch(FRemovedFilesNode);
|
||||||
FreeAndNil(FRemovedFilesNode);
|
FreeAndNil(FRemovedFilesNode);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user