IDE: Use DirectoryEdit in Project FPDoc options. Issue #28198, patch from Alexey Torgashin

git-svn-id: trunk@49202 -
This commit is contained in:
juha 2015-05-29 09:04:15 +00:00
parent b49ef96e4c
commit a1067c7d07
2 changed files with 37 additions and 92 deletions

View File

@ -13,9 +13,9 @@ object ProjectFPDocOptionsFrame: TProjectFPDocOptionsFrame
AnchorSideTop.Control = FPDocPackageNameEdit AnchorSideTop.Control = FPDocPackageNameEdit
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 6 Left = 6
Height = 14 Height = 15
Top = 9 Top = 10
Width = 123 Width = 138
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'FPDocPackageNameLabel' Caption = 'FPDocPackageNameLabel'
ParentColor = False ParentColor = False
@ -24,17 +24,14 @@ object ProjectFPDocOptionsFrame: TProjectFPDocOptionsFrame
AnchorSideLeft.Control = FPDocPackageNameLabel AnchorSideLeft.Control = FPDocPackageNameLabel
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Owner AnchorSideTop.Control = Owner
Left = 135 Left = 150
Height = 21 Height = 23
Top = 6 Top = 6
Width = 120 Width = 120
BorderSpacing.Around = 6 BorderSpacing.Around = 6
OnEnter = FPDocPackageNameEditEnter
OnExit = FPDocPackageNameEditExit
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
TabOrder = 0 TabOrder = 0
Text = 'FPDocPackageNameEdit'
end end
object SearchPathsGroupBox: TGroupBox object SearchPathsGroupBox: TGroupBox
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
@ -45,12 +42,12 @@ object ProjectFPDocOptionsFrame: TProjectFPDocOptionsFrame
AnchorSideBottom.Control = Owner AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 0 Left = 0
Height = 236 Height = 234
Top = 33 Top = 35
Width = 478 Width = 478
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
Caption = 'SearchPathsGroupBox' Caption = 'SearchPathsGroupBox'
ClientHeight = 218 ClientHeight = 214
ClientWidth = 474 ClientWidth = 474
TabOrder = 1 TabOrder = 1
object PathsListBox: TListBox object PathsListBox: TListBox
@ -65,78 +62,56 @@ object ProjectFPDocOptionsFrame: TProjectFPDocOptionsFrame
ScrollWidth = 472 ScrollWidth = 472
TabOrder = 0 TabOrder = 0
end end
object PathEdit: TEdit
AnchorSideLeft.Control = SearchPathsGroupBox
AnchorSideTop.Control = PathsListBox
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = BrowseButton
Left = 6
Height = 21
Top = 120
Width = 438
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Bottom = 6
OnChange = PathEditChange
TabOrder = 1
Text = 'PathEdit'
end
object AddPathButton: TBitBtn object AddPathButton: TBitBtn
AnchorSideLeft.Control = SearchPathsGroupBox AnchorSideLeft.Control = SearchPathsGroupBox
AnchorSideTop.Control = PathEdit
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 23 Height = 25
Top = 147 Top = 147
Width = 99 Width = 108
AutoSize = True AutoSize = True
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6 BorderSpacing.Top = 6
Caption = 'AddPathButton' Caption = 'AddPathButton'
Enabled = False Enabled = False
NumGlyphs = 0
OnClick = AddPathButtonClick OnClick = AddPathButtonClick
TabOrder = 2 TabOrder = 2
end end
object DeletePathButton: TBitBtn object DeletePathButton: TBitBtn
AnchorSideLeft.Control = AddPathButton AnchorSideLeft.Control = AddPathButton
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = PathEdit
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 111 Left = 120
Height = 23 Height = 25
Top = 147 Top = 147
Width = 111 Width = 119
AutoSize = True AutoSize = True
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'DeletePathButton' Caption = 'DeletePathButton'
Enabled = False Enabled = False
NumGlyphs = 0
OnClick = DeletePathButtonClick OnClick = DeletePathButtonClick
TabOrder = 3 TabOrder = 3
end end
object BrowseButton: TButton object PathEdit: TDirectoryEdit
AnchorSideLeft.Control = PathEdit AnchorSideLeft.Control = SearchPathsGroupBox
AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = PathsListBox
AnchorSideTop.Control = PathEdit AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = SearchPathsGroupBox AnchorSideRight.Control = SearchPathsGroupBox
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = PathEdit Left = 6
AnchorSideBottom.Side = asrBottom Height = 23
Left = 444
Height = 21
Top = 120 Top = 120
Width = 24 Width = 462
Anchors = [akTop, akRight, akBottom] Directory = 'PathEdit'
BorderSpacing.Right = 6 ShowHidden = False
Caption = '...' ButtonWidth = 45
OnClick = BrowseButtonClick NumGlyphs = 1
TabOrder = 4 Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
MaxLength = 0
TabOrder = 1
OnChange = PathEditChange
Text = 'PathEdit'
end end
end end
object SelectDirectoryDialog: TSelectDirectoryDialog
FilterIndex = 0
left = 370
end
end end

View File

@ -5,8 +5,8 @@ unit project_lazdoc_options;
interface interface
uses uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
StdCtrls, Buttons, Project, IDEOptionsIntf, LazarusIDEStrConsts, IDEProcs, Buttons, EditBtn, Project, IDEOptionsIntf, LazarusIDEStrConsts, IDEProcs,
CodeHelp; CodeHelp;
type type
@ -15,19 +15,14 @@ type
TProjectFPDocOptionsFrame = class(TAbstractIDEOptionsEditor) TProjectFPDocOptionsFrame = class(TAbstractIDEOptionsEditor)
AddPathButton: TBitBtn; AddPathButton: TBitBtn;
BrowseButton: TButton;
DeletePathButton: TBitBtn; DeletePathButton: TBitBtn;
FPDocPackageNameEdit: TEdit; FPDocPackageNameEdit: TEdit;
FPDocPackageNameLabel: TLabel; FPDocPackageNameLabel: TLabel;
PathEdit: TDirectoryEdit;
PathsListBox: TListBox; PathsListBox: TListBox;
PathEdit: TEdit;
SearchPathsGroupBox: TGroupBox; SearchPathsGroupBox: TGroupBox;
SelectDirectoryDialog: TSelectDirectoryDialog;
procedure AddPathButtonClick(Sender: TObject); procedure AddPathButtonClick(Sender: TObject);
procedure BrowseButtonClick(Sender: TObject);
procedure DeletePathButtonClick(Sender: TObject); procedure DeletePathButtonClick(Sender: TObject);
procedure FPDocPackageNameEditEnter(Sender: TObject);
procedure FPDocPackageNameEditExit(Sender: TObject);
procedure PathsListBoxSelectionChange(Sender: TObject; {%H-}User: boolean); procedure PathsListBoxSelectionChange(Sender: TObject; {%H-}User: boolean);
procedure PathEditChange(Sender: TObject); procedure PathEditChange(Sender: TObject);
private private
@ -64,12 +59,6 @@ begin
PathEdit.Clear; PathEdit.Clear;
end; end;
procedure TProjectFPDocOptionsFrame.BrowseButtonClick(Sender: TObject);
begin
if SelectDirectoryDialog.Execute then
PathEdit.Text := SelectDirectoryDialog.FileName;
end;
procedure TProjectFPDocOptionsFrame.AddPathButtonClick(Sender: TObject); procedure TProjectFPDocOptionsFrame.AddPathButtonClick(Sender: TObject);
begin begin
if PathEdit.Text <> '' then begin if PathEdit.Text <> '' then begin
@ -86,20 +75,6 @@ begin
end; end;
end; end;
procedure TProjectFPDocOptionsFrame.FPDocPackageNameEditEnter(Sender: TObject);
begin
if FPDocPackageNameEdit.Text=lisDefaultPlaceholder then
FPDocPackageNameEdit.Text:='';
end;
procedure TProjectFPDocOptionsFrame.FPDocPackageNameEditExit(Sender: TObject);
begin
if GetFPDocPkgNameEditValue='' then
FPDocPackageNameEdit.Text:=lisDefaultPlaceholder
else
FPDocPackageNameEdit.Text:=GetFPDocPkgNameEditValue;
end;
procedure TProjectFPDocOptionsFrame.PathsListBoxSelectionChange(Sender: TObject; User: boolean); procedure TProjectFPDocOptionsFrame.PathsListBoxSelectionChange(Sender: TObject; User: boolean);
begin begin
DeletePathButton.Enabled:=(Sender as TListBox).ItemIndex <> -1; DeletePathButton.Enabled:=(Sender as TListBox).ItemIndex <> -1;
@ -107,14 +82,11 @@ end;
procedure TProjectFPDocOptionsFrame.PathEditChange(Sender: TObject); procedure TProjectFPDocOptionsFrame.PathEditChange(Sender: TObject);
begin begin
AddPathButton.Enabled:=(Sender as TEdit).Text <> ''; AddPathButton.Enabled:=PathEdit.Text<>'';
end; end;
function TProjectFPDocOptionsFrame.GetFPDocPkgNameEditValue: string; function TProjectFPDocOptionsFrame.GetFPDocPkgNameEditValue: string;
begin begin
if FPDocPackageNameEdit.Text=lisDefaultPlaceholder then
Result:=''
else
Result:=MakeValidFPDocPackageName(FPDocPackageNameEdit.Text); Result:=MakeValidFPDocPackageName(FPDocPackageNameEdit.Text);
end; end;
@ -122,9 +94,7 @@ procedure TProjectFPDocOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
begin begin
with (AOptions as TProjectIDEOptions).Project do begin with (AOptions as TProjectIDEOptions).Project do begin
SplitString(FPDocPaths, ';', PathsListBox.Items, True); SplitString(FPDocPaths, ';', PathsListBox.Items, True);
if FPDocPackageName='' then FPDocPackageNameEdit.TextHint:=lisDefaultPlaceholder;
FPDocPackageNameEdit.Text:=lisDefaultPlaceholder
else
FPDocPackageNameEdit.Text:=FPDocPackageName; FPDocPackageNameEdit.Text:=FPDocPackageName;
end; end;
end; end;