IDE: Improve 'Build Macro' toolbar layout and fix copying the description field. Issue #19927, patch from Samuel Herzog

git-svn-id: trunk@33332 -
This commit is contained in:
juha 2011-11-05 11:13:16 +00:00
parent 667e54c77f
commit 822a4db073
2 changed files with 66 additions and 72 deletions

View File

@ -5,8 +5,8 @@ inherited CompOptBuildMacrosFrame: TCompOptBuildMacrosFrame
ClientWidth = 514 ClientWidth = 514
TabOrder = 0 TabOrder = 0
Visible = False Visible = False
DesignLeft = 308 DesignLeft = 304
DesignTop = 268 DesignTop = 213
object MacrosGroupBox: TGroupBox[0] object MacrosGroupBox: TGroupBox[0]
Left = 0 Left = 0
Height = 243 Height = 243
@ -14,8 +14,8 @@ inherited CompOptBuildMacrosFrame: TCompOptBuildMacrosFrame
Width = 514 Width = 514
Align = alTop Align = alTop
Caption = 'MacrosGroupBox' Caption = 'MacrosGroupBox'
ClientHeight = 221 ClientHeight = 223
ClientWidth = 506 ClientWidth = 508
TabOrder = 0 TabOrder = 0
object BuildMacrosTreeView: TTreeView object BuildMacrosTreeView: TTreeView
AnchorSideLeft.Control = MacrosGroupBox AnchorSideLeft.Control = MacrosGroupBox
@ -25,7 +25,7 @@ inherited CompOptBuildMacrosFrame: TCompOptBuildMacrosFrame
AnchorSideBottom.Control = MacrosGroupBox AnchorSideBottom.Control = MacrosGroupBox
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 0 Left = 0
Height = 199 Height = 201
Top = 22 Top = 22
Width = 227 Width = 227
Anchors = [akTop, akLeft, akBottom] Anchors = [akTop, akLeft, akBottom]
@ -43,7 +43,7 @@ inherited CompOptBuildMacrosFrame: TCompOptBuildMacrosFrame
AnchorSideBottom.Control = MacrosGroupBox AnchorSideBottom.Control = MacrosGroupBox
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 233 Left = 233
Height = 221 Height = 223
Top = 0 Top = 0
Width = 5 Width = 5
Align = alNone Align = alNone
@ -53,22 +53,22 @@ inherited CompOptBuildMacrosFrame: TCompOptBuildMacrosFrame
AnchorSideLeft.Control = Splitter1 AnchorSideLeft.Control = Splitter1
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
Left = 244 Left = 244
Height = 221 Height = 223
Top = 0 Top = 0
Width = 262 Width = 264
Align = alRight Align = alRight
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'BuildMacroSelectedGroupBox' Caption = 'BuildMacroSelectedGroupBox'
ClientHeight = 199 ClientHeight = 203
ClientWidth = 254 ClientWidth = 258
TabOrder = 2 TabOrder = 2
object BuildMacroDefaultLabel: TLabel object BuildMacroDefaultLabel: TLabel
Left = 6 Left = 6
Height = 127 Height = 129
Top = 66 Top = 68
Width = 242 Width = 246
Align = alClient Align = alBottom
AutoSize = False AutoSize = False
BorderSpacing.Top = 15 BorderSpacing.Top = 15
BorderSpacing.Around = 6 BorderSpacing.Around = 6
@ -78,9 +78,9 @@ inherited CompOptBuildMacrosFrame: TCompOptBuildMacrosFrame
end end
object BuildMacroDescriptionLabel: TLabel object BuildMacroDescriptionLabel: TLabel
Left = 6 Left = 6
Height = 17 Height = 16
Top = 6 Top = 6
Width = 242 Width = 246
Align = alTop Align = alTop
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6 BorderSpacing.Top = 6
@ -90,15 +90,27 @@ inherited CompOptBuildMacrosFrame: TCompOptBuildMacrosFrame
end end
object BuildMacroDescriptionEdit: TEdit object BuildMacroDescriptionEdit: TEdit
Left = 6 Left = 6
Height = 22 Height = 23
Top = 23 Top = 22
Width = 242 Width = 246
Align = alTop Align = alTop
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Right = 6 BorderSpacing.Right = 6
OnExit = BuildMacroDescriptionEditExit
TabOrder = 0 TabOrder = 0
Text = 'BuildMacroDescriptionEdit' Text = 'BuildMacroDescriptionEdit'
end end
object BMAddMacroValueSpeedButton: TSpeedButton
Left = 6
Height = 22
Top = 48
Width = 23
BorderSpacing.Left = 6
NumGlyphs = 0
OnClick = BMAddMacroValueSpeedButtonClick
ShowHint = True
ParentShowHint = False
end
end end
object BMAddMacroSpeedButton: TSpeedButton object BMAddMacroSpeedButton: TSpeedButton
AnchorSideLeft.Control = MacrosGroupBox AnchorSideLeft.Control = MacrosGroupBox
@ -112,31 +124,16 @@ inherited CompOptBuildMacrosFrame: TCompOptBuildMacrosFrame
ShowHint = True ShowHint = True
ParentShowHint = False ParentShowHint = False
end end
object BMAddMacroValueSpeedButton: TSpeedButton object BMDeleteMacroSpeedButton: TSpeedButton
AnchorSideLeft.Control = BMAddMacroSpeedButton
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = MacrosGroupBox AnchorSideTop.Control = MacrosGroupBox
Left = 29 Left = 22
Height = 22 Height = 22
Top = 0 Top = 0
Width = 23 Width = 23
BorderSpacing.Left = 6 BorderSpacing.Left = 6
NumGlyphs = 0 NumGlyphs = 0
OnClick = BMAddMacroValueSpeedButtonClick OnClick = BMDeleteMacroSpeedButtonClick
ShowHint = True
ParentShowHint = False
end
object BMDeleteSpeedButton: TSpeedButton
AnchorSideLeft.Control = BMAddMacroValueSpeedButton
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = MacrosGroupBox
Left = 58
Height = 22
Top = 0
Width = 23
BorderSpacing.Left = 6
NumGlyphs = 0
OnClick = BMDeleteSpeedButtonClick
ShowHint = True ShowHint = True
ParentShowHint = False ParentShowHint = False
end end
@ -157,14 +154,14 @@ inherited CompOptBuildMacrosFrame: TCompOptBuildMacrosFrame
Width = 514 Width = 514
Align = alClient Align = alClient
Caption = 'ConditionalsGroupBox' Caption = 'ConditionalsGroupBox'
ClientHeight = 174 ClientHeight = 176
ClientWidth = 506 ClientWidth = 508
TabOrder = 2 TabOrder = 2
inline CondSynEdit: TSynEdit inline CondSynEdit: TSynEdit
Left = 0 Left = 0
Height = 159 Height = 156
Top = 0 Top = 0
Width = 506 Width = 508
Align = alClient Align = alClient
Font.Height = 9 Font.Height = 9
Font.Name = '-misc-dejavu sans mono-*-*-*-*-*-*-*-*-*-*-iso10646-1' Font.Name = '-misc-dejavu sans mono-*-*-*-*-*-*-*-*-*-*-iso10646-1'
@ -175,7 +172,7 @@ inherited CompOptBuildMacrosFrame: TCompOptBuildMacrosFrame
TabOrder = 0 TabOrder = 0
OnKeyDown = CondSynEditKeyDown OnKeyDown = CondSynEditKeyDown
OnKeyPress = CondSynEditKeyPress OnKeyPress = CondSynEditKeyPress
Gutter.Width = 59 Gutter.Width = 51
Gutter.MouseActions = < Gutter.MouseActions = <
item item
Shift = [] Shift = []
@ -770,6 +767,7 @@ inherited CompOptBuildMacrosFrame: TCompOptBuildMacrosFrame
Lines.Strings = ( Lines.Strings = (
'CondSynEdit' 'CondSynEdit'
) )
VisibleSpecialChars = [vscSpace, vscTabAtLast]
BracketHighlightStyle = sbhsBoth BracketHighlightStyle = sbhsBoth
OnChange = CondSynEditChange OnChange = CondSynEditChange
OnProcessCommand = CondSynEditProcessCommand OnProcessCommand = CondSynEditProcessCommand
@ -779,7 +777,7 @@ inherited CompOptBuildMacrosFrame: TCompOptBuildMacrosFrame
Width = 24 Width = 24
end end
object SynGutterLineNumber1: TSynGutterLineNumber object SynGutterLineNumber1: TSynGutterLineNumber
Width = 19 Width = 11
MouseActions = <> MouseActions = <>
MarkupInfo.Background = clBtnFace MarkupInfo.Background = clBtnFace
MarkupInfo.Foreground = clNone MarkupInfo.Foreground = clNone
@ -884,9 +882,9 @@ inherited CompOptBuildMacrosFrame: TCompOptBuildMacrosFrame
end end
object CondStatusbar: TStatusBar object CondStatusbar: TStatusBar
Left = 0 Left = 0
Height = 15 Height = 20
Top = 159 Top = 156
Width = 506 Width = 508
Panels = < Panels = <
item item
Width = 80 Width = 80

View File

@ -53,7 +53,7 @@ type
TCompOptBuildMacrosFrame = class(TAbstractIDEOptionsEditor) TCompOptBuildMacrosFrame = class(TAbstractIDEOptionsEditor)
BMAddMacroSpeedButton: TSpeedButton; BMAddMacroSpeedButton: TSpeedButton;
BMAddMacroValueSpeedButton: TSpeedButton; BMAddMacroValueSpeedButton: TSpeedButton;
BMDeleteSpeedButton: TSpeedButton; BMDeleteMacroSpeedButton: TSpeedButton;
BuildMacroDescriptionEdit: TEdit; BuildMacroDescriptionEdit: TEdit;
BuildMacroSelectedGroupBox: TGroupBox; BuildMacroSelectedGroupBox: TGroupBox;
BuildMacrosTreeView: TTreeView; BuildMacrosTreeView: TTreeView;
@ -67,7 +67,8 @@ type
Splitter1: TSplitter; Splitter1: TSplitter;
procedure BMAddMacroSpeedButtonClick(Sender: TObject); procedure BMAddMacroSpeedButtonClick(Sender: TObject);
procedure BMAddMacroValueSpeedButtonClick(Sender: TObject); procedure BMAddMacroValueSpeedButtonClick(Sender: TObject);
procedure BMDeleteSpeedButtonClick(Sender: TObject); procedure BMDeleteMacroSpeedButtonClick(Sender: TObject);
procedure BuildMacroDescriptionEditExit(Sender: TObject);
procedure BuildMacrosTreeViewEdited(Sender: TObject; Node: TTreeNode; procedure BuildMacrosTreeViewEdited(Sender: TObject; Node: TTreeNode;
var S: string); var S: string);
procedure BuildMacrosTreeViewEditing(Sender: TObject; Node: TTreeNode; procedure BuildMacrosTreeViewEditing(Sender: TObject; Node: TTreeNode;
@ -111,7 +112,6 @@ type
fDefValueImgID: LongInt; fDefValueImgID: LongInt;
fEngine: TCTConfigScriptEngine; fEngine: TCTConfigScriptEngine;
fSynCompletion: TSynCompletion; fSynCompletion: TSynCompletion;
procedure SaveItemProperties;
procedure SetBuildMacros(const AValue: TIDEBuildMacros); procedure SetBuildMacros(const AValue: TIDEBuildMacros);
procedure RebuildTreeView; procedure RebuildTreeView;
procedure SetIdleConnected(const AValue: Boolean); procedure SetIdleConnected(const AValue: Boolean);
@ -348,8 +348,7 @@ begin
AllowEdit:=NodeType in [cbmntBuildMacro,cbmntValue]; AllowEdit:=NodeType in [cbmntBuildMacro,cbmntValue];
end; end;
procedure TCompOptBuildMacrosFrame.BuildMacrosTreeViewSelectionChanged( procedure TCompOptBuildMacrosFrame.BuildMacrosTreeViewSelectionChanged(Sender: TObject);
Sender: TObject);
begin begin
UpdateItemPropertyControls; UpdateItemPropertyControls;
end; end;
@ -520,7 +519,7 @@ begin
BuildMacrosTreeView.EndUpdate; BuildMacrosTreeView.EndUpdate;
end; end;
procedure TCompOptBuildMacrosFrame.BMDeleteSpeedButtonClick(Sender: TObject); procedure TCompOptBuildMacrosFrame.BMDeleteMacroSpeedButtonClick(Sender: TObject);
var var
aBuildMacro: TIDEBuildMacro; aBuildMacro: TIDEBuildMacro;
SelTVNode: TTreeNode; SelTVNode: TTreeNode;
@ -552,6 +551,16 @@ begin
BuildMacrosTreeView.EndUpdate; BuildMacrosTreeView.EndUpdate;
end; end;
procedure TCompOptBuildMacrosFrame.BuildMacroDescriptionEditExit(Sender: TObject);
var
BuildMacro: TLazBuildMacro;
NodeType: TCBMNodeType;
begin
GetSelectedNode(BuildMacro,NodeType);
if BuildMacro<>nil then
BuildMacro.Description:=BuildMacroDescriptionEdit.Text;
end;
procedure TCompOptBuildMacrosFrame.SetBuildMacros( procedure TCompOptBuildMacrosFrame.SetBuildMacros(
const AValue: TIDEBuildMacros); const AValue: TIDEBuildMacros);
begin begin
@ -697,17 +706,15 @@ var
begin begin
GetSelectedNode(aBuildMacro,NodeType); GetSelectedNode(aBuildMacro,NodeType);
if aBuildMacro<>nil then begin if aBuildMacro<>nil then begin
BuildMacroSelectedGroupBox.Caption:=Format(lisMacro, [aBuildMacro.Identifier BuildMacroSelectedGroupBox.Caption:=Format(lisMacro, [aBuildMacro.Identifier]);
]);
BuildMacroSelectedGroupBox.Enabled:=true; BuildMacroSelectedGroupBox.Enabled:=true;
BuildMacroDescriptionEdit.Enabled:=true; BuildMacroDescriptionEdit.Enabled:=true;
BuildMacroDescriptionEdit.Text:=aBuildMacro.Description; BuildMacroDescriptionEdit.Text:=aBuildMacro.Description;
BMAddMacroValueSpeedButton.Hint:=Format(lisAddValueToMacro, [ BMAddMacroValueSpeedButton.Hint:=Format(lisAddValueToMacro, [aBuildMacro.Identifier]);
aBuildMacro.Identifier]);
if NodeType=cbmntBuildMacro then if NodeType=cbmntBuildMacro then
BMDeleteSpeedButton.Hint:=Format(lisDeleteMacro, [aBuildMacro.Identifier]) BMDeleteMacroSpeedButton.Hint:=Format(lisDeleteMacro, [aBuildMacro.Identifier])
else else
BMDeleteSpeedButton.Hint:=Format(lisDeleteValue2, [BuildMacrosTreeView. BMDeleteMacroSpeedButton.Hint:=Format(lisDeleteValue2, [BuildMacrosTreeView.
Selected.Text]); Selected.Text]);
end else begin end else begin
BuildMacroSelectedGroupBox.Caption:=lisNoMacroSelected; BuildMacroSelectedGroupBox.Caption:=lisNoMacroSelected;
@ -715,11 +722,11 @@ begin
BuildMacroDescriptionEdit.Enabled:=false; BuildMacroDescriptionEdit.Enabled:=false;
BuildMacroDescriptionEdit.Text:=''; BuildMacroDescriptionEdit.Text:='';
BMAddMacroValueSpeedButton.Hint:=''; BMAddMacroValueSpeedButton.Hint:='';
BMDeleteSpeedButton.Hint:=''; BMDeleteMacroSpeedButton.Hint:='';
end; end;
BMAddMacroSpeedButton.Hint:=lisAddNewMacro; BMAddMacroSpeedButton.Hint:=lisAddNewMacro;
BMAddMacroValueSpeedButton.Enabled:=NodeType in [cbmntBuildMacro,cbmntValue]; BMAddMacroValueSpeedButton.Enabled:=NodeType in [cbmntBuildMacro,cbmntValue];
BMDeleteSpeedButton.Enabled:=NodeType in [cbmntBuildMacro,cbmntValue]; BMDeleteMacroSpeedButton.Enabled:=NodeType in [cbmntBuildMacro,cbmntValue];
end; end;
procedure TCompOptBuildMacrosFrame.UpdateMessages; procedure TCompOptBuildMacrosFrame.UpdateMessages;
@ -947,16 +954,6 @@ begin
//debugln(['TCompOptBuildMacrosFrame.GetCondCursorWord "',Result,'"']); //debugln(['TCompOptBuildMacrosFrame.GetCondCursorWord "',Result,'"']);
end; end;
procedure TCompOptBuildMacrosFrame.SaveItemProperties;
var
BuildMacro: TLazBuildMacro;
NodeType: TCBMNodeType;
begin
GetSelectedNode(BuildMacro,NodeType);
if BuildMacro=nil then exit;
BuildMacro.Description:=BuildMacroDescriptionEdit.Text;
end;
constructor TCompOptBuildMacrosFrame.Create(TheOwner: TComponent); constructor TCompOptBuildMacrosFrame.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
@ -983,7 +980,7 @@ begin
BMAddMacroSpeedButton.LoadGlyphFromLazarusResource('laz_add'); BMAddMacroSpeedButton.LoadGlyphFromLazarusResource('laz_add');
BMAddMacroValueSpeedButton.LoadGlyphFromLazarusResource('laz_add'); BMAddMacroValueSpeedButton.LoadGlyphFromLazarusResource('laz_add');
BMDeleteSpeedButton.LoadGlyphFromLazarusResource('laz_delete'); BMDeleteMacroSpeedButton.LoadGlyphFromLazarusResource('laz_delete');
fSynCompletion:=TSynCompletion.Create(Self); fSynCompletion:=TSynCompletion.Create(Self);
fSynCompletion.TheForm.Parent:=Self; fSynCompletion.TheForm.Parent:=Self;
@ -1061,7 +1058,6 @@ end;
procedure TCompOptBuildMacrosFrame.SaveToOptions(Options: TBaseCompilerOptions); procedure TCompOptBuildMacrosFrame.SaveToOptions(Options: TBaseCompilerOptions);
begin begin
SaveItemProperties;
(Options.BuildMacros as TIDEBuildMacros).Assign(BuildMacros); (Options.BuildMacros as TIDEBuildMacros).Assign(BuildMacros);
Options.Conditionals:=CondSynEdit.Lines.Text; Options.Conditionals:=CondSynEdit.Lines.Text;
end; end;