diff --git a/ide/helpmanager.pas b/ide/helpmanager.pas index ee606b3f9b..4e27695d56 100644 --- a/ide/helpmanager.pas +++ b/ide/helpmanager.pas @@ -130,7 +130,6 @@ type TIDEHelpManager = class(TBaseHelpManager) // help menu of the IDE menu bar procedure mnuHelpAboutLazarusClicked(Sender: TObject); - procedure mnuHelpConfigureHelpClicked(Sender: TObject); procedure mnuHelpOnlineHelpClicked(Sender: TObject); procedure mnuHelpReportBugClicked(Sender: TObject); private @@ -652,12 +651,6 @@ begin ShowAboutForm; end; -procedure TIDEHelpManager.mnuHelpConfigureHelpClicked(Sender: TObject); -begin - if ShowHelpOptionsDialog=mrOk then - SaveHelpOptions; -end; - procedure TIDEHelpManager.mnuHelpOnlineHelpClicked(Sender: TObject); begin ShowLazarusHelpStartPage; @@ -941,11 +934,11 @@ end; procedure TIDEHelpManager.ConnectMainBarEvents; begin - with MainIDEBar do begin - itmHelpAboutLazarus.OnClick := @mnuHelpAboutLazarusClicked; - itmHelpOnlineHelp.OnClick := @mnuHelpOnlineHelpClicked; - itmHelpReportingBug.OnClick := @mnuHelpReportBugClicked; - itmHelpConfigureHelp.OnClick :=@mnuHelpConfigureHelpClicked; + with MainIDEBar do + begin + itmHelpAboutLazarus.OnClick := @mnuHelpAboutLazarusClicked; + itmHelpOnlineHelp.OnClick := @mnuHelpOnlineHelpClicked; + itmHelpReportingBug.OnClick := @mnuHelpReportBugClicked; end; end; diff --git a/ide/helpoptions.lfm b/ide/helpoptions.lfm index 39fea8fcc2..2fd3f9ea66 100644 --- a/ide/helpoptions.lfm +++ b/ide/helpoptions.lfm @@ -1,6 +1,6 @@ object HelpOptionsDialog: THelpOptionsDialog AnchorSideBottom.Side = asrBottom - Left = 264 + Left = 599 Height = 363 Top = 234 Width = 500 @@ -15,24 +15,24 @@ object HelpOptionsDialog: THelpOptionsDialog LCLVersion = '0.9.27' object MainNotebook: TNotebook Left = 0 - Height = 315 + Height = 325 Top = 0 Width = 500 Align = alClient BorderSpacing.Bottom = 6 - PageIndex = 0 + PageIndex = 2 TabOrder = 0 object GeneralPage: TPage Caption = 'GeneralPage' - ClientWidth = 498 - ClientHeight = 288 + ClientWidth = 492 + ClientHeight = 299 object FPCDocHTMLLabel: TLabel AnchorSideLeft.Control = GeneralPage AnchorSideTop.Control = GeneralPage Left = 6 - Height = 18 + Height = 14 Top = 6 - Width = 486 + Width = 480 Align = alTop BorderSpacing.Around = 6 Caption = 'FPCDocHTMLLabel' @@ -44,9 +44,9 @@ object HelpOptionsDialog: THelpOptionsDialog AnchorSideTop.Side = asrBottom AnchorSideRight.Control = FPCDocHTMLBrowseButton Left = 6 - Height = 27 - Top = 30 - Width = 463 + Height = 23 + Top = 26 + Width = 457 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 6 BorderSpacing.Top = 6 @@ -60,9 +60,9 @@ object HelpOptionsDialog: THelpOptionsDialog AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = FPCDocHTMLEdit AnchorSideBottom.Side = asrBottom - Left = 469 - Height = 27 - Top = 30 + Left = 463 + Height = 23 + Top = 26 Width = 23 Anchors = [akTop, akRight, akBottom] BorderSpacing.Right = 6 @@ -73,8 +73,8 @@ object HelpOptionsDialog: THelpOptionsDialog end object ViewersPage: TPage Caption = 'ViewersPage' - ClientWidth = 498 - ClientHeight = 298 + ClientWidth = 492 + ClientHeight = 299 object ViewersLabel: TLabel AnchorSideTop.Control = ViewerPropsGroupBox Left = 6 @@ -91,7 +91,7 @@ object HelpOptionsDialog: THelpOptionsDialog AnchorSideBottom.Control = ViewersPage AnchorSideBottom.Side = asrBottom Left = 6 - Height = 266 + Height = 267 Top = 26 Width = 152 Anchors = [akTop, akLeft, akBottom] @@ -100,15 +100,14 @@ object HelpOptionsDialog: THelpOptionsDialog ItemHeight = 0 OnSelectionChange = ViewersListBoxSelectionChange TabOrder = 0 - TopIndex = -1 end object ViewerPropsGroupBox: TGroupBox AnchorSideLeft.Control = ViewersListBox AnchorSideLeft.Side = asrBottom Left = 164 - Height = 286 + Height = 287 Top = 6 - Width = 328 + Width = 322 Align = alRight Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Around = 6 @@ -118,8 +117,8 @@ object HelpOptionsDialog: THelpOptionsDialog end object DataBasePage: TPage Caption = 'DataBasePage' - ClientWidth = 498 - ClientHeight = 298 + ClientWidth = 492 + ClientHeight = 299 object DatabasesLabel: TLabel AnchorSideTop.Control = DataBasesPropsGroupBox Left = 6 @@ -136,7 +135,7 @@ object HelpOptionsDialog: THelpOptionsDialog AnchorSideBottom.Control = DataBasePage AnchorSideBottom.Side = asrBottom Left = 6 - Height = 266 + Height = 267 Top = 26 Width = 152 Anchors = [akTop, akLeft, akBottom] @@ -145,15 +144,14 @@ object HelpOptionsDialog: THelpOptionsDialog ItemHeight = 0 OnSelectionChange = DatabasesListBoxSelectionChange TabOrder = 0 - TopIndex = -1 end object DataBasesPropsGroupBox: TGroupBox AnchorSideLeft.Control = DatabasesListBox AnchorSideLeft.Side = asrBottom Left = 164 - Height = 286 + Height = 287 Top = 6 - Width = 328 + Width = 322 Align = alRight Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Around = 6 @@ -164,8 +162,8 @@ object HelpOptionsDialog: THelpOptionsDialog end object ButtonPanel: TButtonPanel Left = 6 - Height = 36 - Top = 321 + Height = 26 + Top = 331 Width = 488 TabOrder = 1 ShowButtons = [pbOK, pbCancel, pbHelp] diff --git a/ide/helpoptions.lrs b/ide/helpoptions.lrs index 11aaf94bc4..111f2cc9f7 100644 --- a/ide/helpoptions.lrs +++ b/ide/helpoptions.lrs @@ -2,62 +2,62 @@ LazarusResources.Add('THelpOptionsDialog','FORMDATA',[ 'TPF0'#18'THelpOptionsDialog'#17'HelpOptionsDialog'#21'AnchorSideBottom.Side' - +#7#9'asrBottom'#4'Left'#3#8#1#6'Height'#3'k'#1#3'Top'#3#234#0#5'Width'#3#244 + +#7#9'asrBottom'#4'Left'#3'W'#2#6'Height'#3'k'#1#3'Top'#3#234#0#5'Width'#3#244 +#1#13'ActiveControl'#7#12'MainNotebook'#11'BorderIcons'#11#12'biSystemMenu'#0 +#7'Caption'#6#17'HelpOptionsDialog'#12'ClientHeight'#3'k'#1#11'ClientWidth'#3 +#244#1#7'OnClose'#7#22'HelpOptionsDialogClose'#8'OnCreate'#7#23'HelpOptionsD' +'ialogCreate'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.27'#0#9 - +'TNotebook'#12'MainNotebook'#4'Left'#2#0#6'Height'#3';'#1#3'Top'#2#0#5'Width' - +#3#244#1#5'Align'#7#8'alClient'#20'BorderSpacing.Bottom'#2#6#9'PageIndex'#2#0 + +'TNotebook'#12'MainNotebook'#4'Left'#2#0#6'Height'#3'E'#1#3'Top'#2#0#5'Width' + +#3#244#1#5'Align'#7#8'alClient'#20'BorderSpacing.Bottom'#2#6#9'PageIndex'#2#2 +#8'TabOrder'#2#0#0#5'TPage'#11'GeneralPage'#7'Caption'#6#11'GeneralPage'#11 - +'ClientWidth'#3#242#1#12'ClientHeight'#3' '#1#0#6'TLabel'#15'FPCDocHTMLLabel' + +'ClientWidth'#3#236#1#12'ClientHeight'#3'+'#1#0#6'TLabel'#15'FPCDocHTMLLabel' +#22'AnchorSideLeft.Control'#7#11'GeneralPage'#21'AnchorSideTop.Control'#7#11 - +'GeneralPage'#4'Left'#2#6#6'Height'#2#18#3'Top'#2#6#5'Width'#3#230#1#5'Align' + +'GeneralPage'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#6#5'Width'#3#224#1#5'Align' +#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#15'FPCDocHTMLLabel'#11 +'ParentColor'#8#0#0#5'TEdit'#14'FPCDocHTMLEdit'#22'AnchorSideLeft.Control'#7 +#11'GeneralPage'#21'AnchorSideTop.Control'#7#15'FPCDocHTMLLabel'#18'AnchorSi' +'deTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#22'FPCDocHTMLBrows' - +'eButton'#4'Left'#2#6#6'Height'#2#27#3'Top'#2#30#5'Width'#3#207#1#7'Anchors' + +'eButton'#4'Left'#2#6#6'Height'#2#23#3'Top'#2#26#5'Width'#3#201#1#7'Anchors' +#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#6#17'BorderSpac' +'ing.Top'#2#6#20'BorderSpacing.Bottom'#2#6#8'TabOrder'#2#0#4'Text'#6#14'FPCD' +'ocHTMLEdit'#0#0#7'TButton'#22'FPCDocHTMLBrowseButton'#21'AnchorSideTop.Cont' +'rol'#7#14'FPCDocHTMLEdit'#23'AnchorSideRight.Control'#7#11'GeneralPage'#20 +'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#14'FPCD' - +'ocHTMLEdit'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#213#1#6'Heig' - +'ht'#2#27#3'Top'#2#30#5'Width'#2#23#7'Anchors'#11#5'akTop'#7'akRight'#8'akBo' + +'ocHTMLEdit'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#207#1#6'Heig' + +'ht'#2#23#3'Top'#2#26#5'Width'#2#23#7'Anchors'#11#5'akTop'#7'akRight'#8'akBo' +'ttom'#0#19'BorderSpacing.Right'#2#6#7'Caption'#6#3'...'#7'OnClick'#7#27'FPC' +'DocHTMLBrowseButtonClick'#8'TabOrder'#2#1#0#0#0#5'TPage'#11'ViewersPage'#7 - +'Caption'#6#11'ViewersPage'#11'ClientWidth'#3#242#1#12'ClientHeight'#3'*'#1#0 + +'Caption'#6#11'ViewersPage'#11'ClientWidth'#3#236#1#12'ClientHeight'#3'+'#1#0 +#6'TLabel'#12'ViewersLabel'#21'AnchorSideTop.Control'#7#19'ViewerPropsGroupB' +'ox'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#6#5'Width'#2'?'#7'Caption'#6#12'Vie' +'wersLabel'#11'ParentColor'#8#0#0#8'TListBox'#14'ViewersListBox'#22'AnchorSi' +'deLeft.Control'#7#11'ViewersPage'#21'AnchorSideTop.Control'#7#12'ViewersLab' +'el'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#11 +'ViewersPage'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height' - +#3#10#1#3'Top'#2#26#5'Width'#3#152#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBo' + +#3#11#1#3'Top'#2#26#5'Width'#3#152#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBo' +'ttom'#0#20'BorderSpacing.Around'#2#6#16'ClickOnSelChange'#8#10'ItemHeight'#2 +#0#17'OnSelectionChange'#7#29'ViewersListBoxSelectionChange'#8'TabOrder'#2#0 - +#8'TopIndex'#2#255#0#0#9'TGroupBox'#19'ViewerPropsGroupBox'#22'AnchorSideLef' - +'t.Control'#7#14'ViewersListBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#4'Le' - +'ft'#3#164#0#6'Height'#3#30#1#3'Top'#2#6#5'Width'#3'H'#1#5'Align'#7#7'alRigh' - +'t'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSpaci' - +'ng.Around'#2#6#7'Caption'#6#19'ViewerPropsGroupBox'#8'TabOrder'#2#1#0#0#0#5 - +'TPage'#12'DataBasePage'#7'Caption'#6#12'DataBasePage'#11'ClientWidth'#3#242 - +#1#12'ClientHeight'#3'*'#1#0#6'TLabel'#14'DatabasesLabel'#21'AnchorSideTop.C' - +'ontrol'#7#22'DataBasesPropsGroupBox'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#6#5 - +'Width'#2'M'#7'Caption'#6#14'DatabasesLabel'#11'ParentColor'#8#0#0#8'TListBo' - +'x'#16'DatabasesListBox'#22'AnchorSideLeft.Control'#7#12'DataBasePage'#21'An' - +'chorSideTop.Control'#7#14'DatabasesLabel'#18'AnchorSideTop.Side'#7#9'asrBot' - +'tom'#24'AnchorSideBottom.Control'#7#12'DataBasePage'#21'AnchorSideBottom.Si' - +'de'#7#9'asrBottom'#4'Left'#2#6#6'Height'#3#10#1#3'Top'#2#26#5'Width'#3#152#0 - +#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#20'BorderSpacing.Around'#2#6 - +#16'ClickOnSelChange'#8#10'ItemHeight'#2#0#17'OnSelectionChange'#7#31'Databa' - +'sesListBoxSelectionChange'#8'TabOrder'#2#0#8'TopIndex'#2#255#0#0#9'TGroupBo' - +'x'#22'DataBasesPropsGroupBox'#22'AnchorSideLeft.Control'#7#16'DatabasesList' - +'Box'#19'AnchorSideLeft.Side'#7#9'asrBottom'#4'Left'#3#164#0#6'Height'#3#30#1 - +#3'Top'#2#6#5'Width'#3'H'#1#5'Align'#7#7'alRight'#7'Anchors'#11#5'akTop'#6'a' - +'kLeft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#22 - +'DataBasesPropsGroupBox'#8'TabOrder'#2#1#0#0#0#0#12'TButtonPanel'#11'ButtonP' - +'anel'#4'Left'#2#6#6'Height'#2'$'#3'Top'#3'A'#1#5'Width'#3#232#1#8'TabOrder' - +#2#1#11'ShowButtons'#11#4'pbOK'#8'pbCancel'#6'pbHelp'#0#9'ShowBevel'#8#0#0#0 + +#0#0#9'TGroupBox'#19'ViewerPropsGroupBox'#22'AnchorSideLeft.Control'#7#14'Vi' + +'ewersListBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#4'Left'#3#164#0#6'Heig' + +'ht'#3#31#1#3'Top'#2#6#5'Width'#3'B'#1#5'Align'#7#7'alRight'#7'Anchors'#11#5 + +'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#7'Ca' + +'ption'#6#19'ViewerPropsGroupBox'#8'TabOrder'#2#1#0#0#0#5'TPage'#12'DataBase' + +'Page'#7'Caption'#6#12'DataBasePage'#11'ClientWidth'#3#236#1#12'ClientHeight' + +#3'+'#1#0#6'TLabel'#14'DatabasesLabel'#21'AnchorSideTop.Control'#7#22'DataBa' + +'sesPropsGroupBox'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#6#5'Width'#2'M'#7'Cap' + +'tion'#6#14'DatabasesLabel'#11'ParentColor'#8#0#0#8'TListBox'#16'DatabasesLi' + +'stBox'#22'AnchorSideLeft.Control'#7#12'DataBasePage'#21'AnchorSideTop.Contr' + +'ol'#7#14'DatabasesLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'AnchorSid' + +'eBottom.Control'#7#12'DataBasePage'#21'AnchorSideBottom.Side'#7#9'asrBottom' + +#4'Left'#2#6#6'Height'#3#11#1#3'Top'#2#26#5'Width'#3#152#0#7'Anchors'#11#5'a' + +'kTop'#6'akLeft'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#16'ClickOnSelCha' + +'nge'#8#10'ItemHeight'#2#0#17'OnSelectionChange'#7#31'DatabasesListBoxSelect' + +'ionChange'#8'TabOrder'#2#0#0#0#9'TGroupBox'#22'DataBasesPropsGroupBox'#22'A' + +'nchorSideLeft.Control'#7#16'DatabasesListBox'#19'AnchorSideLeft.Side'#7#9'a' + +'srBottom'#4'Left'#3#164#0#6'Height'#3#31#1#3'Top'#2#6#5'Width'#3'B'#1#5'Ali' + +'gn'#7#7'alRight'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0 + +#20'BorderSpacing.Around'#2#6#7'Caption'#6#22'DataBasesPropsGroupBox'#8'TabO' + +'rder'#2#1#0#0#0#0#12'TButtonPanel'#11'ButtonPanel'#4'Left'#2#6#6'Height'#2 + +#26#3'Top'#3'K'#1#5'Width'#3#232#1#8'TabOrder'#2#1#11'ShowButtons'#11#4'pbOK' + +#8'pbCancel'#6'pbHelp'#0#9'ShowBevel'#8#0#0#0 ]); diff --git a/ide/helpoptions.pas b/ide/helpoptions.pas index 41ca868d5c..e44c84c220 100644 --- a/ide/helpoptions.pas +++ b/ide/helpoptions.pas @@ -26,7 +26,7 @@ Author: Mattias Gaertner Abstract: - - THelpOptions and THelpOptsDlg + - THelpOptions } unit HelpOptions; @@ -38,12 +38,12 @@ uses Classes, SysUtils, LCLProc, LResources, Forms, Controls, Graphics, Dialogs, FileUtil, StdCtrls, Buttons, ExtCtrls, IDEContextHelpEdit, EnvironmentOpts, ObjectInspector, LazHelpIntf, IDEWindowIntf, IDEDialogs, Laz_XMLCfg, - LazConf, LazarusIDEStrConsts, IDEProcs, IDEOptionDefs, ButtonPanel; + LazConf, LazarusIDEStrConsts, IDEProcs, IDEOptionDefs, IDEOptionsIntf, ButtonPanel; type { THelpOptions } - THelpOptions = class + THelpOptions = class(TAbstractIDEOptions) private FFilename: string; FFPCDocsHTMLDirectory: string; @@ -51,12 +51,11 @@ type procedure SetFilename(const AValue: string); public constructor Create; - destructor Destroy; override; procedure Clear; procedure Load; procedure Save; procedure SetDefaultFilename; - procedure Assign(HelpOpts: THelpOptions); + procedure Assign(Source: TPersistent); override; function IsEqual(HelpOpts: THelpOptions): boolean; function CreateCopy: THelpOptions; public @@ -66,44 +65,6 @@ type write SetFPCDocsHTMLDirectory; end; - - { THelpOptionsDialog } - - THelpOptionsDialog = class(TForm) - ButtonPanel: TButtonPanel; - FPCDocHTMLBrowseButton: TButton; - FPCDocHTMLEdit: TEdit; - FPCDocHTMLLabel: TLabel; - DataBasePage: TPage; - DatabasesLabel: TLabel; - DataBasesPropsGroupBox: TGroupBox; - DatabasesListBox: TListBox; - GeneralPage: TPage; - ViewerPropsGroupBox: TGroupBox; - ViewersLabel: TLabel; - ViewersListBox: TListBox; - MainNotebook: TNotebook; - ViewersPage: TPage; - procedure HelpButtonClick(Sender: TObject); - procedure CancelButtonClick(Sender: TObject); - procedure DatabasesListBoxSelectionChange(Sender: TObject; User: boolean); - procedure FPCDocHTMLBrowseButtonClick(Sender: TObject); - procedure HelpOptionsDialogClose(Sender: TObject; - var CloseAction: TCloseAction); - procedure HelpOptionsDialogCreate(Sender: TObject); - procedure OkButtonClick(Sender: TObject); - procedure ViewersListBoxSelectionChange(Sender: TObject; User: boolean); - private - public - ViewersPropertiesGrid: TCustomPropertiesGrid; - DatabasesPropertiesGrid: TCustomPropertiesGrid; - procedure FillGeneralPage; - procedure FillViewersList; - procedure FillViewerPropGrid; - procedure FillDatabasesList; - procedure FillDatabasesPropGrid; - end; - var HelpOpts: THelpOptions; // set by the IDE @@ -111,208 +72,20 @@ const HelpOptionsVersion = 1; DefaultHelpOptsFile = 'helpoptions.xml'; -function ShowHelpOptionsDialog: TModalResult; - - implementation -function ShowHelpOptionsDialog: TModalResult; -var - HelpOptionsDialog: THelpOptionsDialog; -begin - HelpOptionsDialog:=THelpOptionsDialog.Create(nil); - try - Result:=HelpOptionsDialog.ShowModal; - finally - HelpOptionsDialog.Free; - end; -end; - -{ THelpOptionsDialog } - -procedure THelpOptionsDialog.HelpOptionsDialogCreate(Sender: TObject); -begin - IDEDialogLayoutList.ApplyLayout(Self,500,300); - - Caption:=lisHlpOptsHelpOptions; - - ButtonPanel.OKButton.OnClick := @OKButtonClick; - ButtonPanel.HelpButton.OnClick := @HelpButtonClick; - ButtonPanel.CancelButton.OnClick := @CancelButtonClick; - - GeneralPage.Caption:=lisMenuInsertGeneral; - FPCDocHTMLLabel.Caption:=lisHOFPCDocHTMLPath; - ViewersPage.Caption:=lisHlpOptsViewers; - ViewerPropsGroupBox.Caption:=lisHlpOptsProperties; - ViewersLabel.Caption:=lisHlpOptsViewers; - DataBasePage.Caption:=lisHlpOptsDatabases; - DataBasesPropsGroupBox.Caption:=lisHlpOptsProperties; - DatabasesLabel.Caption:=lisHlpOptsDatabases; - - ViewersPropertiesGrid := TCustomPropertiesGrid.Create(Self); - with ViewersPropertiesGrid do - begin - Name := 'ViewersPropertiesGrid'; - Parent := ViewerPropsGroupBox; - Align := alClient; - BorderSpacing.Around := 6; - end; - - DatabasesPropertiesGrid := TCustomPropertiesGrid.Create(Self); - with DatabasesPropertiesGrid do - begin - Name := 'DatabasesPropertiesGrid'; - Parent := DataBasesPropsGroupBox; - Align := alClient; - BorderSpacing.Around := 6; - end; - - with EnvironmentOptions.ObjectInspectorOptions do - begin - AssignTo(ViewersPropertiesGrid); - AssignTo(DatabasesPropertiesGrid); - end; - - FillGeneralPage; - FillViewersList; - FillViewerPropGrid; - FillDatabasesList; - FillDatabasesPropGrid; -end; - -procedure THelpOptionsDialog.OkButtonClick(Sender: TObject); -begin - HelpOpts.FPCDocsHTMLDirectory:=FPCDocHTMLEdit.Text; - ModalResult:=mrOk; -end; - -procedure THelpOptionsDialog.ViewersListBoxSelectionChange(Sender: TObject; - User: boolean); -begin - FillViewerPropGrid; -end; - -procedure THelpOptionsDialog.FillGeneralPage; -begin - FPCDocHTMLEdit.Text:=HelpOpts.FPCDocsHTMLDirectory; -end; - -procedure THelpOptionsDialog.FillViewersList; -var - i: Integer; - Viewer: THelpViewer; -begin - if (HelpViewers=nil) then begin - ViewersListBox.Items.Clear; - exit; - end; - ViewersListBox.Items.BeginUpdate; - for i:=0 to HelpViewers.Count-1 do begin - Viewer:=HelpViewers[i]; - if ViewersListBox.Items.Count>i then - ViewersListBox.Items[i]:=Viewer.GetLocalizedName - else - ViewersListBox.Items.Add(Viewer.GetLocalizedName); - end; - while ViewersListBox.Items.Count>HelpViewers.Count do - ViewersListBox.Items.Delete(ViewersListBox.Items.Count-1); - if (ViewersListBox.ItemIndex<0) and (ViewersListBox.Items.Count>0) then - ViewersListBox.ItemIndex:=0; - ViewersListBox.Items.EndUpdate; -end; - -procedure THelpOptionsDialog.FillViewerPropGrid; -var - i: LongInt; -begin - i:=ViewersListBox.ItemIndex; - if (HelpViewers=nil) or (i<0) or (i>=HelpViewers.Count) then begin - ViewersPropertiesGrid.TIObject:=nil; - end else begin - ViewersPropertiesGrid.TIObject:=HelpViewers[i]; - end; -end; - -procedure THelpOptionsDialog.FillDatabasesList; -var - i: Integer; - HelpDB: THelpDatabase; -begin - if (HelpDatabases=nil) then begin - DatabasesListBox.Items.Clear; - exit; - end; - DatabasesListBox.Items.BeginUpdate; - for i:=0 to HelpDatabases.Count-1 do begin - HelpDB:=HelpDatabases[i]; - if DatabasesListBox.Items.Count>i then - DatabasesListBox.Items[i]:=HelpDB.GetLocalizedName - else - DatabasesListBox.Items.Add(HelpDB.GetLocalizedName); - end; - while DatabasesListBox.Items.Count>HelpDatabases.Count do - DatabasesListBox.Items.Delete(DatabasesListBox.Items.Count-1); - if (DatabasesListBox.ItemIndex<0) and (DatabasesListBox.Items.Count>0) then - DatabasesListBox.ItemIndex:=0; - DatabasesListBox.Items.EndUpdate; -end; - -procedure THelpOptionsDialog.FillDatabasesPropGrid; -var - i: LongInt; -begin - i:=DatabasesListBox.ItemIndex; - if (HelpDatabases=nil) or (i<0) or (i>=HelpDatabases.Count) then begin - DatabasesPropertiesGrid.TIObject:=nil; - end else begin - DatabasesPropertiesGrid.TIObject:=HelpDatabases[i]; - end; -end; - -procedure THelpOptionsDialog.HelpOptionsDialogClose(Sender: TObject; - var CloseAction: TCloseAction); -begin - IDEDialogLayoutList.SaveLayout(Self); -end; - -procedure THelpOptionsDialog.CancelButtonClick(Sender: TObject); -begin - // ToDo: restore backup - ModalResult:=mrCancel; -end; - -procedure THelpOptionsDialog.HelpButtonClick(Sender: TObject); -begin - ShowContextHelpForIDE(Self); -end; - -procedure THelpOptionsDialog.DatabasesListBoxSelectionChange(Sender: TObject; - User: boolean); -begin - FillDatabasesPropGrid; -end; - -procedure THelpOptionsDialog.FPCDocHTMLBrowseButtonClick(Sender: TObject); -var - NewFilename: String; -begin - NewFilename:=LazSelectDirectory('FPC Doc HTML directory',''); - if NewFilename='' then exit; - FPCDocHTMLEdit.Text:=NewFilename; -end; - { THelpOptions } procedure THelpOptions.SetFilename(const AValue: string); begin - if FFilename=AValue then exit; - FFilename:=AValue; + if FFilename = AValue then Exit; + FFilename := AValue; end; procedure THelpOptions.SetFPCDocsHTMLDirectory(const AValue: string); begin - if FFPCDocsHTMLDirectory=AValue then exit; - FFPCDocsHTMLDirectory:=AValue; + if FFPCDocsHTMLDirectory = AValue then Exit; + FFPCDocsHTMLDirectory := AValue; end; constructor THelpOptions.Create; @@ -320,14 +93,9 @@ begin Clear; end; -destructor THelpOptions.Destroy; -begin - inherited Destroy; -end; - procedure THelpOptions.Clear; begin - FFPCDocsHTMLDirectory:=''; + FFPCDocsHTMLDirectory := ''; end; procedure THelpOptions.Load; @@ -337,16 +105,17 @@ var Storage: TXMLOptionsStorage; begin try - XMLConfig:=TXMLConfig.Create(FFileName); + XMLConfig := TXMLConfig.Create(FFileName); try - FileVersion:=XMLConfig.GetValue('HelpOptions/Version/Value',0); - if (FileVersion<>0) and (FileVersion 0) and (FileVersion < HelpOptionsVersion) then DebugLn('Note: Loading old Help options file', FFileName); FPCDocsHTMLDirectory:= XMLConfig.GetValue('HelpOptions/FPCDocs/HTML/Directory',''); - if HelpViewers<>nil then begin - Storage:=TXMLOptionsStorage.Create(XMLConfig,'Viewers'); + if HelpViewers <> nil then + begin + Storage := TXMLOptionsStorage.Create(XMLConfig, 'Viewers'); try HelpViewers.Load(Storage); finally @@ -354,8 +123,9 @@ begin end; end; - if HelpDatabases<>nil then begin - Storage:=TXMLOptionsStorage.Create(XMLConfig,'Databases'); + if HelpDatabases <> nil then + begin + Storage := TXMLOptionsStorage.Create(XMLConfig,'Databases'); try HelpDatabases.Load(Storage); finally @@ -367,9 +137,8 @@ begin XMLConfig.Free; end; except - on E: Exception do begin + on E: Exception do DebugLn('[THelpOptions.Load] error reading "',FFilename,'": ',E.Message); - end; end; end; @@ -386,8 +155,9 @@ begin XMLConfig.SetDeleteValue('HelpOptions/FPCDocs/HTML/Directory', FPCDocsHTMLDirectory,''); - if HelpViewers<>nil then begin - Storage:=TXMLOptionsStorage.Create(XMLConfig,'Viewers'); + if HelpViewers <> nil then + begin + Storage := TXMLOptionsStorage.Create(XMLConfig,'Viewers'); try HelpViewers.Save(Storage); finally @@ -395,8 +165,9 @@ begin end; end; - if HelpDatabases<>nil then begin - Storage:=TXMLOptionsStorage.Create(XMLConfig,'Databases'); + if HelpDatabases <> nil then + begin + Storage := TXMLOptionsStorage.Create(XMLConfig,'Databases'); try HelpDatabases.Save(Storage); finally @@ -409,9 +180,8 @@ begin XMLConfig.Free; end; except - on E: Exception do begin + on E: Exception do DebugLn('[THelpOptions.Save] error writing "',FFilename,'": ',E.Message); - end; end; end; @@ -419,33 +189,33 @@ procedure THelpOptions.SetDefaultFilename; var ConfFileName: string; begin - ConfFileName:=SetDirSeparators( - GetPrimaryConfigPath+'/'+DefaultHelpOptsFile); + ConfFileName := SetDirSeparators(GetPrimaryConfigPath+'/'+DefaultHelpOptsFile); CopySecondaryConfigFile(DefaultHelpOptsFile); - if (not FileExistsUTF8(ConfFileName)) then begin + if (not FileExistsUTF8(ConfFileName)) then DebugLn('NOTE: help options config file not found - using defaults'); - end; - FFilename:=ConfFilename; + FFilename := ConfFilename; end; -procedure THelpOptions.Assign(HelpOpts: THelpOptions); +procedure THelpOptions.Assign(Source: TPersistent); begin - FPCDocsHTMLDirectory:=HelpOpts.FPCDocsHTMLDirectory; + if Source is THelpOptions then + FPCDocsHTMLDirectory := THelpOptions(Source).FPCDocsHTMLDirectory + else + inherited Assign(Source); end; function THelpOptions.IsEqual(HelpOpts: THelpOptions): boolean; begin - Result:=FPCDocsHTMLDirectory=HelpOpts.FPCDocsHTMLDirectory; + Result := FPCDocsHTMLDirectory = HelpOpts.FPCDocsHTMLDirectory; end; function THelpOptions.CreateCopy: THelpOptions; begin - Result:=THelpOptions.Create; + Result := THelpOptions.Create; Result.Assign(Self); end; initialization - {$I helpoptions.lrs} - + RegisterIDEOptionsGroup(GroupHelp, dlgGroupHelp); end. diff --git a/ide/keymapping.pp b/ide/keymapping.pp index a63526992a..9298b6802a 100644 --- a/ide/keymapping.pp +++ b/ide/keymapping.pp @@ -540,7 +540,6 @@ begin // help menu ecAboutLazarus: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]); ecOnlineHelp: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]); - ecConfigureHelp: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]); ecContextHelp: SetResult(VK_F1,[],VK_UNKNOWN,[]); ecEditContextHelp: SetResult(VK_F1,[ssShift,ssCtrl],VK_UNKNOWN,[]); ecReportingBug: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]); @@ -883,7 +882,6 @@ begin // help menu ecAboutLazarus: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]); ecOnlineHelp: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]); - ecConfigureHelp: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]); ecContextHelp: SetResult(VK_F1,[ssCtrl],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]); ecEditContextHelp: SetResult(VK_F1,[ssCtrl,ssShift],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]); ecReportingBug: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]); @@ -1414,7 +1412,6 @@ begin // help menu ecAboutLazarus: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]); ecOnlineHelp: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]); - ecConfigureHelp: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]); ecContextHelp: SetResult(VK_HELP,[],VK_UNKNOWN,[]); ecEditContextHelp: SetResult(VK_HELP,[ssShift,ssCtrl],VK_HELP,[ssCtrl]); ecReportingBug: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]); @@ -1822,7 +1819,6 @@ begin // help menu ecAboutLazarus : Result:= lisAboutLazarus; ecOnlineHelp : Result:= lisMenuOnlineHelp; - ecConfigureHelp : Result:= lisMenuConfigureHelp; ecContextHelp : Result:= lisMenuContextHelp; ecEditContextHelp : Result:= lisMenuEditContextHelp; ecReportingBug : Result:= lisMenuReportingBug; @@ -2395,7 +2391,6 @@ begin C:=Categories[AddCategory('HelpMenu',srkmCarHelpMenu,nil)]; AddDefault(C, 'About Lazarus', lisAboutLazarus, ecAboutLazarus); AddDefault(C, 'Online Help', lisMenuOnlineHelp, ecOnlineHelp); - AddDefault(C, 'Configure Help', lisKMConfigureHelp, ecConfigureHelp); AddDefault(C, 'Context sensitive help', lisKMContextSensitiveHelp, ecContextHelp); AddDefault(C, 'Edit context sensitive help', lisKMEditContextSensitiveHelp, diff --git a/ide/lazarus.lpi b/ide/lazarus.lpi index 2715b5e5e6..3d084bab38 100644 --- a/ide/lazarus.lpi +++ b/ide/lazarus.lpi @@ -40,7 +40,7 @@ - + @@ -311,6 +311,21 @@ + + + + + + + + + + + + + + + diff --git a/ide/lazarusidestrconsts.pas b/ide/lazarusidestrconsts.pas index feee67654a..abd5f7db04 100644 --- a/ide/lazarusidestrconsts.pas +++ b/ide/lazarusidestrconsts.pas @@ -870,6 +870,7 @@ resourcestring dlgGroupCodetools = 'Codetools'; dlgGroupCodeExplorer = 'Code Explorer'; dlgGroupDebugger = 'Debugger'; + dlgGroupHelp = 'Help'; // Options dialog dlgBakNoSubDirectory = '(no subdirectory)'; diff --git a/ide/main.pp b/ide/main.pp index c058174828..7cdb36001c 100644 --- a/ide/main.pp +++ b/ide/main.pp @@ -95,7 +95,7 @@ uses Project, ProjectDefs, NewProjectDlg, ProjectOpts, PublishProjectDlg, ProjectInspector, PackageDefs, // help manager - IDEContextHelpEdit, IDEHelpIntf, HelpManager, CodeHelp, + IDEContextHelpEdit, IDEHelpIntf, HelpManager, CodeHelp, HelpOptions, // designer JITForms, ComponentPalette, ComponentList, ComponentReg, ObjInspExt, Designer, FormEditor, CustomFormEditor, @@ -131,6 +131,7 @@ uses debugger_language_exceptions_options, debugger_signals_options, codeexplorer_update_options, codeexplorer_categories_options, codeobserver_options, + help_general_options, PublishModule, EnvironmentOpts, TransferMacros, KeyMapping, IDETranslations, IDEProcs, ExtToolDialog, ExtToolEditDlg, OutputFilter, JumpHistoryView, BuildLazDialog, MiscOptions, InputHistory, UnitDependencies, ClipBoardHistory, @@ -4121,6 +4122,8 @@ begin ReadSettings(CodeToolsOpts); // load settings from CodeExplorerOptions to IDEOptionsDialog ReadSettings(CodeExplorerOptions); + // load settings from HelpOptions to IDEOptionsDialog + ReadSettings(HelpOpts); // load other settings that does not belong to any group ReadSettings(nil); end; @@ -4136,6 +4139,7 @@ begin IDEOptionsDialog.WriteSettings(EditorOpts); IDEOptionsDialog.WriteSettings(CodeToolsOpts); IDEOptionsDialog.WriteSettings(CodeExplorerOptions); + IDEOptionsDialog.WriteSettings(HelpOpts); IDEOptionsDialog.WriteSettings(nil); ShowCompileDialog := EnvironmentOptions.ShowCompileDialog; @@ -4170,6 +4174,7 @@ begin CodeToolsOpts.AssignTo(CodeToolBoss); CodeToolsOpts.Save; CodeExplorerOptions.Save; + HelpBoss.SaveHelpOptions; // update environment UpdateDesigners; diff --git a/ide/mainbar.pas b/ide/mainbar.pas index 8ef8a56441..fbf42caa3b 100644 --- a/ide/mainbar.pas +++ b/ide/mainbar.pas @@ -321,7 +321,7 @@ type //itmOnlineHelps: TIDEMenuSection; itmHelpOnlineHelp: TIDEMenuCommand; itmHelpReportingBug: TIDEMenuCommand; - itmHelpConfigureHelp: TIDEMenuCommand; + //itmHelpConfigureHelp: TIDEMenuCommand; //itmInfoHelps: TIDEMenuSection; itmHelpAboutLazarus: TIDEMenuCommand; //itmHelpTools: TIDEMenuSection; diff --git a/ide/mainbase.pas b/ide/mainbase.pas index 866c7df2f7..b16922ef5d 100644 --- a/ide/mainbase.pas +++ b/ide/mainbase.pas @@ -777,8 +777,6 @@ begin lisMenuOnlineHelp, 'menu_help'); CreateMenuItem(ParentMI,itmHelpReportingBug,'itmHelpReportingBug', lisMenuReportingBug, 'menu_reportingbug'); - CreateMenuItem(ParentMI,itmHelpConfigureHelp,'itmHelpConfigureHelp', - lisMenuConfigureHelp, 'menu_configure_help'); CreateMenuSeparatorSection(mnuHelp,itmInfoHelps,'itmInfoHelps'); ParentMI:=itmInfoHelps; @@ -975,7 +973,6 @@ begin itmHelpAboutLazarus.Command:=GetCommand(ecAboutLazarus); itmHelpOnlineHelp.Command:=GetCommand(ecOnlineHelp); itmHelpReportingBug.Command:=GetCommand(ecReportingBug); - itmHelpConfigureHelp.Command:=GetCommand(ecConfigureHelp); end; end; diff --git a/ideintf/idecommands.pas b/ideintf/idecommands.pas index 8cf4ea01a4..8f84e7771f 100644 --- a/ideintf/idecommands.pas +++ b/ideintf/idecommands.pas @@ -274,7 +274,7 @@ const // help menu ecAboutLazarus = ecFirstLazarus + 900; ecOnlineHelp = ecFirstLazarus + 901; - ecConfigureHelp = ecFirstLazarus + 902; + ecReserved3 = ecFirstLazarus + 902; // reserved ecContextHelp = ecFirstLazarus + 903; ecEditContextHelp = ecFirstLazarus + 904; ecReportingBug = ecFirstLazarus + 905; diff --git a/ideintf/ideoptionsintf.pas b/ideintf/ideoptionsintf.pas index 4afe7d2218..bc6fc02fbe 100644 --- a/ideintf/ideoptionsintf.pas +++ b/ideintf/ideoptionsintf.pas @@ -158,6 +158,9 @@ const DbgOptionsLanguageExceptions = 300; DbgOptionsSignals = 400; + GroupHelp = 500; + HlpOptionsGeneral = 100; + implementation var FIDEEditorGroups: TIDEOptionsGroupList;