ide: merge help options into generic IDE options dialog

git-svn-id: trunk@20184 -
This commit is contained in:
paul 2009-05-25 06:41:12 +00:00
parent 70a61a9037
commit 177082df45
12 changed files with 128 additions and 351 deletions

View File

@ -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;

View File

@ -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]

View File

@ -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
]);

View File

@ -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<HelpOptionsVersion) then
FileVersion := XMLConfig.GetValue('HelpOptions/Version/Value',0);
if (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.

View File

@ -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,

View File

@ -40,7 +40,7 @@
<PackageName Value="SynEdit"/>
</Item4>
</RequiredPackages>
<Units Count="39">
<Units Count="41">
<Unit0>
<Filename Value="lazarus.pp"/>
<IsPartOfProject Value="True"/>
@ -311,6 +311,21 @@
<ResourceBaseClass Value="Frame"/>
<UnitName Value="codeobserver_options"/>
</Unit38>
<Unit39>
<Filename Value="frames/compiler_conditionals_options.pas"/>
<ComponentName Value="CompOptsConditionalsFrame"/>
<HasResources Value="True"/>
<IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Frame"/>
<UnitName Value="Compiler_Conditionals_Options"/>
</Unit39>
<Unit40>
<Filename Value="frames/help_general_options.pas"/>
<ComponentName Value="HelpGeneralOptionsFrame"/>
<IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Frame"/>
<UnitName Value="help_general_options"/>
</Unit40>
</Units>
</ProjectOptions>
<CompilerOptions>

View File

@ -870,6 +870,7 @@ resourcestring
dlgGroupCodetools = 'Codetools';
dlgGroupCodeExplorer = 'Code Explorer';
dlgGroupDebugger = 'Debugger';
dlgGroupHelp = 'Help';
// Options dialog
dlgBakNoSubDirectory = '(no subdirectory)';

View File

@ -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;

View File

@ -321,7 +321,7 @@ type
//itmOnlineHelps: TIDEMenuSection;
itmHelpOnlineHelp: TIDEMenuCommand;
itmHelpReportingBug: TIDEMenuCommand;
itmHelpConfigureHelp: TIDEMenuCommand;
//itmHelpConfigureHelp: TIDEMenuCommand;
//itmInfoHelps: TIDEMenuSection;
itmHelpAboutLazarus: TIDEMenuCommand;
//itmHelpTools: TIDEMenuSection;

View File

@ -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;

View File

@ -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;

View File

@ -158,6 +158,9 @@ const
DbgOptionsLanguageExceptions = 300;
DbgOptionsSignals = 400;
GroupHelp = 500;
HlpOptionsGeneral = 100;
implementation
var
FIDEEditorGroups: TIDEOptionsGroupList;