mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-06 01:38:19 +02:00
IDE: package graph: show clean package deps dialog
git-svn-id: trunk@40770 -
This commit is contained in:
parent
c38a486cb7
commit
a5be13c6ff
@ -55,6 +55,7 @@ object PkgGraphExplorerDlg: TPkgGraphExplorerDlg
|
||||
OnDblClick = LvlGraphControl1DblClick
|
||||
OnSelectionChanged = LvlGraphControl1SelectionChanged
|
||||
ParentColor = True
|
||||
ParentShowHint = False
|
||||
PopupMenu = PkgPopupMenu
|
||||
TabOrder = 0
|
||||
TabStop = False
|
||||
@ -65,6 +66,8 @@ object PkgGraphExplorerDlg: TPkgGraphExplorerDlg
|
||||
Top = 1
|
||||
Width = 194
|
||||
Align = alLeft
|
||||
DefaultItemHeight = 18
|
||||
PopupMenu = PkgPopupMenu
|
||||
ReadOnly = True
|
||||
TabOrder = 1
|
||||
OnDblClick = PkgTreeViewDblClick
|
||||
@ -83,8 +86,12 @@ object PkgGraphExplorerDlg: TPkgGraphExplorerDlg
|
||||
left = 32
|
||||
top = 40
|
||||
object UninstallMenuItem: TMenuItem
|
||||
Caption = 'New Item1'
|
||||
Caption = 'Uninstall'
|
||||
OnClick = UninstallMenuItemClick
|
||||
end
|
||||
object CleanPkgDepsMenuItem: TMenuItem
|
||||
Caption = 'Unneeded dependencies'
|
||||
OnClick = CleanPkgDepsMenuItemClick
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -39,11 +39,11 @@ interface
|
||||
uses
|
||||
Classes, SysUtils, Math, LCLProc, Forms, Controls, Buttons, ComCtrls,
|
||||
StdCtrls, Menus, Dialogs, Graphics, FileCtrl, LCLType, ExtCtrls,
|
||||
AVL_Tree,
|
||||
AVL_Tree, contnrs,
|
||||
IDECommands, PackageIntf, IDEImagesIntf, LazIDEIntf,
|
||||
LvlGraphCtrl,
|
||||
LazConf, LazarusIDEStrConsts, IDEProcs, IDEOptionDefs, EnvironmentOpts,
|
||||
Project, PackageDefs, PackageSystem, PackageEditor;
|
||||
Project, PackageDefs, PackageSystem, PackageEditor, CleanPkgDeps;
|
||||
|
||||
const
|
||||
GroupPrefixProject = '-Project-';
|
||||
@ -55,6 +55,7 @@ type
|
||||
{ TPkgGraphExplorerDlg }
|
||||
|
||||
TPkgGraphExplorerDlg = class(TForm)
|
||||
CleanPkgDepsMenuItem: TMenuItem;
|
||||
PkgTreeView: TTreeView;
|
||||
InfoMemo: TMemo;
|
||||
LvlGraphControl1: TLvlGraphControl;
|
||||
@ -63,6 +64,7 @@ type
|
||||
Splitter1: TSplitter;
|
||||
VerticalSplitter: TSplitter;
|
||||
UninstallMenuItem: TMenuItem;
|
||||
procedure CleanPkgDepsMenuItemClick(Sender: TObject);
|
||||
procedure LvlGraphControl1DblClick(Sender: TObject);
|
||||
procedure LvlGraphControl1SelectionChanged(Sender: TObject);
|
||||
procedure PkgGraphExplorerShow(Sender: TObject);
|
||||
@ -152,6 +154,39 @@ begin
|
||||
OnOpenPackage(Self,Pkg);
|
||||
end;
|
||||
|
||||
procedure TPkgGraphExplorerDlg.CleanPkgDepsMenuItemClick(Sender: TObject);
|
||||
var
|
||||
Owners: TFPList;
|
||||
ListOfNodeInfos: TObjectList;
|
||||
i: Integer;
|
||||
Info: TCPDNodeInfo;
|
||||
Pkg: TLazPackage;
|
||||
begin
|
||||
Owners:=TFPList.Create;
|
||||
ListOfNodeInfos:=nil;
|
||||
try
|
||||
if (Project1<>nil) then
|
||||
Owners.Add(Project1);
|
||||
for i:=0 to PackageGraph.Count-1 do
|
||||
Owners.Add(PackageGraph[i]);
|
||||
|
||||
if ShowCleanPkgDepDlg(Owners,true,ListOfNodeInfos)<>mrOk then exit;
|
||||
for i:=0 to ListOfNodeInfos.Count-1 do begin
|
||||
Info:=TCPDNodeInfo(ListOfNodeInfos[i]);
|
||||
if Info.Owner=CPDProjectName then begin
|
||||
|
||||
end else begin
|
||||
Pkg:=PackageGraph.FindPackageWithName(Info.Owner,nil);
|
||||
if Pkg<>nil then begin
|
||||
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
ListOfNodeInfos.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TPkgGraphExplorerDlg.LvlGraphControl1SelectionChanged(Sender: TObject
|
||||
);
|
||||
var
|
||||
|
Loading…
Reference in New Issue
Block a user