mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-13 18:49:19 +02:00
Packager: use ListViewFilterEdit in OpenInstalledPackages window.
git-svn-id: trunk@47161 -
This commit is contained in:
parent
cbae1c8558
commit
3f37b16f15
@ -1,40 +1,51 @@
|
|||||||
object OpenLoadedPackagesDlg: TOpenLoadedPackagesDlg
|
object OpenLoadedPackagesDlg: TOpenLoadedPackagesDlg
|
||||||
Left = 407
|
Left = 407
|
||||||
Height = 494
|
Height = 501
|
||||||
Top = 151
|
Top = 151
|
||||||
Width = 447
|
Width = 446
|
||||||
ActiveControl = PkgListView
|
ActiveControl = FilterEdit
|
||||||
Caption = 'OpenLoadedPackagesDlg'
|
Caption = 'OpenLoadedPackagesDlg'
|
||||||
ClientHeight = 494
|
ClientHeight = 501
|
||||||
ClientWidth = 447
|
ClientWidth = 446
|
||||||
OnClose = FormClose
|
OnClose = FormClose
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
Position = poScreenCenter
|
Position = poScreenCenter
|
||||||
LCLVersion = '1.3'
|
LCLVersion = '1.3'
|
||||||
object HintMemo: TMemo
|
object HintMemo: TMemo
|
||||||
Left = 0
|
Left = 3
|
||||||
Height = 121
|
Height = 121
|
||||||
Top = 327
|
Top = 332
|
||||||
Width = 447
|
Width = 440
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
|
BorderSpacing.Left = 3
|
||||||
|
BorderSpacing.Right = 3
|
||||||
Lines.Strings = (
|
Lines.Strings = (
|
||||||
'Memo1'
|
'Memo1'
|
||||||
)
|
)
|
||||||
ReadOnly = True
|
ReadOnly = True
|
||||||
ScrollBars = ssAutoBoth
|
ScrollBars = ssAutoBoth
|
||||||
TabOrder = 0
|
TabOrder = 3
|
||||||
end
|
end
|
||||||
object PkgListView: TListView
|
object PkgListView: TListView
|
||||||
Left = 0
|
AnchorSideTop.Control = FilterEdit
|
||||||
Height = 322
|
AnchorSideTop.Side = asrBottom
|
||||||
Top = 0
|
AnchorSideRight.Control = Owner
|
||||||
Width = 447
|
AnchorSideRight.Side = asrBottom
|
||||||
Align = alClient
|
AnchorSideBottom.Control = Splitter1
|
||||||
|
Left = 3
|
||||||
|
Height = 300
|
||||||
|
Top = 27
|
||||||
|
Width = 440
|
||||||
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||||
|
BorderSpacing.Left = 3
|
||||||
|
BorderSpacing.Top = 3
|
||||||
|
BorderSpacing.Right = 3
|
||||||
Columns = <>
|
Columns = <>
|
||||||
ReadOnly = True
|
ReadOnly = True
|
||||||
RowSelect = True
|
RowSelect = True
|
||||||
SortType = stText
|
SortType = stText
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
|
ViewStyle = vsReport
|
||||||
OnDblClick = PkgListViewDblClick
|
OnDblClick = PkgListViewDblClick
|
||||||
OnSelectItem = PkgListViewSelectItem
|
OnSelectItem = PkgListViewSelectItem
|
||||||
end
|
end
|
||||||
@ -42,16 +53,16 @@ object OpenLoadedPackagesDlg: TOpenLoadedPackagesDlg
|
|||||||
Cursor = crVSplit
|
Cursor = crVSplit
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 5
|
Height = 5
|
||||||
Top = 322
|
Top = 327
|
||||||
Width = 447
|
Width = 446
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
ResizeAnchor = akBottom
|
ResizeAnchor = akBottom
|
||||||
end
|
end
|
||||||
object ButtonPanel1: TButtonPanel
|
object ButtonPanel1: TButtonPanel
|
||||||
Left = 6
|
Left = 6
|
||||||
Height = 34
|
Height = 36
|
||||||
Top = 454
|
Top = 459
|
||||||
Width = 435
|
Width = 434
|
||||||
OKButton.Name = 'OKButton'
|
OKButton.Name = 'OKButton'
|
||||||
OKButton.DefaultCaption = True
|
OKButton.DefaultCaption = True
|
||||||
OKButton.OnClick = OpenButtonClick
|
OKButton.OnClick = OpenButtonClick
|
||||||
@ -62,7 +73,18 @@ object OpenLoadedPackagesDlg: TOpenLoadedPackagesDlg
|
|||||||
CloseButton.DefaultCaption = True
|
CloseButton.DefaultCaption = True
|
||||||
CancelButton.Name = 'CancelButton'
|
CancelButton.Name = 'CancelButton'
|
||||||
CancelButton.DefaultCaption = True
|
CancelButton.DefaultCaption = True
|
||||||
TabOrder = 3
|
TabOrder = 4
|
||||||
ShowButtons = [pbOK, pbCancel, pbHelp]
|
ShowButtons = [pbOK, pbCancel, pbHelp]
|
||||||
end
|
end
|
||||||
|
object FilterEdit: TListViewFilterEdit
|
||||||
|
Left = 3
|
||||||
|
Height = 21
|
||||||
|
Top = 3
|
||||||
|
Width = 147
|
||||||
|
ButtonWidth = 23
|
||||||
|
NumGlyphs = 1
|
||||||
|
MaxLength = 0
|
||||||
|
TabOrder = 0
|
||||||
|
FilteredListview = PkgListView
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -31,9 +31,8 @@ unit OpenInstalledPkgDlg;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, Forms, Controls, Buttons, ComCtrls, StdCtrls,
|
SysUtils, Forms, Controls, ComCtrls, StdCtrls, ExtCtrls, LCLProc, ButtonPanel,
|
||||||
FileCtrl, Dialogs, LCLProc, ExtCtrls, ButtonPanel,
|
IDEHelpIntf, IDEWindowIntf, PackageIntf, ListViewFilterEdit,
|
||||||
IDEHelpIntf, IDEWindowIntf, PackageIntf,
|
|
||||||
PackageDefs, LazarusIDEStrConsts, PackageSystem;
|
PackageDefs, LazarusIDEStrConsts, PackageSystem;
|
||||||
|
|
||||||
type
|
type
|
||||||
@ -42,6 +41,7 @@ type
|
|||||||
|
|
||||||
TOpenLoadedPackagesDlg = class(TForm)
|
TOpenLoadedPackagesDlg = class(TForm)
|
||||||
ButtonPanel1: TButtonPanel;
|
ButtonPanel1: TButtonPanel;
|
||||||
|
FilterEdit: TListViewFilterEdit;
|
||||||
PkgListView: TListView;
|
PkgListView: TListView;
|
||||||
HintMemo: TMemo;
|
HintMemo: TMemo;
|
||||||
Splitter1: TSplitter;
|
Splitter1: TSplitter;
|
||||||
@ -50,10 +50,8 @@ type
|
|||||||
procedure HelpButtonClick(Sender: TObject);
|
procedure HelpButtonClick(Sender: TObject);
|
||||||
procedure OpenButtonClick(Sender: TObject);
|
procedure OpenButtonClick(Sender: TObject);
|
||||||
procedure PkgListViewDblClick(Sender: TObject);
|
procedure PkgListViewDblClick(Sender: TObject);
|
||||||
procedure PkgListViewSelectItem(Sender: TObject; Item: TListItem;
|
procedure PkgListViewSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
|
||||||
Selected: Boolean);
|
|
||||||
private
|
private
|
||||||
function PkgStateToString(APackage: TLazPackage): string;
|
|
||||||
public
|
public
|
||||||
Package: TLazPackage;
|
Package: TLazPackage;
|
||||||
procedure UpdateSelection;
|
procedure UpdateSelection;
|
||||||
@ -127,12 +125,9 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TOpenLoadedPackagesDlg.OpenButtonClick(Sender: TObject);
|
procedure TOpenLoadedPackagesDlg.OpenButtonClick(Sender: TObject);
|
||||||
var
|
|
||||||
PkgName: String;
|
|
||||||
begin
|
begin
|
||||||
if PkgListView.Selected=nil then exit;
|
if PkgListView.Selected=nil then exit;
|
||||||
PkgName:=PkgListView.Selected.Caption;
|
Package:=PackageGraph.FindPackageWithName(PkgListView.Selected.Caption,nil);
|
||||||
Package:=PackageGraph.FindPackageWithName(PkgName,nil);
|
|
||||||
if Package=nil then
|
if Package=nil then
|
||||||
ModalResult:=mrCancel
|
ModalResult:=mrCancel
|
||||||
else
|
else
|
||||||
@ -147,7 +142,6 @@ begin
|
|||||||
IDEDialogLayoutList.ApplyLayout(Self,450,450);
|
IDEDialogLayoutList.ApplyLayout(Self,450,450);
|
||||||
|
|
||||||
with PkgListView do begin
|
with PkgListView do begin
|
||||||
ViewStyle:=vsReport;
|
|
||||||
NewColumn:=Columns.Add;
|
NewColumn:=Columns.Add;
|
||||||
NewColumn.Caption:=lisOIPPackageName;
|
NewColumn.Caption:=lisOIPPackageName;
|
||||||
NewColumn.Width:=150;
|
NewColumn.Width:=150;
|
||||||
@ -172,7 +166,7 @@ begin
|
|||||||
LazarusHelp.ShowHelpForIDEControl(Self);
|
LazarusHelp.ShowHelpForIDEControl(Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TOpenLoadedPackagesDlg.PkgStateToString(APackage: TLazPackage): string;
|
function PkgStateToString(APackage: TLazPackage): string;
|
||||||
|
|
||||||
procedure AddState(const s: string);
|
procedure AddState(const s: string);
|
||||||
begin
|
begin
|
||||||
@ -198,30 +192,41 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TOpenLoadedPackagesDlg.UpdatePackageList;
|
procedure TOpenLoadedPackagesDlg.UpdatePackageList;
|
||||||
|
|
||||||
|
procedure UpdateOnePackage(aPkg: TLazPackage);
|
||||||
|
var
|
||||||
|
Data: TStringArray;
|
||||||
|
begin
|
||||||
|
SetLength(Data, 3);
|
||||||
|
Data[0] := aPkg.Name;
|
||||||
|
Data[1] := aPkg.Version.AsString;
|
||||||
|
Data[2] := PkgStateToString(aPkg);
|
||||||
|
FilterEdit.Items.Add(Data);
|
||||||
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
Cnt: Integer;
|
|
||||||
i: Integer;
|
i: Integer;
|
||||||
CurPkg: TLazPackage;
|
|
||||||
CurListItem: TListItem;
|
|
||||||
begin
|
begin
|
||||||
PkgListView.BeginUpdate;
|
FilterEdit.Items.Clear;
|
||||||
Cnt:=PackageGraph.Count;
|
for i:=0 to PackageGraph.Count-1 do
|
||||||
for i:=0 to Cnt-1 do begin
|
UpdateOnePackage(PackageGraph[i]);
|
||||||
CurPkg:=PackageGraph[i];
|
FilterEdit.InvalidateFilter;
|
||||||
if PkgListView.Items.Count>i then begin
|
//PkgListView.BeginUpdate;
|
||||||
CurListItem:=PkgListView.Items[i];
|
//PkgListView.AlphaSort;
|
||||||
CurListItem.SubItems[0]:=CurPkg.Version.AsString;
|
//PkgListView.EndUpdate;
|
||||||
CurListItem.SubItems[1]:=PkgStateToString(CurPkg);
|
|
||||||
end else begin
|
|
||||||
CurListItem:=PkgListView.Items.Add;
|
|
||||||
CurListItem.SubItems.Add(CurPkg.Version.AsString);
|
|
||||||
CurListItem.SubItems.Add(PkgStateToString(CurPkg));
|
|
||||||
end;
|
|
||||||
CurListItem.Caption:=CurPkg.Name;
|
|
||||||
end;
|
|
||||||
PkgListView.AlphaSort;
|
|
||||||
PkgListView.EndUpdate;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
//if PkgListView.Items.Count>i then begin
|
||||||
|
// CurListItem:=PkgListView.Items[i];
|
||||||
|
// CurListItem.SubItems[0]:=CurPkg.Version.AsString;
|
||||||
|
// CurListItem.SubItems[1]:=PkgStateToString(CurPkg);
|
||||||
|
//end else begin
|
||||||
|
//CurListItem:=PkgListView.Items.Add;
|
||||||
|
//CurListItem.SubItems.Add(CurPkg.Version.AsString);
|
||||||
|
//CurListItem.SubItems.Add(PkgStateToString(CurPkg));
|
||||||
|
//end;
|
||||||
|
//CurListItem.Caption:=CurPkg.Name;
|
||||||
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user