mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-07 16:16:00 +02:00
IDE: package editor: fixed removing files in hierarchical view
git-svn-id: trunk@29077 -
This commit is contained in:
parent
9613ead8b0
commit
9d25352fd0
@ -300,7 +300,7 @@ begin
|
|||||||
if APackage.LPKSource<>nil then
|
if APackage.LPKSource<>nil then
|
||||||
Filename:=APackage.LPKSource.Filename
|
Filename:=APackage.LPKSource.Filename
|
||||||
else
|
else
|
||||||
Filename:=APackage.GetResolvedFilename(true);
|
Filename:=APackage.GetFullFilename(true);
|
||||||
APackage.SaveToString(Source);
|
APackage.SaveToString(Source);
|
||||||
end else begin
|
end else begin
|
||||||
Filename:='';
|
Filename:='';
|
||||||
|
@ -668,7 +668,8 @@ type
|
|||||||
function IsVirtual: boolean; override;
|
function IsVirtual: boolean; override;
|
||||||
function HasDirectory: boolean;
|
function HasDirectory: boolean;
|
||||||
function HasStaticDirectory: boolean;
|
function HasStaticDirectory: boolean;
|
||||||
function GetResolvedFilename(ResolveMacros: boolean): string;
|
function GetFullFilename(ResolveMacros: boolean): string;
|
||||||
|
function GetResolvedFilename(ResolveMacros: boolean): string; // GetFullFilename + ReadAllLinks
|
||||||
function GetSourceDirs(WithPkgDir, WithoutOutputDir: boolean): string;
|
function GetSourceDirs(WithPkgDir, WithoutOutputDir: boolean): string;
|
||||||
procedure GetInheritedCompilerOptions(var OptionsList: TFPList);
|
procedure GetInheritedCompilerOptions(var OptionsList: TFPList);
|
||||||
function GetOutputDirectory(UseOverride: boolean = true): string; // this can change before building, when default dir is readonly
|
function GetOutputDirectory(UseOverride: boolean = true): string; // this can change before building, when default dir is readonly
|
||||||
@ -2805,6 +2806,13 @@ begin
|
|||||||
Result:=FHasStaticDirectory;
|
Result:=FHasStaticDirectory;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TLazPackage.GetFullFilename(ResolveMacros: boolean): string;
|
||||||
|
begin
|
||||||
|
Result:=FFilename;
|
||||||
|
if ResolveMacros then
|
||||||
|
GlobalMacroList.SubstituteStr(Result);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TLazPackage.CheckInnerDependencies;
|
procedure TLazPackage.CheckInnerDependencies;
|
||||||
begin
|
begin
|
||||||
// ToDo: make some checks like deactivating double requirements
|
// ToDo: make some checks like deactivating double requirements
|
||||||
@ -2847,9 +2855,7 @@ function TLazPackage.GetResolvedFilename(ResolveMacros: boolean): string;
|
|||||||
var
|
var
|
||||||
s: String;
|
s: String;
|
||||||
begin
|
begin
|
||||||
Result:=FFilename;
|
Result:=GetFullFilename(ResolveMacros);
|
||||||
if ResolveMacros then
|
|
||||||
GlobalMacroList.SubstituteStr(Result);
|
|
||||||
s:=ReadAllLinks(Result,false);
|
s:=ReadAllLinks(Result,false);
|
||||||
if s<>'' then Result:=s;
|
if s<>'' then Result:=s;
|
||||||
end;
|
end;
|
||||||
|
@ -262,8 +262,8 @@ type
|
|||||||
procedure UpdateSelectedFile;
|
procedure UpdateSelectedFile;
|
||||||
procedure UpdateApplyDependencyButton;
|
procedure UpdateApplyDependencyButton;
|
||||||
procedure UpdateStatusBar;
|
procedure UpdateStatusBar;
|
||||||
function GetCurrentDependency(var Removed: boolean): TPkgDependency;
|
function GetCurrentDependency(out Removed: boolean): TPkgDependency;
|
||||||
function GetCurrentFile(var Removed: boolean): TPkgFile;
|
function GetCurrentFile(out Removed: boolean): TPkgFile;
|
||||||
function StoreCurrentTreeSelection: TStringList;
|
function StoreCurrentTreeSelection: TStringList;
|
||||||
procedure ApplyTreeSelection(ASelection: TStringList; FreeList: boolean);
|
procedure ApplyTreeSelection(ASelection: TStringList; FreeList: boolean);
|
||||||
procedure ExtendUnitIncPathForNewUnit(const AnUnitFilename,
|
procedure ExtendUnitIncPathForNewUnit(const AnUnitFilename,
|
||||||
@ -555,6 +555,7 @@ var
|
|||||||
procedure SetItem(Item: TIDEMenuCommand; AnOnClick: TNotifyEvent;
|
procedure SetItem(Item: TIDEMenuCommand; AnOnClick: TNotifyEvent;
|
||||||
aShow: boolean = true; AEnable: boolean = true);
|
aShow: boolean = true; AEnable: boolean = true);
|
||||||
begin
|
begin
|
||||||
|
//debugln(['SetItem ',Item.Caption,' Visible=',aShow,' Enable=',AEnable]);
|
||||||
Item.OnClick:=AnOnClick;
|
Item.OnClick:=AnOnClick;
|
||||||
Item.Visible:=aShow;
|
Item.Visible:=aShow;
|
||||||
Item.Enabled:=AEnable;
|
Item.Enabled:=AEnable;
|
||||||
@ -955,6 +956,7 @@ var
|
|||||||
CurDependency: TPkgDependency;
|
CurDependency: TPkgDependency;
|
||||||
s: String;
|
s: String;
|
||||||
mt: TMsgDlgType;
|
mt: TMsgDlgType;
|
||||||
|
Removed: boolean;
|
||||||
begin
|
begin
|
||||||
ANode:=FilesTreeView.Selected;
|
ANode:=FilesTreeView.Selected;
|
||||||
if (ANode=nil) or LazPackage.ReadOnly then begin
|
if (ANode=nil) or LazPackage.ReadOnly then begin
|
||||||
@ -962,9 +964,9 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
NodeIndex:=ANode.Index;
|
NodeIndex:=ANode.Index;
|
||||||
if ANode.Parent=FFilesNode then begin
|
if TObject(ANode.Data) is TPkgEditFileItem then begin
|
||||||
// get current package file
|
// get current package file
|
||||||
CurFile:=LazPackage.Files[NodeIndex];
|
CurFile:=GetCurrentFile(Removed);
|
||||||
if CurFile<>nil then begin
|
if CurFile<>nil then begin
|
||||||
// confirm deletion
|
// confirm deletion
|
||||||
s:='';
|
s:='';
|
||||||
@ -982,7 +984,7 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
LazPackage.RemoveFile(CurFile);
|
LazPackage.RemoveFile(CurFile);
|
||||||
end;
|
end;
|
||||||
UpdateAll(true);
|
UpdateAll(false);
|
||||||
end else if ANode.Parent=FRequiredPackagesNode then begin
|
end else if ANode.Parent=FRequiredPackagesNode then begin
|
||||||
// get current dependency
|
// get current dependency
|
||||||
CurDependency:=LazPackage.RequiredDepByIndex(NodeIndex);
|
CurDependency:=LazPackage.RequiredDepByIndex(NodeIndex);
|
||||||
@ -1628,7 +1630,7 @@ begin
|
|||||||
AddBitBtn.Enabled:=not LazPackage.ReadOnly;
|
AddBitBtn.Enabled:=not LazPackage.ReadOnly;
|
||||||
RemoveBitBtn.Enabled:=(not LazPackage.ReadOnly)
|
RemoveBitBtn.Enabled:=(not LazPackage.ReadOnly)
|
||||||
and (FilesTreeView.Selected<>nil)
|
and (FilesTreeView.Selected<>nil)
|
||||||
and ((FilesTreeView.Selected.Parent=FFilesNode)
|
and ((TObject(FilesTreeView.Selected.Data) is TPkgEditFileItem)
|
||||||
or (FilesTreeView.Selected.Parent=FRequiredPackagesNode));
|
or (FilesTreeView.Selected.Parent=FRequiredPackagesNode));
|
||||||
if (LazPackage.Installed<>pitNope)
|
if (LazPackage.Installed<>pitNope)
|
||||||
or PackageEditors.ShouldNotBeInstalled(LazPackage) then begin
|
or PackageEditors.ShouldNotBeInstalled(LazPackage) then begin
|
||||||
@ -2059,13 +2061,14 @@ begin
|
|||||||
StatusBar.SimpleText:=StatusText;
|
StatusBar.SimpleText:=StatusText;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TPackageEditorForm.GetCurrentDependency(var Removed: boolean
|
function TPackageEditorForm.GetCurrentDependency(out Removed: boolean
|
||||||
): TPkgDependency;
|
): TPkgDependency;
|
||||||
var
|
var
|
||||||
CurNode: TTreeNode;
|
CurNode: TTreeNode;
|
||||||
NodeIndex: Integer;
|
NodeIndex: Integer;
|
||||||
begin
|
begin
|
||||||
Result:=nil;
|
Result:=nil;
|
||||||
|
Removed:=false;
|
||||||
CurNode:=FilesTreeView.Selected;
|
CurNode:=FilesTreeView.Selected;
|
||||||
if (CurNode<>nil) and (CurNode.Parent<>nil) then begin
|
if (CurNode<>nil) and (CurNode.Parent<>nil) then begin
|
||||||
NodeIndex:=CurNode.Index;
|
NodeIndex:=CurNode.Index;
|
||||||
@ -2079,7 +2082,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TPackageEditorForm.GetCurrentFile(var Removed: boolean): TPkgFile;
|
function TPackageEditorForm.GetCurrentFile(out Removed: boolean): TPkgFile;
|
||||||
var
|
var
|
||||||
CurNode: TTreeNode;
|
CurNode: TTreeNode;
|
||||||
NodeIndex: Integer;
|
NodeIndex: Integer;
|
||||||
@ -2087,6 +2090,7 @@ var
|
|||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
Result:=nil;
|
Result:=nil;
|
||||||
|
Removed:=false;
|
||||||
CurNode:=FilesTreeView.Selected;
|
CurNode:=FilesTreeView.Selected;
|
||||||
if (CurNode=nil) or (CurNode.Parent=nil) then exit;
|
if (CurNode=nil) or (CurNode.Parent=nil) then exit;
|
||||||
NodeIndex:=CurNode.Index;
|
NodeIndex:=CurNode.Index;
|
||||||
@ -2096,12 +2100,16 @@ begin
|
|||||||
Removed:=true;
|
Removed:=true;
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
//debugln(['TPackageEditorForm.GetCurrentFile ',DbgSName(TObject(CurNode.Data)),' ',CurNode.Text]);
|
||||||
if TObject(CurNode.Data) is TPkgEditFileItem then
|
if TObject(CurNode.Data) is TPkgEditFileItem then
|
||||||
begin
|
begin
|
||||||
Item:=TPkgEditFileItem(CurNode.Data);
|
Item:=TPkgEditFileItem(CurNode.Data);
|
||||||
|
//debugln(['TPackageEditorForm.GetCurrentFile Item=',Item.Filename,' ',Item.IsDirectory]);
|
||||||
if Item.IsDirectory then exit;
|
if Item.IsDirectory then exit;
|
||||||
for i:=0 to LazPackage.FileCount-1 do
|
for i:=0 to LazPackage.FileCount-1 do
|
||||||
begin
|
begin
|
||||||
|
//if ExtractFIlename(LazPackage.Files[i].Filename)=ExtractFIlename(Item.Filename) then
|
||||||
|
// debugln(['TPackageEditorForm.GetCurrentFile FOUND ',LazPackage.Files[i].Filename,' ',Item.Filename=LazPackage.Files[i].Filename]);
|
||||||
if Item.Filename=LazPackage.Files[i].Filename then
|
if Item.Filename=LazPackage.Files[i].Filename then
|
||||||
begin
|
begin
|
||||||
Result:=LazPackage.Files[i];
|
Result:=LazPackage.Files[i];
|
||||||
|
Loading…
Reference in New Issue
Block a user