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 OnDblClick = LvlGraphControl1DblClick
OnSelectionChanged = LvlGraphControl1SelectionChanged OnSelectionChanged = LvlGraphControl1SelectionChanged
ParentColor = True ParentColor = True
ParentShowHint = False
PopupMenu = PkgPopupMenu PopupMenu = PkgPopupMenu
TabOrder = 0 TabOrder = 0
TabStop = False TabStop = False
@ -65,6 +66,8 @@ object PkgGraphExplorerDlg: TPkgGraphExplorerDlg
Top = 1 Top = 1
Width = 194 Width = 194
Align = alLeft Align = alLeft
DefaultItemHeight = 18
PopupMenu = PkgPopupMenu
ReadOnly = True ReadOnly = True
TabOrder = 1 TabOrder = 1
OnDblClick = PkgTreeViewDblClick OnDblClick = PkgTreeViewDblClick
@ -83,8 +86,12 @@ object PkgGraphExplorerDlg: TPkgGraphExplorerDlg
left = 32 left = 32
top = 40 top = 40
object UninstallMenuItem: TMenuItem object UninstallMenuItem: TMenuItem
Caption = 'New Item1' Caption = 'Uninstall'
OnClick = UninstallMenuItemClick OnClick = UninstallMenuItemClick
end end
object CleanPkgDepsMenuItem: TMenuItem
Caption = 'Unneeded dependencies'
OnClick = CleanPkgDepsMenuItemClick
end
end end
end end

View File

@ -39,11 +39,11 @@ interface
uses uses
Classes, SysUtils, Math, LCLProc, Forms, Controls, Buttons, ComCtrls, Classes, SysUtils, Math, LCLProc, Forms, Controls, Buttons, ComCtrls,
StdCtrls, Menus, Dialogs, Graphics, FileCtrl, LCLType, ExtCtrls, StdCtrls, Menus, Dialogs, Graphics, FileCtrl, LCLType, ExtCtrls,
AVL_Tree, AVL_Tree, contnrs,
IDECommands, PackageIntf, IDEImagesIntf, LazIDEIntf, IDECommands, PackageIntf, IDEImagesIntf, LazIDEIntf,
LvlGraphCtrl, LvlGraphCtrl,
LazConf, LazarusIDEStrConsts, IDEProcs, IDEOptionDefs, EnvironmentOpts, LazConf, LazarusIDEStrConsts, IDEProcs, IDEOptionDefs, EnvironmentOpts,
Project, PackageDefs, PackageSystem, PackageEditor; Project, PackageDefs, PackageSystem, PackageEditor, CleanPkgDeps;
const const
GroupPrefixProject = '-Project-'; GroupPrefixProject = '-Project-';
@ -55,6 +55,7 @@ type
{ TPkgGraphExplorerDlg } { TPkgGraphExplorerDlg }
TPkgGraphExplorerDlg = class(TForm) TPkgGraphExplorerDlg = class(TForm)
CleanPkgDepsMenuItem: TMenuItem;
PkgTreeView: TTreeView; PkgTreeView: TTreeView;
InfoMemo: TMemo; InfoMemo: TMemo;
LvlGraphControl1: TLvlGraphControl; LvlGraphControl1: TLvlGraphControl;
@ -63,6 +64,7 @@ type
Splitter1: TSplitter; Splitter1: TSplitter;
VerticalSplitter: TSplitter; VerticalSplitter: TSplitter;
UninstallMenuItem: TMenuItem; UninstallMenuItem: TMenuItem;
procedure CleanPkgDepsMenuItemClick(Sender: TObject);
procedure LvlGraphControl1DblClick(Sender: TObject); procedure LvlGraphControl1DblClick(Sender: TObject);
procedure LvlGraphControl1SelectionChanged(Sender: TObject); procedure LvlGraphControl1SelectionChanged(Sender: TObject);
procedure PkgGraphExplorerShow(Sender: TObject); procedure PkgGraphExplorerShow(Sender: TObject);
@ -152,6 +154,39 @@ begin
OnOpenPackage(Self,Pkg); OnOpenPackage(Self,Pkg);
end; 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 procedure TPkgGraphExplorerDlg.LvlGraphControl1SelectionChanged(Sender: TObject
); );
var var