LCL: fixed searching help in multiple databases

git-svn-id: trunk@35074 -
This commit is contained in:
mattias 2012-02-01 16:42:41 +00:00
parent 194e0679ac
commit 88707d2180

View File

@ -1515,6 +1515,7 @@ function THelpDatabases.ShowHelpForNodes(Query: THelpQuery;
Nodes: THelpNodeQueryList; var ErrMsg: string): TShowHelpResult; Nodes: THelpNodeQueryList; var ErrMsg: string): TShowHelpResult;
var var
NodeQuery: THelpNodeQuery; NodeQuery: THelpNodeQuery;
Node: THelpNode;
begin begin
// check if several nodes found // check if several nodes found
//debugln('THelpDatabases.ShowHelpForNodes A Nodes.Count=',dbgs(Nodes.Count)); //debugln('THelpDatabases.ShowHelpForNodes A Nodes.Count=',dbgs(Nodes.Count));
@ -1528,13 +1529,16 @@ begin
end; end;
// show node // show node
if NodeQuery.Node.Owner=nil then begin Node:=NodeQuery.Node;
if Node.Owner=nil then begin
Result:=shrDatabaseNotFound; Result:=shrDatabaseNotFound;
ErrMsg:=Format(rsHelpHelpNodeHasNoHelpDatabase, ['"', NodeQuery.Node.Title, '"']); ErrMsg:=Format(rsHelpHelpNodeHasNoHelpDatabase, ['"', Node.Title, '"']);
exit; exit;
end; end;
Result:=NodeQuery.Node.Owner.ShowHelp(Query,nil, {$IFDEF VerboseLCLHelp}
NodeQuery.Node,NodeQuery.QueryItem,ErrMsg); debugln(['THelpDatabases.ShowHelpForNodes Node.Owner=',DbgSName(Node.Owner),' UnitName=',Node.Owner.UnitName]);
{$ENDIF}
Result:=Node.Owner.ShowHelp(Query,nil,Node,NodeQuery.QueryItem,ErrMsg);
end; end;
function THelpDatabases.ShowHelpForQuery(Query: THelpQuery; function THelpDatabases.ShowHelpForQuery(Query: THelpQuery;
@ -1691,7 +1695,7 @@ begin
ErrMsg:=''; ErrMsg:='';
Result:=shrSuccess; Result:=shrSuccess;
{$IFNDEF DisableChecks} {$IFDEF VerboseLCLHelp}
debugln('THelpDatabases.ShowHelpForPascalContexts A Count=',dbgs(Query.ListOfPascalHelpContextList.Count)); debugln('THelpDatabases.ShowHelpForPascalContexts A Count=',dbgs(Query.ListOfPascalHelpContextList.Count));
{$ENDIF} {$ENDIF}
// search node // search node
@ -1708,7 +1712,7 @@ begin
[Query.SourcePosition.y, Query.SourcePosition.x, Query.Filename]); [Query.SourcePosition.y, Query.SourcePosition.x, Query.Filename]);
exit; exit;
end; end;
{$IFNDEF DisableChecks} {$IFDEF VerboseLCLHelp}
debugln('THelpDatabases.ShowHelpForPascalContexts B Nodes.Count=',dbgs(Nodes.Count)); debugln('THelpDatabases.ShowHelpForPascalContexts B Nodes.Count=',dbgs(Nodes.Count));
{$ENDIF} {$ENDIF}
@ -1733,7 +1737,9 @@ begin
ErrMsg:=''; ErrMsg:='';
Result:=shrSuccess; Result:=shrSuccess;
{$IFDEF VerboseLCLHelp}
debugln('THelpDatabases.ShowHelpForMessageLine A Msg="',Query.WholeMessage,'"'); debugln('THelpDatabases.ShowHelpForMessageLine A Msg="',Query.WholeMessage,'"');
{$ENDIF}
// search node // search node
Nodes:=nil; Nodes:=nil;
try try
@ -1762,7 +1768,7 @@ begin
ErrMsg:=''; ErrMsg:='';
Result:=shrSuccess; Result:=shrSuccess;
{$IFNDEF DisableChecks} {$IFDEF VerboseLCLHelp}
debugln('THelpDatabases.ShowHelpForClass A ',Query.TheClass.ClassName); debugln('THelpDatabases.ShowHelpForClass A ',Query.TheClass.ClassName);
{$ENDIF} {$ENDIF}
// search node // search node
@ -1823,7 +1829,7 @@ begin
ErrMsg:=''; ErrMsg:='';
for i:=Count-1 downto 0 do begin for i:=Count-1 downto 0 do begin
Result:=Items[i].GetNodesForKeyword(HelpKeyword,ListOfNodes,ErrMsg); Result:=Items[i].GetNodesForKeyword(HelpKeyword,ListOfNodes,ErrMsg);
if Result<>shrSuccess then exit; if Result=shrCancel then exit;
end; end;
end; end;
@ -1838,7 +1844,7 @@ begin
ErrMsg:=''; ErrMsg:='';
for i:=Count-1 downto 0 do begin for i:=Count-1 downto 0 do begin
Result:=Items[i].GetNodesForDirective(HelpDirective,ListOfNodes,ErrMsg); Result:=Items[i].GetNodesForDirective(HelpDirective,ListOfNodes,ErrMsg);
if Result<>shrSuccess then exit; if Result=shrCancel then exit;
end; end;
end; end;
@ -1853,7 +1859,7 @@ begin
ErrMsg:=''; ErrMsg:='';
for i:=Count-1 downto 0 do begin for i:=Count-1 downto 0 do begin
Result:=Items[i].GetNodesForContext(HelpContext,ListOfNodes,ErrMsg); Result:=Items[i].GetNodesForContext(HelpContext,ListOfNodes,ErrMsg);
if Result<>shrSuccess then exit; if Result=shrCancel then exit;
end; end;
end; end;
@ -1870,7 +1876,7 @@ begin
for i:=Count-1 downto 0 do begin for i:=Count-1 downto 0 do begin
Result:=Items[i].GetNodesForPascalContexts(ListOfPascalHelpContextList, Result:=Items[i].GetNodesForPascalContexts(ListOfPascalHelpContextList,
ListOfNodes,ErrMsg); ListOfNodes,ErrMsg);
if Result<>shrSuccess then exit; if Result=shrCancel then exit;
end; end;
end; end;
@ -1885,7 +1891,7 @@ begin
ErrMsg:=''; ErrMsg:='';
for i:=Count-1 downto 0 do begin for i:=Count-1 downto 0 do begin
Result:=Items[i].GetNodesForClass(AClass,ListOfNodes,ErrMsg); Result:=Items[i].GetNodesForClass(AClass,ListOfNodes,ErrMsg);
if Result<>shrSuccess then exit; if Result=shrCancel then exit;
end; end;
end; end;
@ -1902,7 +1908,7 @@ begin
for i:=Count-1 downto 0 do begin for i:=Count-1 downto 0 do begin
Result:=Items[i].GetNodesForMessage(AMessage,MessageParts,ListOfNodes, Result:=Items[i].GetNodesForMessage(AMessage,MessageParts,ListOfNodes,
ErrMsg); ErrMsg);
if Result<>shrSuccess then exit; if Result=shrCancel then exit;
end; end;
end; end;