mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-23 13:23:11 +02:00
wiki test: view html
git-svn-id: trunk@35859 -
This commit is contained in:
parent
2e86fb66b8
commit
211a956aee
@ -30,19 +30,22 @@
|
||||
<LaunchingApplication PathPlusParams="/usr/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="4">
|
||||
<RequiredPackages Count="5">
|
||||
<Item1>
|
||||
<PackageName Value="turbopoweripro"/>
|
||||
<PackageName Value="SynEdit"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="MultiThreadProcsLaz"/>
|
||||
<PackageName Value="turbopoweripro"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<PackageName Value="LazWiki"/>
|
||||
<PackageName Value="MultiThreadProcsLaz"/>
|
||||
</Item3>
|
||||
<Item4>
|
||||
<PackageName Value="LCL"/>
|
||||
<PackageName Value="LazWiki"/>
|
||||
</Item4>
|
||||
<Item5>
|
||||
<PackageName Value="LCL"/>
|
||||
</Item5>
|
||||
</RequiredPackages>
|
||||
<Units Count="4">
|
||||
<Unit0>
|
||||
|
@ -55,8 +55,19 @@ object WikiSearchDemoForm: TWikiSearchDemoForm
|
||||
AutoSize = True
|
||||
Caption = 'Search'
|
||||
OnClick = ShowSearchToolButtonClick
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
Visible = False
|
||||
end
|
||||
object ShowHTMLToolButton: TToolButton
|
||||
Left = 47
|
||||
Top = 2
|
||||
AutoSize = True
|
||||
Caption = 'HTML'
|
||||
OnClick = ShowHTMLToolButtonClick
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
end
|
||||
end
|
||||
end
|
||||
object Splitter1: TSplitter
|
||||
|
@ -28,7 +28,7 @@ uses
|
||||
Classes, SysUtils, math, FileUtil, LazLogger, LazUTF8, LazFileUtils, laz2_DOM,
|
||||
Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, ComCtrls, LCLIntf,
|
||||
IpHtml, Ipfilebroker, IpMsg,
|
||||
CodeToolManager, CodeCache,
|
||||
CodeToolManager, CodeCache, SynEdit, SynHighlighterHTML,
|
||||
WikiHelpManager, WikiSearchOptions, WikiParser;
|
||||
|
||||
type
|
||||
@ -58,6 +58,7 @@ type
|
||||
Splitter1: TSplitter;
|
||||
Timer1: TTimer;
|
||||
ShowSearchToolButton: TToolButton;
|
||||
ShowHTMLToolButton: TToolButton;
|
||||
function DataProviderCanHandle(Sender: TObject; const {%H-}URL: string): Boolean;
|
||||
procedure DataProviderGetImage(Sender: TIpHtmlNode; const URL: string;
|
||||
var Picture: TPicture);
|
||||
@ -68,6 +69,7 @@ type
|
||||
procedure IpHtmlPanelHotClick(Sender: TObject);
|
||||
procedure OptionsButtonClick(Sender: TObject);
|
||||
procedure SearchEditChange(Sender: TObject);
|
||||
procedure ShowHTMLToolButtonClick(Sender: TObject);
|
||||
procedure ShowSearchToolButtonClick(Sender: TObject);
|
||||
procedure Timer1Timer(Sender: TObject);
|
||||
private
|
||||
@ -76,6 +78,8 @@ type
|
||||
fLastScoring: TWHScoring;
|
||||
FIdleConnected: boolean;
|
||||
FURLDataProvider: TWikiIpHtmlDataProvider;
|
||||
FPageURL: string;
|
||||
FPageSource: string;
|
||||
procedure QueryChanged;
|
||||
procedure SetIdleConnected(AValue: boolean);
|
||||
procedure UpdateProgress;
|
||||
@ -132,6 +136,7 @@ begin
|
||||
|
||||
// page panel
|
||||
ShowSearchToolButton.Caption:='Search';
|
||||
ShowHTMLToolButton.Hint:='View HTML Source';
|
||||
|
||||
FURLDataProvider:=TWikiIpHtmlDataProvider.Create(nil);
|
||||
ResultsIpHtmlPanel.DataProvider:=FURLDataProvider;
|
||||
@ -276,7 +281,13 @@ begin
|
||||
end;
|
||||
WikiHelp.SavePageToStream(DocumentName,ms);
|
||||
ms.Position:=0;
|
||||
SetLength(Src,ms.Size);
|
||||
if Src<>'' then
|
||||
ms.Read(Src[1],length(Src));
|
||||
ms.Position:=0;
|
||||
LoadHTML(PageIpHtmlPanel,ms);
|
||||
FPageSource:=Src;
|
||||
FPageURL:=HRef;
|
||||
except
|
||||
on E: Exception do begin
|
||||
Src:='<html><body>Error: '+EncodeLesserAndGreaterThan(E.Message)+'</body></html>';
|
||||
@ -298,6 +309,36 @@ begin
|
||||
IdleConnected:=true;
|
||||
end;
|
||||
|
||||
procedure TWikiSearchDemoForm.ShowHTMLToolButtonClick(Sender: TObject);
|
||||
var
|
||||
ViewSrcForm: TForm;
|
||||
SrcEdit: TSynEdit;
|
||||
Highlighter: TSynHTMLSyn;
|
||||
begin
|
||||
if (FPageURL='') then exit;
|
||||
ViewSrcForm:=TForm.Create(Self);
|
||||
ViewSrcForm.DisableAutoSizing;
|
||||
try
|
||||
ViewSrcForm.Caption:='HTML Source of '+FPageURL;
|
||||
ViewSrcForm.Position:=poScreenCenter;
|
||||
ViewSrcForm.Width:=500;
|
||||
ViewSrcForm.Height:=500;
|
||||
|
||||
Highlighter:=TSynHTMLSyn.Create(ViewSrcForm);
|
||||
|
||||
SrcEdit:=TSynEdit.Create(ViewSrcForm);
|
||||
SrcEdit.Align:=alClient;
|
||||
SrcEdit.Text:=FPageSource;
|
||||
SrcEdit.Highlighter:=Highlighter;
|
||||
SrcEdit.Parent:=ViewSrcForm;
|
||||
SrcEdit.ReadOnly:=true;
|
||||
|
||||
ViewSrcForm.Show;
|
||||
finally
|
||||
ViewSrcForm.EnableAutoSizing;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWikiSearchDemoForm.ShowSearchToolButtonClick(Sender: TObject);
|
||||
begin
|
||||
DisableAutoSizing;
|
||||
|
Loading…
Reference in New Issue
Block a user