wiki test: view html

git-svn-id: trunk@35859 -
This commit is contained in:
mattias 2012-03-10 08:35:20 +00:00
parent 2e86fb66b8
commit 211a956aee
3 changed files with 61 additions and 6 deletions

View File

@ -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>

View File

@ -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

View File

@ -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;