lazarus/ide/idefpdocfilesearch.pas
mattias f69dd2379e IDE: clean up
git-svn-id: trunk@48198 -
2015-03-10 12:02:19 +00:00

118 lines
2.6 KiB
ObjectPascal

unit IDEFPDocFileSearch;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
Buttons, ComCtrls, ExtCtrls, LCLType,
PackageSystem, PackageDefs;
type
{ TFPDocFileSearchDialog }
TFPDocFileSearchDialog = class(TForm)
CloseBitBtn: TBitBtn;
ResultsMemo: TMemo;
ScopeGroupBox: TGroupBox;
ScopeTreeView: TTreeView;
SearchTextComboBox: TComboBox;
SearchTextLabel: TLabel;
Splitter1: TSplitter;
procedure FormCreate(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; {%H-}Shift: TShiftState);
procedure OnIdle(Sender: TObject; var {%H-}Done: Boolean);
private
FIdleConnected: boolean;
procedure SetIdleConnected(AValue: boolean);
procedure FillScope;
public
property IdleConnected: boolean read FIdleConnected write SetIdleConnected;
end;
procedure ShowFPDocFileSearch;
implementation
procedure ShowFPDocFileSearch;
var
FPDocFileSearchDialog: TFPDocFileSearchDialog;
begin
FPDocFileSearchDialog:=TFPDocFileSearchDialog.Create(nil);
try
FPDocFileSearchDialog.ShowModal;
finally
FPDocFileSearchDialog.Free;
end;
end;
{$R *.lfm}
{ TFPDocFileSearchDialog }
procedure TFPDocFileSearchDialog.FormCreate(Sender: TObject);
begin
Caption:='Search in FPDoc files';
CloseBitBtn.Caption:='Close';
SearchTextLabel.Caption:='Search:';
SearchTextComboBox.Text:='';
ActiveControl:=SearchTextComboBox;
ScopeGroupBox.Caption:='Scope';
ResultsMemo.Clear;
FillScope;
IdleConnected:=true;
end;
procedure TFPDocFileSearchDialog.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_ESCAPE then
ModalResult:=mrCancel;
end;
procedure TFPDocFileSearchDialog.OnIdle(Sender: TObject; var Done: Boolean);
begin
// ToDo:
// nothing to do
IdleConnected:=false;
end;
procedure TFPDocFileSearchDialog.SetIdleConnected(AValue: boolean);
begin
if FIdleConnected=AValue then Exit;
FIdleConnected:=AValue;
if IdleConnected then
Application.AddOnIdleHandler(@OnIdle)
else
Application.RemoveOnIdleHandler(@OnIdle);
end;
procedure TFPDocFileSearchDialog.FillScope;
var
PkgsNode: TTreeNode;
i: Integer;
Pkg: TLazPackage;
begin
ScopeTreeView.Items.BeginUpdate;
ScopeTreeView.Items.Clear;
// packages with fpdoc
PkgsNode:=ScopeTreeView.Items.Add(nil,'Packages');
for i:=0 to PackageGraph.Count-1 do begin
Pkg:=PackageGraph[i];
if Pkg.FPDocPaths='' then continue;
ScopeTreeView.Items.AddChild(PkgsNode,Pkg.Name);
end;
PkgsNode.Expanded:=true;
ScopeTreeView.Items.EndUpdate;
end;
end.