IDE: ide internals: fpdoc files

git-svn-id: trunk@34854 -
This commit is contained in:
mattias 2012-01-22 09:59:06 +00:00
parent 366a247eab
commit e0e58b47c4
7 changed files with 264 additions and 3 deletions

2
.gitattributes vendored
View File

@ -4283,6 +4283,8 @@ ide/idecontexthelpedit.pas svneol=native#text/plain
ide/idedefs.pas svneol=native#text/pascal ide/idedefs.pas svneol=native#text/pascal
ide/idefpcinfo.lfm svneol=native#text/plain ide/idefpcinfo.lfm svneol=native#text/plain
ide/idefpcinfo.pas svneol=native#text/plain ide/idefpcinfo.pas svneol=native#text/plain
ide/idefpdocfilesearch.lfm svneol=native#text/plain
ide/idefpdocfilesearch.pas svneol=native#text/plain
ide/ideguicmdline.pas svneol=native#text/plain ide/ideguicmdline.pas svneol=native#text/plain
ide/idehelpmanager.lfm svneol=native#text/plain ide/idehelpmanager.lfm svneol=native#text/plain
ide/idehelpmanager.pas svneol=native#text/pascal ide/idehelpmanager.pas svneol=native#text/pascal

122
ide/idefpdocfilesearch.lfm Normal file
View File

@ -0,0 +1,122 @@
object FPDocFileSearchDialog: TFPDocFileSearchDialog
Left = 239
Height = 483
Top = 201
Width = 647
Caption = 'FPDocFileSearchDialog'
ClientHeight = 483
ClientWidth = 647
KeyPreview = True
OnCreate = FormCreate
OnKeyDown = FormKeyDown
LCLVersion = '0.9.31'
object SearchTextLabel: TLabel
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = SearchTextComboBox
AnchorSideTop.Side = asrCenter
Left = 6
Height = 15
Top = 12
Width = 91
BorderSpacing.Left = 6
Caption = 'SearchTextLabel'
ParentColor = False
end
object SearchTextComboBox: TComboBox
AnchorSideLeft.Control = SearchTextLabel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Owner
AnchorSideRight.Control = CloseBitBtn
Left = 103
Height = 27
Top = 6
Width = 457
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
ItemHeight = 0
TabOrder = 0
Text = 'SearchTextComboBox'
end
object ScopeGroupBox: TGroupBox
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = SearchTextComboBox
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 438
Top = 39
Width = 145
Anchors = [akTop, akLeft, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Bottom = 6
Caption = 'ScopeGroupBox'
ClientHeight = 422
ClientWidth = 141
TabOrder = 1
object ScopeTreeView: TTreeView
Left = 0
Height = 422
Top = 0
Width = 141
Align = alClient
DefaultItemHeight = 16
TabOrder = 0
end
end
object CloseBitBtn: TBitBtn
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 566
Height = 26
Top = 6
Width = 75
Anchors = [akTop, akRight]
AutoSize = True
BorderSpacing.Around = 6
Caption = 'CloseBitBtn'
ModalResult = 11
TabOrder = 2
end
object Splitter1: TSplitter
AnchorSideLeft.Control = ScopeGroupBox
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = ScopeGroupBox
AnchorSideBottom.Control = ScopeGroupBox
AnchorSideBottom.Side = asrBottom
Left = 151
Height = 438
Top = 39
Width = 5
Align = alNone
Anchors = [akTop, akLeft, akBottom]
end
object ResultsMemo: TMemo
AnchorSideLeft.Control = Splitter1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Splitter1
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 156
Height = 432
Top = 45
Width = 485
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Top = 6
BorderSpacing.Right = 6
BorderSpacing.Bottom = 6
Lines.Strings = (
'ResultsMemo'
)
ReadOnly = True
ScrollBars = ssAutoBoth
TabOrder = 4
end
end

117
ide/idefpdocfilesearch.pas Normal file
View File

@ -0,0 +1,117 @@
unit IDEFPDocFileSearch;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
ButtonPanel, Buttons, ComCtrls, ExtCtrls, LCLType,
LazarusIDEStrConsts, 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; Shift: TShiftState);
procedure OnIdle(Sender: TObject; var 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.

View File

@ -45,7 +45,7 @@ uses
// IDE // IDE
LazarusIDEStrConsts, TransferMacros, DialogProcs, IDEOptionDefs, LazarusIDEStrConsts, TransferMacros, DialogProcs, IDEOptionDefs,
ObjInspExt, EnvironmentOpts, AboutFrm, MsgView, Project, MainBar, OutputFilter, ObjInspExt, EnvironmentOpts, AboutFrm, MsgView, Project, MainBar, OutputFilter,
PackageDefs, PackageSystem, IDEFPDocFileSearch, PackageDefs, PackageSystem,
HelpOptions, MainIntf, LazConf, HelpFPCMessages, CodeHelp, HelpOptions, MainIntf, LazConf, HelpFPCMessages, CodeHelp,
IDEContextHelpEdit, IDEWindowHelp; IDEContextHelpEdit, IDEWindowHelp;
@ -168,6 +168,7 @@ type
{ TIDEHelpManager } { TIDEHelpManager }
TIDEHelpManager = class(TBaseHelpManager) TIDEHelpManager = class(TBaseHelpManager)
procedure mnuSearchInFPDocFilesClick(Sender: TObject);
// help menu of the IDE menu bar // help menu of the IDE menu bar
procedure mnuHelpAboutLazarusClicked(Sender: TObject); procedure mnuHelpAboutLazarusClicked(Sender: TObject);
procedure mnuHelpOnlineHelpClicked(Sender: TObject); procedure mnuHelpOnlineHelpClicked(Sender: TObject);
@ -1109,6 +1110,11 @@ end;
{ TIDEHelpManager } { TIDEHelpManager }
procedure TIDEHelpManager.mnuSearchInFPDocFilesClick(Sender: TObject);
begin
ShowFPDocFileSearch;
end;
procedure TIDEHelpManager.mnuHelpAboutLazarusClicked(Sender: TObject); procedure TIDEHelpManager.mnuHelpAboutLazarusClicked(Sender: TObject);
begin begin
ShowAboutForm; ShowAboutForm;
@ -1291,6 +1297,8 @@ begin
itmHelpAboutLazarus.OnClick := @mnuHelpAboutLazarusClicked; itmHelpAboutLazarus.OnClick := @mnuHelpAboutLazarusClicked;
itmHelpOnlineHelp.OnClick := @mnuHelpOnlineHelpClicked; itmHelpOnlineHelp.OnClick := @mnuHelpOnlineHelpClicked;
itmHelpReportingBug.OnClick := @mnuHelpReportBugClicked; itmHelpReportingBug.OnClick := @mnuHelpReportBugClicked;
itmSearchInFPDocFiles.OnClick:=@mnuSearchInFPDocFilesClick;
end; end;
end; end;

View File

@ -63,7 +63,7 @@
<PackageName Value="SynEdit"/> <PackageName Value="SynEdit"/>
</Item6> </Item6>
</RequiredPackages> </RequiredPackages>
<Units Count="86"> <Units Count="87">
<Unit0> <Unit0>
<Filename Value="lazarus.pp"/> <Filename Value="lazarus.pp"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
@ -648,6 +648,13 @@
<ResourceBaseClass Value="Frame"/> <ResourceBaseClass Value="Frame"/>
<UnitName Value="env_file_filters"/> <UnitName Value="env_file_filters"/>
</Unit85> </Unit85>
<Unit86>
<Filename Value="idefpdocfilesearch.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="FPDocFileSearchDialog"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="IDEFPDocFileSearch"/>
</Unit86>
</Units> </Units>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
@ -657,7 +664,7 @@
</Target> </Target>
<SearchPaths> <SearchPaths>
<IncludeFiles Value="include"/> <IncludeFiles Value="include"/>
<OtherUnitFiles Value="frames;../converter;../debugger;../debugger/frames;../packager;../designer;../packager/frames;frames;../packager/frames"/> <OtherUnitFiles Value="frames;../converter;../debugger;../debugger/frames;../packager;../designer;../packager/frames"/>
<UnitOutputDirectory Value="$(LazarusDir)/units/$(TargetCPU)-$(TargetOS)"/> <UnitOutputDirectory Value="$(LazarusDir)/units/$(TargetCPU)-$(TargetOS)"/>
</SearchPaths> </SearchPaths>
<Parsing> <Parsing>

View File

@ -195,6 +195,7 @@ type
itmViewPackageLinks: TIDEMenuCommand; itmViewPackageLinks: TIDEMenuCommand;
itmViewFPCInfo: TIDEMenuCommand; itmViewFPCInfo: TIDEMenuCommand;
itmViewIDEInfo: TIDEMenuCommand; itmViewIDEInfo: TIDEMenuCommand;
itmSearchInFPDocFiles: TIDEMenuCommand;
// source menu // source menu
//mnuSource: TIDEMenuSection; //mnuSource: TIDEMenuSection;

View File

@ -534,6 +534,10 @@ begin
CreateMenuItem(itmViewIDEInternalsWindows, itmViewPackageLinks, 'itmViewPackageLinks', lisMenuPackageLinks); CreateMenuItem(itmViewIDEInternalsWindows, itmViewPackageLinks, 'itmViewPackageLinks', lisMenuPackageLinks);
CreateMenuItem(itmViewIDEInternalsWindows, itmViewFPCInfo, 'itmViewFPCInfo', lisMenuAboutFPC); CreateMenuItem(itmViewIDEInternalsWindows, itmViewFPCInfo, 'itmViewFPCInfo', lisMenuAboutFPC);
CreateMenuItem(itmViewIDEInternalsWindows, itmViewIDEInfo, 'itmViewIDEInfo', lisAboutIDE); CreateMenuItem(itmViewIDEInternalsWindows, itmViewIDEInfo, 'itmViewIDEInfo', lisAboutIDE);
{$IFDEF EnableFPDocSearch}
CreateMenuItem(itmViewIDEInternalsWindows, itmSearchInFPDocFiles, 'itmSearchInFPDocFiles',
'Search in FPDoc files');
{$ENDIF}
end; end;
end; end;
end; end;