Ignore:
Timestamp:
Aug 1, 2006, 8:51:54 PM (19 years ago)
Author:
RBRi
Message:

refactoring for cmd line parameters handling finished

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NewView/MainForm.pas

    r18 r25  
    1616// library
    1717  ACLString, SharedMemoryUnit, ACLLanguageUnit, GenericThread,
     18  CmdLineParameterUnit,
     19
    1820// custom components
    1921  SplitBar, Outline2, RichTextView, Coolbar2,
     
    862864  T: TTopic;
    863865  ResourceIDs: TList;
    864   Level: longint;
    865866  ImageOffsets: TList;
    866867  ImageOffset: longint;
     
    19001901  TotalTopics: longint;
    19011902  TotalTopicIndex: longint;
    1902 
    1903   Topic: TTopic;
    19041903begin
    19051904  PrintSingle := nil;
     
    22182217var
    22192218  i: integer;
     2219  tmpCmdLine: String;
     2220  tmpSplittedCmdLine : TStringList;
     2221  tmpRc : Integer;
     2222  tmpWindowPosition : TWindowPosition;
    22202223Begin
    22212224  with InformationForm.InformationMemo do
    22222225  begin
     2226    tmpCmdLine := nativeOS2GetCmdLineParameter;
     2227    tmpSplittedCmdLine := TStringList.Create;
     2228
    22232229    Lines.Clear;
    2224     Lines.Add( ParameterCountLabel
    2225                + IntToStr( ParamCount ) );
    2226     for i := 1 to ParamCount do
     2230    Lines.Add(ParameterCountLabel +IntToStr(tmpSplittedCmdLine.count));
     2231    tmpRc := splitCmdLineParameter(tmpCmdLine, tmpSplittedCmdLine);
     2232    for i := 0 to tmpSplittedCmdLine.Count -1 do
    22272233      Lines.Add( ' '
    22282234                 + IntToStr( i )
    22292235                 + ' ['
    2230                  + ParamStr( i )
     2236                 + tmpSplittedCmdLine[i]
    22312237                 + ']' );
     2238
     2239    tmpSplittedCmdLine.Destroy;
     2240    Lines.Add('');
     2241    Lines.Add('parsed infos:');
     2242    Lines.Add('getShowUsageFlag: ' + boolToStr(CmdLineParameters.getShowUsageFlag));
     2243    Lines.Add('getSearchTextFlag: ' + boolToStr(CmdLineParameters.getSearchTextFlag));
     2244    Lines.Add('getSearchText: ' + CmdLineParameters.getSearchText);
     2245    Lines.Add('getGlobalSearchTextFlag: ' + boolToStr(CmdLineParameters.getGlobalSearchTextFlag));
     2246    Lines.Add('getGlobalSearchText: ' + CmdLineParameters.getGlobalSearchText);
     2247    Lines.Add('getLanguage: ' + CmdLineParameters.getLanguage);
     2248    Lines.Add('getHelpManagerFlag: ' + boolToStr(CmdLineParameters.getHelpManagerFlag));
     2249    Lines.Add('getHelpManagerFlag: ' + boolToStr(CmdLineParameters.getHelpManagerFlag));
     2250    Lines.Add('getHelpManagerWindow: ' + intToStr(CmdLineParameters.getHelpManagerWindow));
     2251    Lines.Add('getWindowPositionFlag: ' + boolToStr(CmdLineParameters.getWindowPositionFlag));
     2252
     2253    tmpWindowPosition := CmdLineParameters.getWindowPosition;
     2254    Lines.Add('getWindowPosition: ');
     2255    Lines.Add('    left:   ' + intToStr(tmpWindowPosition.left));
     2256    Lines.Add('    bottom: ' + intToStr(tmpWindowPosition.bottom));
     2257    Lines.Add('    width: ' + intToStr(tmpWindowPosition.width));
     2258    Lines.Add('    height: ' + intToStr(tmpWindowPosition.height));
     2259    Lines.Add('getOwnerWindow: ' + intToStr(CmdLineParameters.getOwnerWindow));
     2260    Lines.Add('getWindowTitle: ' + CmdLineParameters.getWindowTitle);
     2261    Lines.Add('getFileNames: ' + CmdLineParameters.getFileNames);
     2262    Lines.Add('getTopics: ' + CmdLineParameters.getTopics);
     2263
    22322264  end;
    22332265
     
    23502382  FileIndex: longint;
    23512383  HelpFile: THelpFile;
    2352   Dummy: TNode;
    23532384Begin
    23542385  EnableControls;
     
    23572388    begin
    23582389      // not really feasible to load contents here, as we rely
    2359       // on it for many things 
     2390      // on it for many things
    23602391      ContentsOutline.Focus;
    23612392    end;
     
    36193650  Settings.MRUList.Destroy;
    36203651
    3621   Parameters.FilenamesParam.Destroy;
     3652  // TODO rbri maybe we have to do this
     3653  // Parameters.FilenamesParam.Destroy;
    36223654
    36233655  if g_CurrentLanguageFile <> nil then
     
    37633795
    37643796Procedure TMainForm.MainFormOnCreate (Sender: TObject);
     3797var
     3798  tmpCmdLine: String;
     3799  tmpSplittedCmdLine : TStringList;
     3800  tmpRc : Integer;
    37653801Begin
    37663802  ProfileEvent( 'MainFormOnCreate' );
     
    37743810  GlobalFilelist := TGlobalFilelist.Create;
    37753811
    3776   ParseCommandLineParameters;
    3777 
     3812  // parse parameters into Parameters object
     3813  tmpCmdLine := nativeOS2GetCmdLineParameter;
     3814  tmpSplittedCmdLine := TStringList.Create;
     3815  tmpRc := splitCmdLineParameter(tmpCmdLine, tmpSplittedCmdLine);
     3816  CmdLineParameters := TCmdLineParameters.Create;
     3817  CmdLineParameters.parseCmdLine(tmpSplittedCmdLine);
     3818  tmpSplittedCmdLine.destroy;
    37783819  RegisterForLanguages( OnLanguageEvent );
    37793820
     
    38493890  ProfileEvent( 'Loading language' );
    38503891
    3851   if Parameters.Language <> '' then
    3852     LoadAutoLanguage( 'newview', Parameters.Language )
     3892  if CmdLineParameters.getLanguage <> '' then
     3893    LoadAutoLanguage( 'newview', CmdLineParameters.getLanguage )
    38533894  else
    38543895    LoadDefaultLanguage( 'newview' );
     
    38813922  ProfileEvent( 'OnCreate done' );
    38823923
    3883   if Parameters.SetPosition then
     3924  if CmdLineParameters.getWindowPositionFlag then
    38843925  begin
    38853926    SmartSetWindowPos( self,
    3886                        Parameters.Position.Left,
    3887                        Parameters.Position.Bottom,
    3888                        Parameters.Position.Width,
    3889                        Parameters.Position.Height,
     3927                       CmdLineParameters.getWindowPosition.Left,
     3928                       CmdLineParameters.getWindowPosition.Bottom,
     3929                       CmdLineParameters.getWindowPosition.Width,
     3930                       CmdLineParameters.getWindowPosition.Height,
    38903931                       false );
    38913932  end;
     
    39734014Procedure TMainForm.ClearHelpManager;
    39744015Begin
    3975   if not Parameters.IsHelpManager then
     4016  if not CmdLineParameters.getHelpManagerFlag then
    39764017    exit;
    39774018
     
    39794020  PostHelpManagerMessage( NHM_FORGET_VIEWER, 0, 0 );
    39804021
    3981   Parameters.IsHelpManager := false;
     4022  CmdLineParameters.setHelpManagerFlag(false);
    39824023
    39834024  HelpManagerWindows.Clear;
     
    39904031  ProfileEvent( 'MainFormOnShow' );
    39914032
    3992   if Parameters.OwnerWindow <> NULLHANDLE then
     4033  if CmdLineParameters.getOwnerWindow <> NULLHANDLE then
    39934034  begin
    39944035    ProfileEvent( 'Setting owner: '
    3995                   + IntToStr( Parameters.OwnerWindow ) );
     4036                  + IntToStr( CmdLineParameters.getOwnerWindow ) );
    39964037    WinSetOwner( Frame.Handle,
    3997                  Parameters.OwnerWindow );
    3998 
    3999   end;
    4000 
    4001   if Parameters.IsHelpManager then
     4038                 CmdLineParameters.getOwnerWindow );
     4039
     4040  end;
     4041
     4042  if CmdLineParameters.getHelpManagerFlag then
    40024043  begin
    40034044    ProfileEvent( '  Help Manager Title: '
     
    41044145  ProfileEvent( 'WMOpened: SetLayout' );
    41054146
    4106   if Parameters.IsHelpManager then
     4147  if CmdLineParameters.getHelpManagerFlag then
    41074148    FShowLeftPanel := Settings.ShowLeftPanel_Help
    41084149  else
     
    41234164  Update;
    41244165
    4125   if not Parameters.IsHelpManager then
     4166  if not CmdLineParameters.getHelpManagerFlag then
    41264167  begin
    41274168    ProfileEvent( 'Check environment vars' );
    41284169    CheckEnvironmentVars;
    41294170
    4130     if Parameters.ShowUsageFlag then
     4171    if CmdLineParameters.getShowUsageFlag then
    41314172    begin
    41324173      ProfileEvent( 'Showing usage' );
     
    41364177  end;
    41374178
    4138   HelpManagerWindows.Add( pointer( Parameters.HelpManagerWindow ) );
    4139 
    4140   if Parameters.FilenamesParam.Length > 0 then
     4179  HelpManagerWindows.Add( pointer( CmdLineParameters.getHelpManagerWindow ) );
     4180
     4181  if length(CmdLineParameters.getFileNames) > 0 then
    41414182  begin
    41424183    // open specified files
    41434184    Filenames := TStringList.Create;
    41444185
    4145     AStringToList( Parameters.FilenamesParam, Filenames, '+' );
     4186    // TODO rbri remove type conversion
     4187    StringToList(cmdLineParameters.getFileNames, Filenames, '+' );
    41464188
    41474189    ProfileEvent( 'Call OpenFiles' );
    41484190
    41494191    OpenFirstTopic := true;
    4150     if    ( Parameters.TopicParam <> '' )
    4151        or Parameters.SearchFlag then
     4192    if    ( CmdLineParameters.getTopics <> '' )
     4193       or CmdLineParameters.getSearchTextFlag then
    41524194      // if we're going to search, don't open first topic
    41534195      OpenFirstTopic := false;
    41544196
    4155     if Parameters.IsHelpManager then
     4197    if CmdLineParameters.getHelpManagerFlag then
    41564198      // don't open first topic if we're online help
    41574199      // in case we are wanting to show a specific topic
     
    41604202
    41614203    OpenFiles( Filenames,
    4162                Parameters.WindowTitle,
     4204               CmdLineParameters.getWindowTitle,
    41634205               OpenFirstTopic );
    41644206
    41654207    Filenames.Destroy;
    41664208
    4167     if Parameters.TopicParam <> '' then
     4209    if CmdLineParameters.getTopics <> '' then
    41684210    begin
    41694211      // search in contents only!
    41704212      ProfileEvent( 'Do startup topic search' );
    41714213
    4172       StartupTopicSearch( Parameters.TopicParam );
     4214      StartupTopicSearch( CmdLineParameters.getTopics );
    41734215    end
    4174     else if Parameters.SearchFlag then
     4216    else if CmdLineParameters.getSearchTextFlag then
    41754217    begin
    41764218      // search in specified files
     
    41784220      DisplaySearch;
    41794221
    4180       SearchFor( Parameters.SearchText );
     4222      SearchFor( CmdLineParameters.getSearchText );
    41814223    end;
    41824224  end;
    41834225
    4184   if Parameters.GlobalSearchFlag then
     4226  if CmdLineParameters.getGlobalSearchTextFlag then
    41854227  begin
    41864228    // Global search
    4187     ProfileEvent( 'Do global search: ' + Parameters.GlobalSearchText );
    4188     DoGlobalSearch( Parameters.GlobalSearchText );
    4189   end;
    4190 
    4191   if     ( Parameters.FilenamesParam.Length = 0 )
    4192      and ( not Parameters.GlobalSearchFlag ) then
     4229    ProfileEvent( 'Do global search: ' + CmdLineParameters.getGlobalSearchText );
     4230    DoGlobalSearch( CmdLineParameters.getGlobalSearchText );
     4231  end;
     4232
     4233  if     ( length(CmdLineParameters.getFileNames) = 0 )
     4234     and ( not CmdLineParameters.getGlobalSearchTextFlag ) then
    41934235  begin
    41944236    // user hasn't requested any particular file
     
    42134255  ProfileEvent( 'Open finished' );
    42144256
    4215   if Parameters.IsHelpManager then
     4257  if CmdLineParameters.getHelpManagerFlag then
    42164258  begin
    42174259    // Tell helpmanager(s) our window handle
     
    47574799  begin
    47584800    SearchResultsListBox.Items.Add(   NoSearchMatchesMsg
    4759                                     + ': ' 
     4801                                    + ': '
    47604802                                    + SearchText );
    47614803    RefreshWindows( Windows ); // update to remove old highlights
     
    66636705                FirstContentsNode );
    66646706
    6665   if Parameters.IsHelpManager then
     6707  if CmdLineParameters.getHelpManagerFlag then
    66666708    ShowLeftPanel := Settings.ShowLeftPanel_Help
    66676709  else
Note: See TracChangeset for help on using the changeset viewer.