42
34
Classes, SysUtils, Forms, Controls, Buttons, ComCtrls, StdCtrls,
43
FileCtrl, Dialogs, LCLProc, ExtCtrls,
35
FileCtrl, Dialogs, LCLProc, ExtCtrls, ButtonPanel,
44
36
IDEHelpIntf, IDEWindowIntf, PackageIntf,
45
37
PackageDefs, LazarusIDEStrConsts, PackageSystem;
49
{ TOpenInstalledPackagesDlg }
41
{ TOpenLoadedPackagesDlg }
51
TOpenInstalledPackagesDlg = class(TForm)
53
CancelButton: TBitBtn;
43
TOpenLoadedPackagesDlg = class(TForm)
44
ButtonPanel1: TButtonPanel;
55
45
PkgListView: TListView;
57
47
Splitter1: TSplitter;
48
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
58
49
procedure FormCreate(Sender: TObject);
59
50
procedure HelpButtonClick(Sender: TObject);
60
51
procedure OpenButtonClick(Sender: TObject);
65
56
function PkgStateToString(APackage: TLazPackage): string;
67
59
procedure UpdateSelection;
68
60
procedure UpdatePackageList;
69
function GetSelectedPackage: TLazPackage;
72
function ShowOpenInstalledPkgDlg(var OpenPackage: TLazPackage): TModalResult;
63
function ShowOpenLoadedPkgDlg(out OpenPackage: TLazPackage): TModalResult;
78
function ShowOpenInstalledPkgDlg(var OpenPackage: TLazPackage): TModalResult;
69
function ShowOpenLoadedPkgDlg(out OpenPackage: TLazPackage): TModalResult;
80
OpenInstalledPackagesDlg: TOpenInstalledPackagesDlg;
71
Dlg: TOpenLoadedPackagesDlg;
82
OpenInstalledPackagesDlg:=TOpenInstalledPackagesDlg.Create(nil);
83
OpenInstalledPackagesDlg.UpdatePackageList;
84
OpenInstalledPackagesDlg.UpdateSelection;
85
Result:=OpenInstalledPackagesDlg.ShowModal;
86
OpenPackage:=OpenInstalledPackagesDlg.GetSelectedPackage;
87
OpenInstalledPackagesDlg.Free;
74
Dlg:=TOpenLoadedPackagesDlg.Create(nil);
76
Dlg.UpdatePackageList;
78
Result:=Dlg.ShowModal;
79
if (Result=mrOK) and (Dlg.Package<>nil) then
80
OpenPackage:=Dlg.Package
90
{ TOpenInstalledPackagesDlg }
88
{ TOpenLoadedPackagesDlg }
92
procedure TOpenInstalledPackagesDlg.PkgListViewDblClick(Sender: TObject);
90
procedure TOpenLoadedPackagesDlg.PkgListViewDblClick(Sender: TObject);
94
92
OpenButtonClick(Sender);
97
procedure TOpenInstalledPackagesDlg.PkgListViewSelectItem(Sender: TObject;
95
procedure TOpenLoadedPackagesDlg.PkgListViewSelectItem(Sender: TObject;
98
96
Item: TListItem; Selected: Boolean);
103
procedure TOpenInstalledPackagesDlg.UpdateSelection;
101
procedure TOpenLoadedPackagesDlg.UpdateSelection;
105
103
CurPkg: TLazPackage;
109
107
LI:=PkgListView.Selected;
110
if LI<>nil then begin
111
CurPkg:=TLazPackage(LI.Data);
113
Format(lisOIPFilename, [CurPkg.Filename]);
114
if CurPkg.AutoCreated then
115
HintStr:=Format(lisOIPThisPackageWasAutomaticallyCreated, [HintStr+
117
if CurPkg.Missing then
118
HintStr:=Format(lisOIPThisPackageIsInstalledButTheLpkFileWasNotFound, [
119
HintStr+LineEnding]);
120
HintStr:=Format(lisOIPDescriptionDescription, [HintStr+LineEnding,
121
BreakString(CurPkg.Description, 60, length(lisOIPDescription))]);
122
HintMemo.Text:=HintStr;
108
ButtonPanel1.OKButton.Enabled:=Assigned(LI);
109
if Assigned(LI) then begin
110
CurPkg:=PackageGraph.FindPackageWithName(LI.Caption,nil);
112
HintMemo.Text:='Package "'+LI.Caption+'" was already closed'
114
HintStr:=Format(lisOIPFilename, [CurPkg.Filename]);
115
if CurPkg.Missing then
116
HintStr:=Format(lisOIPThisPackageIsInstalledButTheLpkFileWasNotFound,[HintStr+LineEnding]);
117
HintStr:=Format(lisOIPDescriptionDescription, [HintStr+LineEnding,
118
BreakString(CurPkg.Description, 60, length(lisOIPDescription))]);
119
HintMemo.Text:=HintStr;
124
122
HintMemo.Text:=lisOIPPleaseSelectAPackage;
128
procedure TOpenInstalledPackagesDlg.OpenButtonClick(Sender: TObject);
126
procedure TOpenLoadedPackagesDlg.OpenButtonClick(Sender: TObject);
130
if PkgListView.Selected=nil then begin
131
MessageDlg(lisOIPNoPackageSelected,
132
lisOIPPleaseSelectAPackageToOpen,
133
mtInformation,[mbCancel],0);
130
if PkgListView.Selected=nil then exit;
131
PkgName:=PkgListView.Selected.Caption;
132
Package:=PackageGraph.FindPackageWithName(PkgName,nil);
134
ModalResult:=mrCancel
139
procedure TOpenInstalledPackagesDlg.FormCreate(Sender: TObject);
139
procedure TOpenLoadedPackagesDlg.FormCreate(Sender: TObject);
141
141
NewColumn: TListColumn;
143
143
Caption:=lisOIPOpenLoadedPackage;
144
IDEDialogLayoutList.ApplyLayout(Self,500,350);
144
IDEDialogLayoutList.ApplyLayout(Self,450,450);
146
146
with PkgListView do begin
147
147
ViewStyle:=vsReport;
155
155
NewColumn.Caption:=lisOIPState;
156
156
NewColumn.Width:=300;
159
OpenButton.Caption:=lisOpen;
160
CancelButton.Caption:=lisCancel;
161
HelpButton.Caption:=lisHelp;
164
procedure TOpenInstalledPackagesDlg.HelpButtonClick(Sender: TObject);
158
ButtonPanel1.OKButton.Caption:=lisOpen;
159
ButtonPanel1.OKButton.Enabled:=False;
162
procedure TOpenLoadedPackagesDlg.FormClose(Sender: TObject; var CloseAction: TCloseAction);
164
IDEDialogLayoutList.SaveLayout(Self);
167
procedure TOpenLoadedPackagesDlg.HelpButtonClick(Sender: TObject);
166
169
LazarusHelp.ShowHelpForIDEControl(Self);
169
function TOpenInstalledPackagesDlg.PkgStateToString(APackage: TLazPackage
172
function TOpenLoadedPackagesDlg.PkgStateToString(APackage: TLazPackage): string;
172
174
procedure AddState(const s: string);