~ubuntu-branches/ubuntu/vivid/lazarus/vivid

« back to all changes in this revision

Viewing changes to packager/openinstalledpkgdlg.pas

  • Committer: Package Import Robot
  • Author(s): Paul Gevers, Abou Al Montacir, Paul Gevers
  • Date: 2014-02-22 10:25:57 UTC
  • mfrom: (1.1.11)
  • Revision ID: package-import@ubuntu.com-20140222102557-ors9d31r84nz31jq
Tags: 1.2~rc2+dfsg-1
[ Abou Al Montacir ]
* New upstream pre-release.
  + Moved ideintf to components directory.
  + Added new package cairocanvas.
* Remove usage of depreciated parameters form of find. (Closes: Bug#724776)
* Bumped standard version to 3.9.5.
* Clean the way handling make files generation and removal.

[ Paul Gevers ]
* Remove nearly obsolete bzip compression for binary packages
  (See https://lists.debian.org/debian-devel/2014/01/msg00542.html)
* Update d/copyright for newly added dir in examples and components
* Update Vcs-* fields with new packaging location
* Update d/watch file to properly (Debian way) change upstreams versions
* Prevent 46MB of package size by sym linking duplicate files
* Patches
  - refresh to remove fuzz
  - add more Lintian found spelling errors
  - new patch to add shbang to two scripts in lazarus-src
* Drop lcl-# from Provides list of lcl-units-#
* Make lazarus-ide-qt4-# an arch all until it really contains stuff
* Make all metapackages arch all as the usecase for arch any doesn't
  seem to warrant the addition archive hit
* Fix permissions of non-scripts in lazarus-src-#

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
{  $Id: openinstalledpkgdlg.pas 36468 2012-03-30 15:57:23Z mattias $  }
2
1
{
3
 
 /***************************************************************************
4
 
                            openinstalledpkgdlg.pas
5
 
                            -----------------------
6
 
 
7
 
 
8
 
 ***************************************************************************/
9
 
 
10
2
 ***************************************************************************
11
3
 *                                                                         *
12
4
 *   This source is free software; you can redistribute it and/or modify   *
29
21
  Author: Mattias Gaertner
30
22
 
31
23
  Abstract:
32
 
    Defines TOpenInstalledPackagesDlg - The dialog let the user choose one of
33
 
    the installed packages.
 
24
    Defines TOpenLoadedPackagesDlg - The dialog let the user choose one of
 
25
    the loaded packages.
34
26
}
35
27
unit OpenInstalledPkgDlg;
36
28
 
40
32
 
41
33
uses
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;
46
38
 
47
39
type
48
40
 
49
 
  { TOpenInstalledPackagesDlg }
 
41
  { TOpenLoadedPackagesDlg }
50
42
 
51
 
  TOpenInstalledPackagesDlg = class(TForm)
52
 
    HelpButton: TBitBtn;
53
 
    CancelButton: TBitBtn;
54
 
    OpenButton: TBitBtn;
 
43
  TOpenLoadedPackagesDlg = class(TForm)
 
44
    ButtonPanel1: TButtonPanel;
55
45
    PkgListView: TListView;
56
46
    HintMemo: TMemo;
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);
64
55
  private
65
56
    function PkgStateToString(APackage: TLazPackage): string;
66
57
  public
 
58
    Package: TLazPackage;
67
59
    procedure UpdateSelection;
68
60
    procedure UpdatePackageList;
69
 
    function GetSelectedPackage: TLazPackage;
70
61
  end;
71
62
  
72
 
function ShowOpenInstalledPkgDlg(var OpenPackage: TLazPackage): TModalResult;
 
63
function ShowOpenLoadedPkgDlg(out OpenPackage: TLazPackage): TModalResult;
73
64
 
74
65
implementation
75
66
 
76
67
{$R *.lfm}
77
68
 
78
 
function ShowOpenInstalledPkgDlg(var OpenPackage: TLazPackage): TModalResult;
 
69
function ShowOpenLoadedPkgDlg(out OpenPackage: TLazPackage): TModalResult;
79
70
var
80
 
  OpenInstalledPackagesDlg: TOpenInstalledPackagesDlg;
 
71
  Dlg: TOpenLoadedPackagesDlg;
81
72
begin
82
 
  OpenInstalledPackagesDlg:=TOpenInstalledPackagesDlg.Create(nil);
83
 
  OpenInstalledPackagesDlg.UpdatePackageList;
84
 
  OpenInstalledPackagesDlg.UpdateSelection;
85
 
  Result:=OpenInstalledPackagesDlg.ShowModal;
86
 
  OpenPackage:=OpenInstalledPackagesDlg.GetSelectedPackage;
87
 
  OpenInstalledPackagesDlg.Free;
 
73
  OpenPackage:=nil;
 
74
  Dlg:=TOpenLoadedPackagesDlg.Create(nil);
 
75
  try
 
76
    Dlg.UpdatePackageList;
 
77
    Dlg.UpdateSelection;
 
78
    Result:=Dlg.ShowModal;
 
79
    if (Result=mrOK) and (Dlg.Package<>nil) then
 
80
      OpenPackage:=Dlg.Package
 
81
    else
 
82
      OpenPackage:=nil;
 
83
  finally
 
84
    Dlg.Free;
 
85
  end;
88
86
end;
89
87
 
90
 
{ TOpenInstalledPackagesDlg }
 
88
{ TOpenLoadedPackagesDlg }
91
89
 
92
 
procedure TOpenInstalledPackagesDlg.PkgListViewDblClick(Sender: TObject);
 
90
procedure TOpenLoadedPackagesDlg.PkgListViewDblClick(Sender: TObject);
93
91
begin
94
92
  OpenButtonClick(Sender);
95
93
end;
96
94
 
97
 
procedure TOpenInstalledPackagesDlg.PkgListViewSelectItem(Sender: TObject;
 
95
procedure TOpenLoadedPackagesDlg.PkgListViewSelectItem(Sender: TObject;
98
96
  Item: TListItem; Selected: Boolean);
99
97
begin
100
98
  UpdateSelection;
101
99
end;
102
100
 
103
 
procedure TOpenInstalledPackagesDlg.UpdateSelection;
 
101
procedure TOpenLoadedPackagesDlg.UpdateSelection;
104
102
var
105
103
  CurPkg: TLazPackage;
106
104
  LI: TListItem;
107
105
  HintStr: String;
108
106
begin
109
107
  LI:=PkgListView.Selected;
110
 
  if LI<>nil then begin
111
 
    CurPkg:=TLazPackage(LI.Data);
112
 
    HintStr:=
113
 
       Format(lisOIPFilename, [CurPkg.Filename]);
114
 
    if CurPkg.AutoCreated then
115
 
      HintStr:=Format(lisOIPThisPackageWasAutomaticallyCreated, [HintStr+
116
 
        LineEnding]);
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);
 
111
    if CurPkg=nil then
 
112
      HintMemo.Text:='Package "'+LI.Caption+'" was already closed'
 
113
    else begin
 
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;
 
120
    end;
123
121
  end else begin
124
122
    HintMemo.Text:=lisOIPPleaseSelectAPackage;
125
123
  end;
126
124
end;
127
125
 
128
 
procedure TOpenInstalledPackagesDlg.OpenButtonClick(Sender: TObject);
 
126
procedure TOpenLoadedPackagesDlg.OpenButtonClick(Sender: TObject);
 
127
var
 
128
  PkgName: String;
129
129
begin
130
 
  if PkgListView.Selected=nil then begin
131
 
    MessageDlg(lisOIPNoPackageSelected,
132
 
      lisOIPPleaseSelectAPackageToOpen,
133
 
      mtInformation,[mbCancel],0);
134
 
    exit;
135
 
  end;
136
 
  ModalResult:=mrOk;
 
130
  if PkgListView.Selected=nil then exit;
 
131
  PkgName:=PkgListView.Selected.Caption;
 
132
  Package:=PackageGraph.FindPackageWithName(PkgName,nil);
 
133
  if Package=nil then
 
134
    ModalResult:=mrCancel
 
135
  else
 
136
    ModalResult:=mrOk;
137
137
end;
138
138
 
139
 
procedure TOpenInstalledPackagesDlg.FormCreate(Sender: TObject);
 
139
procedure TOpenLoadedPackagesDlg.FormCreate(Sender: TObject);
140
140
var
141
141
  NewColumn: TListColumn;
142
142
begin
143
143
  Caption:=lisOIPOpenLoadedPackage;
144
 
  IDEDialogLayoutList.ApplyLayout(Self,500,350);
 
144
  IDEDialogLayoutList.ApplyLayout(Self,450,450);
145
145
 
146
146
  with PkgListView do begin
147
147
    ViewStyle:=vsReport;
155
155
    NewColumn.Caption:=lisOIPState;
156
156
    NewColumn.Width:=300;
157
157
  end;
158
 
 
159
 
  OpenButton.Caption:=lisOpen;
160
 
  CancelButton.Caption:=lisCancel;
161
 
  HelpButton.Caption:=lisHelp;
162
 
end;
163
 
 
164
 
procedure TOpenInstalledPackagesDlg.HelpButtonClick(Sender: TObject);
 
158
  ButtonPanel1.OKButton.Caption:=lisOpen;
 
159
  ButtonPanel1.OKButton.Enabled:=False;
 
160
end;
 
161
 
 
162
procedure TOpenLoadedPackagesDlg.FormClose(Sender: TObject; var CloseAction: TCloseAction);
 
163
begin
 
164
  IDEDialogLayoutList.SaveLayout(Self);
 
165
end;
 
166
 
 
167
procedure TOpenLoadedPackagesDlg.HelpButtonClick(Sender: TObject);
165
168
begin
166
169
  LazarusHelp.ShowHelpForIDEControl(Self);
167
170
end;
168
171
 
169
 
function TOpenInstalledPackagesDlg.PkgStateToString(APackage: TLazPackage
170
 
  ): string;
 
172
function TOpenLoadedPackagesDlg.PkgStateToString(APackage: TLazPackage): string;
171
173
  
172
174
  procedure AddState(const s: string);
173
175
  begin
192
194
  if APackage.ReadOnly then AddState(lisOIPreadonly);
193
195
end;
194
196
 
195
 
procedure TOpenInstalledPackagesDlg.UpdatePackageList;
 
197
procedure TOpenLoadedPackagesDlg.UpdatePackageList;
196
198
var
197
199
  Cnt: Integer;
198
200
  i: Integer;
203
205
  Cnt:=PackageGraph.Count;
204
206
  for i:=0 to Cnt-1 do begin
205
207
    CurPkg:=PackageGraph[i];
206
 
    //if not (CurPkg.Installed in [pitStatic,pitDynamic]) then continue;
207
208
    if PkgListView.Items.Count>i then begin
208
209
      CurListItem:=PkgListView.Items[i];
209
210
      CurListItem.SubItems[0]:=CurPkg.Version.AsString;
214
215
      CurListItem.SubItems.Add(PkgStateToString(CurPkg));
215
216
    end;
216
217
    CurListItem.Caption:=CurPkg.Name;
217
 
    CurListItem.Data:=CurPkg;
218
218
  end;
219
219
  PkgListView.EndUpdate;
220
220
end;
221
221
 
222
 
function TOpenInstalledPackagesDlg.GetSelectedPackage: TLazPackage;
223
 
var
224
 
  LI: TListItem;
225
 
begin
226
 
  Result:=nil;
227
 
  LI:=PkgListView.Selected;
228
 
  if LI=nil then exit;
229
 
  Result:=TLazPackage(LI.Data);
230
 
end;
231
 
 
232
222
end.
233
223