From a5be13c6ff1a88e263ea7f646f162171d18566d9 Mon Sep 17 00:00:00 2001 From: mattias Date: Tue, 9 Apr 2013 19:37:41 +0000 Subject: [PATCH] IDE: package graph: show clean package deps dialog git-svn-id: trunk@40770 - --- packager/pkggraphexplorer.lfm | 9 +++++++- packager/pkggraphexplorer.pas | 39 +++++++++++++++++++++++++++++++++-- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/packager/pkggraphexplorer.lfm b/packager/pkggraphexplorer.lfm index 0ceb0b9875..62a8ba7772 100644 --- a/packager/pkggraphexplorer.lfm +++ b/packager/pkggraphexplorer.lfm @@ -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 diff --git a/packager/pkggraphexplorer.pas b/packager/pkggraphexplorer.pas index 54a5c049a2..a49caf209b 100644 --- a/packager/pkggraphexplorer.pas +++ b/packager/pkggraphexplorer.pas @@ -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