IDE: showing error message, when no help found for message item

git-svn-id: trunk@15951 -
This commit is contained in:
mattias 2008-08-04 15:42:45 +00:00
parent 2ada1f890f
commit a075323c38
4 changed files with 42 additions and 42 deletions

View File

@ -124,9 +124,9 @@ type
end;
{ THelpManager }
{ TIDEHelpManager }
THelpManager = class(TBaseHelpManager)
TIDEHelpManager = class(TBaseHelpManager)
// help menu of the IDE menu bar
procedure mnuHelpAboutLazarusClicked(Sender: TObject);
procedure mnuHelpConfigureHelpClicked(Sender: TObject);
@ -236,7 +236,7 @@ end;
function LazCreateIDEHTMLProvider(Owner: TComponent): TAbstractIDEHTMLProvider;
begin
Result:=TLazIDEHTMLProvider.Create(Owner);
TLazIDEHTMLProvider(Result).Providers:=THelpManager(HelpBoss).FHTMLProviders;
TLazIDEHTMLProvider(Result).Providers:=TIDEHelpManager(HelpBoss).FHTMLProviders;
end;
function CompareLIHProviderStream(Data1, Data2: Pointer): integer;
@ -635,30 +635,30 @@ begin
Result:=IDEMacros.SubstituteMacros(s);
end;
{ THelpManager }
{ TIDEHelpManager }
procedure THelpManager.mnuHelpAboutLazarusClicked(Sender: TObject);
procedure TIDEHelpManager.mnuHelpAboutLazarusClicked(Sender: TObject);
begin
ShowAboutForm;
end;
procedure THelpManager.mnuHelpConfigureHelpClicked(Sender: TObject);
procedure TIDEHelpManager.mnuHelpConfigureHelpClicked(Sender: TObject);
begin
if ShowHelpOptionsDialog=mrOk then
SaveHelpOptions;
end;
procedure THelpManager.mnuHelpOnlineHelpClicked(Sender: TObject);
procedure TIDEHelpManager.mnuHelpOnlineHelpClicked(Sender: TObject);
begin
ShowLazarusHelpStartPage;
end;
procedure THelpManager.mnuHelpReportBugClicked(Sender: TObject);
procedure TIDEHelpManager.mnuHelpReportBugClicked(Sender: TObject);
begin
ShowHelpOrError(lisReportingBugURL, lisMenuReportingBug, 'text/html');
end;
procedure THelpManager.RegisterIDEHelpDatabases;
procedure TIDEHelpManager.RegisterIDEHelpDatabases;
procedure CreateMainIDEHelpDB;
var
@ -768,7 +768,7 @@ begin
CreateFPCMessagesHelpDB;
end;
procedure THelpManager.RegisterDefaultIDEHelpViewers;
procedure TIDEHelpManager.RegisterDefaultIDEHelpViewers;
var
HelpViewer: THTMLBrowserHelpViewer;
begin
@ -777,12 +777,12 @@ begin
HelpViewers.RegisterViewer(HelpViewer);
end;
procedure THelpManager.FindDefaultBrowser(var DefaultBrowser, Params: string);
procedure TIDEHelpManager.FindDefaultBrowser(var DefaultBrowser, Params: string);
begin
GetDefaultBrowser(DefaultBrowser, Params);
end;
constructor THelpManager.Create(TheOwner: TComponent);
constructor TIDEHelpManager.Create(TheOwner: TComponent);
begin
inherited Create(TheOwner);
HelpBoss:=Self;
@ -809,7 +809,7 @@ begin
CreateIDEHTMLProvider:=@LazCreateIDEHTMLProvider;
end;
destructor THelpManager.Destroy;
destructor TIDEHelpManager.Destroy;
begin
FreeThenNil(FHTMLProviders);
FreeThenNil(CodeHelpBoss);
@ -827,7 +827,7 @@ begin
inherited Destroy;
end;
procedure THelpManager.UpdateFPCDocsHTMLDirectory;
procedure TIDEHelpManager.UpdateFPCDocsHTMLDirectory;
function IsFPCDocsHTMDirectory(const Directory: string): boolean;
var
@ -929,7 +929,7 @@ begin
if TryDirectoryMask('/usr/local/share/doc/fpdocs-*') then exit;
end;
procedure THelpManager.ConnectMainBarEvents;
procedure TIDEHelpManager.ConnectMainBarEvents;
begin
with MainIDEBar do begin
itmHelpAboutLazarus.OnClick := @mnuHelpAboutLazarusClicked;
@ -939,32 +939,32 @@ begin
end;
end;
procedure THelpManager.LoadHelpOptions;
procedure TIDEHelpManager.LoadHelpOptions;
begin
HelpOpts.Load;
end;
procedure THelpManager.SaveHelpOptions;
procedure TIDEHelpManager.SaveHelpOptions;
begin
HelpOpts.Save;
end;
procedure THelpManager.ShowLazarusHelpStartPage;
procedure TIDEHelpManager.ShowLazarusHelpStartPage;
begin
ShowIDEHelpForKeyword(lihcStartPage);
end;
procedure THelpManager.ShowIDEHelpForContext(HelpContext: THelpContext);
procedure TIDEHelpManager.ShowIDEHelpForContext(HelpContext: THelpContext);
begin
ShowHelpOrErrorForContext(MainHelpDB.ID,HelpContext);
end;
procedure THelpManager.ShowIDEHelpForKeyword(const Keyword: string);
procedure TIDEHelpManager.ShowIDEHelpForKeyword(const Keyword: string);
begin
ShowHelpOrErrorForKeyword(MainHelpDB.ID,Keyword);
end;
function THelpManager.ShowHelpForSourcePosition(const Filename: string;
function TIDEHelpManager.ShowHelpForSourcePosition(const Filename: string;
const CodePos: TPoint; var ErrMsg: string): TShowHelpResult;
function ShowHelpForFPCKeyWord(const KeyWord: string): TShowHelpResult;
@ -1049,11 +1049,11 @@ function THelpManager.ShowHelpForSourcePosition(const Filename: string;
ListOfPCodeXYPosition,[fdlfWithoutEmptyProperties,fdlfWithoutForwards])
then begin
if ListOfPCodeXYPosition=nil then exit;
debugln('THelpManager.ShowHelpForSourcePosition B Success ',dbgs(ListOfPCodeXYPosition.Count));
debugln('TIDEHelpManager.ShowHelpForSourcePosition B Success ',dbgs(ListOfPCodeXYPosition.Count));
// convert the source positions in pascal help context list
for i:=0 to ListOfPCodeXYPosition.Count-1 do begin
CurCodePos:=PCodeXYPosition(ListOfPCodeXYPosition[i]);
debugln('THelpManager.ShowHelpForSourcePosition C ',CurCodePos^.Code.Filename,' X=',dbgs(CurCodePos^.X),' Y=',dbgs(CurCodePos^.Y));
debugln('TIDEHelpManager.ShowHelpForSourcePosition C ',CurCodePos^.Code.Filename,' X=',dbgs(CurCodePos^.X),' Y=',dbgs(CurCodePos^.Y));
NewList:=ConvertCodePosToPascalHelpContext(CurCodePos);
if NewList<>nil then begin
if PascalHelpContextLists=nil then
@ -1064,7 +1064,7 @@ function THelpManager.ShowHelpForSourcePosition(const Filename: string;
if PascalHelpContextLists=nil then exit;
// invoke help system
debugln('THelpManager.ShowHelpForSourcePosition D PascalHelpContextLists.Count=',dbgs(PascalHelpContextLists.Count));
debugln('TIDEHelpManager.ShowHelpForSourcePosition D PascalHelpContextLists.Count=',dbgs(PascalHelpContextLists.Count));
Result:=ShowHelpForPascalContexts(Filename,CodePos,PascalHelpContextLists,ErrMsg);
end else begin
MainIDEInterface.DoJumpToCodeToolBossError;
@ -1082,7 +1082,7 @@ function THelpManager.ShowHelpForSourcePosition(const Filename: string;
var
CodeBuffer: TCodeBuffer;
begin
debugln('THelpManager.ShowHelpForSourcePosition A Filename=',Filename,' ',dbgs(CodePos));
debugln('TIDEHelpManager.ShowHelpForSourcePosition A Filename=',Filename,' ',dbgs(CodePos));
Result:=shrHelpNotFound;
ErrMsg:='No help found for "'+Filename+'"'
+' at ('+IntToStr(CodePos.Y)+','+IntToStr(CodePos.X)+')';
@ -1097,7 +1097,7 @@ begin
CollectDeclarations(CodeBuffer);
end;
function THelpManager.ConvertCodePosToPascalHelpContext(
function TIDEHelpManager.ConvertCodePosToPascalHelpContext(
ACodePos: PCodeXYPosition): TPascalHelpContextList;
procedure AddContext(Descriptor: TPascalHelpContextType;
@ -1190,7 +1190,7 @@ begin
AddContextsBackwards(TCodeTool(Tool),Node);
end;
procedure THelpManager.ShowHelpForMessage(Line: integer);
procedure TIDEHelpManager.ShowHelpForMessage(Line: integer);
function ParseMessage(MsgItem: TIDEMessageLine): TStringList;
begin
@ -1204,11 +1204,11 @@ var
MsgItem: TIDEMessageLine;
MessageParts: TStringList;
begin
//debugln('THelpManager.ShowHelpForMessage A Line=',dbgs(Line));
//debugln('TIDEHelpManager.ShowHelpForMessage A Line=',dbgs(Line));
if MessagesView=nil then exit;
if Line<0 then
Line:=MessagesView.SelectedMessageIndex;
//DebugLn('THelpManager.ShowHelpForMessage B Line=',dbgs(Line),' ',dbgs(MessagesView.VisibleItemCount));
//DebugLn('TIDEHelpManager.ShowHelpForMessage B Line=',dbgs(Line),' ',dbgs(MessagesView.VisibleItemCount));
if (Line<0) or (Line>=MessagesView.VisibleItemCount) then exit;
MsgItem:=MessagesView.VisibleItems[Line];
if MsgItem=nil then exit;
@ -1218,7 +1218,7 @@ begin
end;
end;
procedure THelpManager.ShowHelpForObjectInspector(Sender: TObject);
procedure TIDEHelpManager.ShowHelpForObjectInspector(Sender: TObject);
var
AnInspector: TObjectInspectorDlg;
Code: TCodeBuffer;
@ -1226,7 +1226,7 @@ var
ErrMsg: string;
NewTopLine: integer;
begin
//DebugLn('THelpManager.ShowHelpForObjectInspector ',dbgsName(Sender));
//DebugLn('TIDEHelpManager.ShowHelpForObjectInspector ',dbgsName(Sender));
if Sender=nil then Sender:=ObjectInspector1;
if Sender is TObjectInspectorDlg then begin
AnInspector:=TObjectInspectorDlg(Sender);
@ -1237,13 +1237,13 @@ begin
ShowHelpForSourcePosition(Code.Filename,Caret,ErrMsg);
end;
end else begin
DebugLn('THelpManager.ShowHelpForObjectInspector show default help for OI');
DebugLn('TIDEHelpManager.ShowHelpForObjectInspector show default help for OI');
ShowContextHelpForIDE(AnInspector);
end;
end;
end;
function THelpManager.GetHintForSourcePosition(const ExpandedFilename: string;
function TIDEHelpManager.GetHintForSourcePosition(const ExpandedFilename: string;
const CodePos: TPoint; out BaseURL, HTMLHint: string): TShowHelpResult;
var
Code: TCodeBuffer;
@ -1257,11 +1257,11 @@ begin
BaseURL,HTMLHint,CacheWasUsed)=chprSuccess
then
exit(shrSuccess);
DebugLn(['THelpManager.GetHintForSourcePosition not found']);
DebugLn(['TIDEHelpManager.GetHintForSourcePosition not found']);
Result:=shrHelpNotFound;
end;
function THelpManager.ConvertSourcePosToPascalHelpContext(
function TIDEHelpManager.ConvertSourcePosToPascalHelpContext(
const CaretPos: TPoint; const Filename: string): TPascalHelpContextList;
var
CodePos: TCodeXYPosition;

View File

@ -1129,7 +1129,7 @@ begin
DebugBoss.ConnectMainBarEvents;
PkgBoss:=TPkgManager.Create(nil);
PkgBoss.ConnectMainBarEvents;
HelpBoss:=THelpManager.Create(nil);
HelpBoss:=TIDEHelpManager.Create(nil);
HelpBoss.ConnectMainBarEvents;
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TMainIDE.Create MANAGERS');{$ENDIF}
// setup the IDE components
@ -12918,7 +12918,7 @@ begin
writeln('[TMainIDE.OnSrcNotebookShowHintForSource] ************ ',ActiveUnitInfo.Source.Filename,' X=',CaretPos.X,' Y=',CaretPos.Y);
{$ENDIF}
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TMainIDE.OnSrcNotebookShowHintForSource A');{$ENDIF}
THelpManager(HelpBoss).GetHintForSourcePosition(ActiveUnitInfo.Filename,
TIDEHelpManager(HelpBoss).GetHintForSourcePosition(ActiveUnitInfo.Filename,
CaretPos,BaseURL,SmartHintStr);
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TMainIDE.OnSrcNotebookShowHintForSource B');{$ENDIF}
end;

View File

@ -38,7 +38,7 @@ unit HelpIntfs;
interface
uses
Classes, SysUtils;
Classes, SysUtils, LCLProc;
type
// All help-specific errors should be thrown as this type.
@ -377,6 +377,7 @@ var
begin
ErrMsg:='';
Result:=ShowHelpForMessageLine(MessageLine,MessageParts,ErrMsg);
//debugln(['ShowHelpOrErrorForMessageLine Result=',ord(Result),' ErrMsg=',ErrMsg,' ',dbgsName(HelpManager)]);
HelpManager.ShowError(Result,ErrMsg);
end;

View File

@ -359,7 +359,7 @@ type
{ THelpDatabases
Class for storing all registered THelpDatabase }
Class for storing all registered THelpDatabase(s) }
THelpDatabases = class(THelpManager)
private
@ -1529,9 +1529,8 @@ begin
// check if at least one node found
if (Nodes=nil) or (Nodes.Count=0) then begin
// no node found for the message is not a bug
Result:=shrSuccess;
ErrMsg:='';
Result:=shrHelpNotFound;
ErrMsg:='No help found for "'+Query.WholeMessage+'"';
exit;
end;