Changeset 291
- Timestamp:
- May 5, 2008, 8:31:10 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.19_branch/NewView/MainForm.pas
r165 r291 2688 2688 var 2689 2689 FilePath: string; 2690 AlternativeFilePath: string; 2691 FileIndex: longint; 2692 HelpFile: THelpFile; 2690 2693 Topic: TTopic; 2694 IsFileAlreadyOpened: boolean; 2691 2695 begin 2692 2696 // try in same dir as source file … … 2694 2698 + g_ExternalLinkFilename; 2695 2699 2696 if not StrEqualIgnoringCase( FilePath, g_ExternalLinkSourceFilename ) then 2700 AlternativeFilePath := FilePath; 2701 2702 if ExtractFileExt(g_ExternalLinkFilename) = '' then 2703 begin 2704 FilePath := ChangeFileExt(FilePath, INF_FILE_EXTENSION); 2705 AlternativeFilePath := ChangeFileExt(FilePath, HELP_FILE_EXTENSION); 2706 end; 2707 2708 // figure out, if the file is already open 2709 IsFileAlreadyOpened := false; 2710 for FileIndex := 0 to CurrentOpenFiles.Count - 1 do 2711 begin 2712 HelpFile := CurrentOpenFiles[FileIndex]; 2713 if StrEndsWithIgnoringCase(HelpFile.Filename, FilePath) 2714 or StrEndsWithIgnoringCase(HelpFile.Filename, g_ExternalLinkFilename + HELP_FILE_EXTENSION) then 2715 begin 2716 IsFileAlreadyOpened := true; 2717 end; 2718 end; 2719 2720 if not IsFileAlreadyOpened then 2697 2721 begin 2698 2722 // different file - try and open it … … 2703 2727 if not FileExists( FilePath ) then 2704 2728 begin 2705 DoErrorDlg( 'Link Error', 2706 'Cannot find linked file ' 2707 + g_ExternalLinkFilename ); 2729 DoErrorDlg('Link Error', 'Cannot find linked file ''' + g_ExternalLinkFilename +''''); 2708 2730 exit; 2709 2731 end; … … 2719 2741 exit; 2720 2742 end; 2721 2722 2743 end; 2723 2744 … … 2729 2750 end; 2730 2751 2731 Topic := FindTopicByGlobalName( g_ExternalLinkTopic ); 2752 // don't call this search here; 2753 // because we know the file to search in 2754 // Topic := FindTopicByGlobalName( g_ExternalLinkTopic ); 2755 Topic := nil; 2756 for FileIndex := 0 to CurrentOpenFiles.Count - 1 do 2757 begin 2758 HelpFile := CurrentOpenFiles[FileIndex]; 2759 if StrEndsWithIgnoringCase(HelpFile.Filename, g_ExternalLinkFilename + INF_FILE_EXTENSION) 2760 or StrEndsWithIgnoringCase(HelpFile.Filename, g_ExternalLinkFilename + HELP_FILE_EXTENSION) then 2761 begin 2762 Topic := HelpFile.FindTopicByGlobalName(g_ExternalLinkTopic); 2763 end; 2764 end; 2765 2732 2766 if Topic = nil then 2733 2767 begin 2734 DoErrorDlg( 'Link Error', 2735 'Unable to find topic with global name ' 2736 + g_ExternalLinkTopic ); 2768 DoErrorDlg('Link Error', 'Unable to find topic with global name ''' + g_ExternalLinkTopic + '''); 2737 2769 exit; 2738 2770 end; … … 5534 5566 LinkDetails := StrSubstringFrom(LinkString, Length(PARAM_LINK_EXTERNAL) + 2); 5535 5567 5568 Window := FindWindowFromView(Sender, Windows); 5569 SourceFile := Window.Topic.HelpFile as THelpFile; 5570 5536 5571 tmpLinkDetails := TStringList.Create; 5537 5572 StrExtractStrings(tmpLinkDetails, LinkDetails, [' '], #0); 5538 5573 LinkIndex := StrToInt(tmpLinkDetails[0]); 5574 g_ExternalLinkFileName := SourceFile.ReferencedFiles[ LinkIndex ]; 5575 g_ExternalLinkTopic := tmpLinkDetails[1]; 5539 5576 tmpLinkDetails.Destroy; 5540 5577 5541 Window := FindWindowFromView( Sender, Windows );5542 SourceFile := Window.Topic.HelpFile as THelpFile;5543 5544 g_ExternalLinkFileName := SourceFile.ReferencedFiles[ LinkIndex ];5545 g_ExternalLinkTopic := LinkDetails;5546 5578 g_ExternalLinkSourceFilename := SourceFile.Filename; 5547 5579 g_ExternalLinkKeepCurrent := true; // hm... what would be nice?
Note:
See TracChangeset
for help on using the changeset viewer.