IDE: package graph: show clean package deps dialog

git-svn-id: trunk@40770 -
This commit is contained in:
mattias 2013-04-09 19:37:41 +00:00
parent c38a486cb7
commit a5be13c6ff
2 changed files with 45 additions and 3 deletions

View File

@ -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

View File

@ -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