IDE: clean package dependencies: select all, select none

git-svn-id: trunk@40771 -
This commit is contained in:
mattias 2013-04-09 19:50:08 +00:00
parent a5be13c6ff
commit 4cd89917de
4 changed files with 99 additions and 31 deletions

View File

@ -5665,6 +5665,7 @@ resourcestring
+'dependencies are not needed, because of the automatic transitivity '
+'between package dependencies.';
lisPkgDeleteDependencies = 'Delete dependencies';
lisPkgClearSelection = 'Clear Selection';
implementation

View File

@ -10,35 +10,19 @@ object CleanPkgDepsDlg: TCleanPkgDepsDlg
OnDestroy = FormDestroy
Position = poScreenCenter
LCLVersion = '1.1'
object ButtonPanel1: TButtonPanel
Left = 6
Height = 36
Top = 338
Width = 510
OKButton.Name = 'OKButton'
OKButton.DefaultCaption = True
HelpButton.Name = 'HelpButton'
HelpButton.DefaultCaption = True
CloseButton.Name = 'CloseButton'
CloseButton.DefaultCaption = True
CancelButton.Name = 'CancelButton'
CancelButton.DefaultCaption = True
TabOrder = 0
ShowButtons = [pbOK, pbCancel]
end
object TransitivityGroupBox: TGroupBox
Left = 0
Height = 332
Height = 338
Top = 0
Width = 522
Align = alClient
Caption = 'TransitivityGroupBox'
ClientHeight = 315
ClientHeight = 321
ClientWidth = 518
TabOrder = 1
TabOrder = 0
object TransitivityTreeView: TTreeView
Left = 0
Height = 300
Height = 306
Top = 15
Width = 518
Align = alClient
@ -59,4 +43,63 @@ object CleanPkgDepsDlg: TCleanPkgDepsDlg
WordWrap = True
end
end
object BtnPanel: TPanel
Left = 0
Height = 42
Top = 338
Width = 522
Align = alBottom
AutoSize = True
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.HorizontalSpacing = 6
ClientHeight = 42
ClientWidth = 522
TabOrder = 1
object DeleteSelectedBitBtn: TBitBtn
Left = 308
Height = 28
Top = 7
Width = 134
Align = alRight
AutoSize = True
Caption = 'DeleteSelectedBitBtn'
ModalResult = 1
TabOrder = 0
end
object CancelBitBtn: TBitBtn
Left = 448
Height = 28
Top = 7
Width = 67
Align = alRight
AutoSize = True
Cancel = True
Default = True
DefaultCaption = True
Kind = bkCancel
ModalResult = 2
TabOrder = 1
end
object SelectAllBitBtn: TBitBtn
Left = 88
Height = 28
Top = 7
Width = 75
Align = alLeft
Caption = 'SelectAllBitBtn'
OnClick = SelectAllBitBtnClick
TabOrder = 2
end
object SelectNoneBitBtn: TBitBtn
Left = 7
Height = 28
Top = 7
Width = 75
Align = alLeft
Caption = 'SelectNoneBitBtn'
OnClick = SelectNoneBitBtnClick
TabOrder = 3
end
end
end

View File

@ -29,7 +29,7 @@ interface
uses
Classes, SysUtils, contnrs, FileUtil, AvgLvlTree, LazLogger, LvlGraphCtrl,
Forms, Controls, Graphics, Dialogs, ButtonPanel, ComCtrls, ExtCtrls, StdCtrls,
LazarusIDEStrConsts, Project, PackageDefs, IDEImagesIntf;
Buttons, LazarusIDEStrConsts, Project, PackageDefs, IDEImagesIntf;
const
CPDProjectName = '-Project-';
@ -46,13 +46,18 @@ type
{ TCleanPkgDepsDlg }
TCleanPkgDepsDlg = class(TForm)
ButtonPanel1: TButtonPanel;
CancelBitBtn: TBitBtn;
DeleteSelectedBitBtn: TBitBtn;
BtnPanel: TPanel;
SelectAllBitBtn: TBitBtn;
SelectNoneBitBtn: TBitBtn;
TransitivityGroupBox: TGroupBox;
TransitivityLabel: TLabel;
TransitivityTreeView: TTreeView;
procedure ButtonPanel1OKButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure SelectAllBitBtnClick(Sender: TObject);
procedure SelectNoneBitBtnClick(Sender: TObject);
procedure TransitivityTreeViewMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
private
@ -141,8 +146,10 @@ begin
TransitivityLabel.Caption:=
lisPkgTheFollowingDependenciesAreNotNeededBecauseOfTheAu;
TransitivityTreeView.Images:=IDEImages.Images_16;
ButtonPanel1.OKButton.Caption:=lisPkgDeleteDependencies;
ButtonPanel1.OKButton.OnClick:=@ButtonPanel1OKButtonClick;
SelectAllBitBtn.Caption:=lisMenuSelectAll;
SelectNoneBitBtn.Caption:=lisPkgClearSelection;
DeleteSelectedBitBtn.Caption:=lisPkgDeleteDependencies;
end;
procedure TCleanPkgDepsDlg.FormDestroy(Sender: TObject);
@ -150,6 +157,22 @@ begin
ClearTreeData;
end;
procedure TCleanPkgDepsDlg.SelectAllBitBtnClick(Sender: TObject);
var
i: Integer;
begin
for i:=0 to TransitivityTreeView.Items.Count-1 do
TVNodeChecked[TransitivityTreeView.Items[i]]:=true;
end;
procedure TCleanPkgDepsDlg.SelectNoneBitBtnClick(Sender: TObject);
var
i: Integer;
begin
for i:=0 to TransitivityTreeView.Items.Count-1 do
TVNodeChecked[TransitivityTreeView.Items[i]]:=false;
end;
procedure TCleanPkgDepsDlg.TransitivityTreeViewMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
@ -164,11 +187,13 @@ end;
function TCleanPkgDepsDlg.GetTVNodeChecked(TVNode: TTreeNode): boolean;
begin
Result:=(TVNode<>nil) and (TVNode.ImageIndex=ImgIndexDelete);
Result:=(TVNode<>nil) and (TVNode.Data<>nil) and (TVNode.ImageIndex=ImgIndexDelete);
end;
procedure TCleanPkgDepsDlg.SetTVNodeChecked(TVNode: TTreeNode; AValue: boolean);
begin
if TVNode.Data=nil then exit;
if TVNodeChecked[TVNode]=AValue then exit;
if AValue then
TVNode.ImageIndex:=ImgIndexDelete
else
@ -177,10 +202,6 @@ begin
UpdateButtons;
end;
procedure TCleanPkgDepsDlg.ButtonPanel1OKButtonClick(Sender: TObject);
begin
end;
procedure TCleanPkgDepsDlg.SetOwners(AValue: TFPList);
begin
if FOwners=AValue then Exit;
@ -238,7 +259,7 @@ begin
if TVNodeChecked[TVNode] then
CheckCnt+=1;
end;
ButtonPanel1.OKButton.Enabled:=CheckCnt>0;
DeleteSelectedBitBtn.Enabled:=CheckCnt>0;
end;
procedure TCleanPkgDepsDlg.AddTransitivities(NodeCaption: string;

View File

@ -178,6 +178,9 @@ begin
end else begin
Pkg:=PackageGraph.FindPackageWithName(Info.Owner,nil);
if Pkg<>nil then begin
// open package editor
if Assigned(OnOpenPackage) then
OnOpenPackage(Self,Pkg);
end;
end;