IDE: install pkg dlg: added splitter, Changed arrows to green/red, Red arrow moved to right side of the button, Reduced width of buttons, focus filter available, patch #33729

git-svn-id: trunk@57978 -
This commit is contained in:
mattias 2018-05-20 16:18:13 +00:00
parent d60896d479
commit 845c8ef3f8
2 changed files with 280 additions and 209 deletions

View File

@ -3,6 +3,7 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
Height = 578
Top = 219
Width = 607
ActiveControl = AvailableFilterEdit
BorderStyle = bsSizeToolWin
Caption = 'InstallPkgSetDialog'
ClientHeight = 578
@ -15,190 +16,24 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
OnResize = InstallPkgSetDialogResize
OnShow = InstallPkgSetDialogShow
Position = poScreenCenter
LCLVersion = '1.7'
object InstallPkgGroupBox: TGroupBox
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = NoteLabel
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = lblMiddle
AnchorSideBottom.Control = PkgInfoGroupBox
Left = 6
Height = 375
Top = 29
Width = 294
Anchors = [akTop, akLeft, akRight, akBottom]
AutoSize = True
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 3
BorderSpacing.Bottom = 6
Caption = 'InstallPkgGroupBox'
ClientHeight = 356
ClientWidth = 290
TabOrder = 0
object ImportButton: TButton
Left = 6
Height = 29
Top = 286
Width = 278
Align = alBottom
AutoSize = True
BorderSpacing.Around = 6
Caption = 'ImportButton'
OnClick = ImportButtonClick
TabOrder = 3
end
object ExportButton: TButton
Left = 6
Height = 29
Top = 321
Width = 278
Align = alBottom
AutoSize = True
BorderSpacing.Around = 6
Caption = 'ExportButton'
OnClick = ExportButtonClick
TabOrder = 4
end
object InstallTreeView: TTreeView
AnchorSideTop.Control = InstalledFilterEdit
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = UninstallButton
Left = 8
Height = 215
Top = 30
Width = 278
Anchors = [akTop, akLeft, akRight, akBottom]
MultiSelect = True
ReadOnly = True
ShowButtons = False
ShowLines = False
ShowRoot = False
TabOrder = 1
OnAdvancedCustomDrawItem = TreeViewAdvancedCustomDrawItem
OnDblClick = InstallTreeViewDblClick
OnKeyPress = InstallTreeViewKeyPress
OnSelectionChanged = InstallTreeViewSelectionChanged
Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoToolTips, tvoThemedDraw]
end
object UninstallButton: TBitBtn
Left = 6
Height = 29
Top = 251
Width = 278
Align = alBottom
AutoSize = True
BorderSpacing.Around = 6
Caption = 'UninstallButton'
OnClick = UninstallButtonClick
TabOrder = 2
end
object InstalledFilterEdit: TTreeFilterEdit
AnchorSideTop.Control = InstallPkgGroupBox
Left = 8
Height = 27
Top = 3
Width = 276
ButtonWidth = 23
NumGlyphs = 1
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 3
MaxLength = 0
ParentFont = False
TabOrder = 0
FilteredTreeview = InstallTreeView
OnGetImageIndex = FilterEditGetImageIndex
end
end
object AvailablePkgGroupBox: TGroupBox
AnchorSideLeft.Control = lblMiddle
AnchorSideTop.Control = NoteLabel
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = PkgInfoGroupBox
Left = 306
Height = 375
Top = 29
Width = 295
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 3
BorderSpacing.Top = 6
BorderSpacing.Right = 6
BorderSpacing.Bottom = 6
Caption = 'AvailablePkgGroupBox'
ClientHeight = 356
ClientWidth = 291
TabOrder = 1
object AvailableTreeView: TTreeView
AnchorSideTop.Control = AvailableFilterEdit
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = AddToInstallButton
Left = 6
Height = 285
Top = 30
Width = 279
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Right = 6
BorderSpacing.Bottom = 6
MultiSelect = True
ReadOnly = True
ShowButtons = False
ShowLines = False
ShowRoot = False
TabOrder = 1
OnAdvancedCustomDrawItem = TreeViewAdvancedCustomDrawItem
OnDblClick = AvailableTreeViewDblClick
OnKeyPress = AvailableTreeViewKeyPress
OnSelectionChanged = AvailableTreeViewSelectionChanged
Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoToolTips, tvoThemedDraw]
end
object AddToInstallButton: TBitBtn
Left = 6
Height = 29
Top = 321
Width = 279
Align = alBottom
AutoSize = True
BorderSpacing.Around = 6
Caption = 'AddToInstallButton'
OnClick = AddToInstallButtonClick
TabOrder = 2
end
object AvailableFilterEdit: TTreeFilterEdit
AnchorSideTop.Control = AvailablePkgGroupBox
Left = 6
Height = 27
Top = 3
Width = 279
ButtonWidth = 23
NumGlyphs = 1
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 3
MaxLength = 0
ParentFont = False
TabOrder = 0
FilteredTreeview = AvailableTreeView
OnGetImageIndex = FilterEditGetImageIndex
end
end
LCLVersion = '1.9.0.0'
object PkgInfoGroupBox: TGroupBox
AnchorSideBottom.Control = BtnPanel
Left = 6
Height = 127
Top = 410
Top = 413
Width = 595
Align = alBottom
BorderSpacing.Left = 6
BorderSpacing.Right = 6
Caption = 'PkgInfoGroupBox'
ClientHeight = 108
ClientHeight = 109
ClientWidth = 591
TabOrder = 2
Constraints.MinHeight = 70
TabOrder = 0
object PkgInfoMemo: TMemo
Left = 6
Height = 96
Height = 97
Top = 6
Width = 579
Align = alClient
@ -210,18 +45,18 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
end
object BtnPanel: TPanel
Left = 0
Height = 41
Top = 537
Height = 38
Top = 540
Width = 607
Align = alBottom
AutoSize = True
BevelOuter = bvNone
ClientHeight = 41
ClientHeight = 38
ClientWidth = 607
TabOrder = 3
TabOrder = 1
object HelpButton: TBitBtn
Left = 6
Height = 29
Height = 26
Top = 6
Width = 75
Align = alLeft
@ -234,10 +69,10 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
TabOrder = 0
end
object CancelButton: TBitBtn
Left = 164
Height = 29
Left = 216
Height = 26
Top = 6
Width = 76
Width = 78
Align = alRight
AutoSize = True
BorderSpacing.Around = 6
@ -249,10 +84,10 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
TabOrder = 1
end
object SaveAndExitButton: TBitBtn
Left = 439
Height = 29
Left = 462
Height = 26
Top = 6
Width = 162
Width = 139
Align = alRight
AutoSize = True
BorderSpacing.Around = 6
@ -298,10 +133,10 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
TabOrder = 3
end
object SaveAndRebuildButton: TBitBtn
Left = 246
Height = 29
Left = 300
Height = 26
Top = 6
Width = 187
Width = 156
Align = alRight
AutoSize = True
BorderSpacing.Around = 6
@ -347,31 +182,252 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
TabOrder = 2
end
end
object NoteLabel: TLabel
object Splitter1: TSplitter
Cursor = crVSplit
Left = 0
Height = 5
Top = 408
Width = 607
Align = alBottom
Constraints.MinHeight = 3
ResizeAnchor = akBottom
end
object Panel1: TPanel
Left = 6
Height = 17
Height = 398
Top = 6
Width = 595
Align = alTop
BorderSpacing.Around = 6
Caption = 'NoteLabel'
ParentColor = False
end
object lblMiddle: TLabel
AnchorSideLeft.Control = Owner
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = Owner
AnchorSideTop.Side = asrCenter
Left = 303
Height = 1
Top = 289
Width = 1
AutoSize = False
ParentColor = False
Align = alClient
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
BorderSpacing.Bottom = 4
BevelOuter = bvNone
ClientHeight = 398
ClientWidth = 595
Constraints.MinHeight = 210
TabOrder = 3
object NoteLabel: TLabel
Left = 0
Height = 13
Top = 0
Width = 595
Align = alTop
BorderSpacing.Bottom = 6
Caption = 'NoteLabel'
ParentColor = False
end
object MiddleBevel: TBevel
AnchorSideLeft.Control = Panel1
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = Panel1
AnchorSideTop.Side = asrCenter
Left = 294
Height = 100
Top = 149
Width = 6
Shape = bsSpacer
end
object InstallPkgGroupBox: TGroupBox
AnchorSideLeft.Control = Panel1
AnchorSideTop.Control = NoteLabel
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = MiddleBevel
AnchorSideBottom.Control = Panel1
AnchorSideBottom.Side = asrBottom
Left = 0
Height = 379
Top = 19
Width = 294
Anchors = [akTop, akLeft, akRight, akBottom]
AutoSize = True
Caption = 'InstallPkgGroupBox'
ClientHeight = 361
ClientWidth = 290
TabOrder = 0
object ImportButton: TButton
AnchorSideLeft.Control = InstallTreeView
AnchorSideLeft.Side = asrCenter
AnchorSideBottom.Control = ExportButton
Left = 100
Height = 23
Top = 303
Width = 90
Anchors = [akLeft, akBottom]
AutoSize = True
BorderSpacing.Bottom = 6
Caption = 'ImportButton'
OnClick = ImportButtonClick
TabOrder = 3
end
object ExportButton: TButton
AnchorSideLeft.Control = InstallTreeView
AnchorSideLeft.Side = asrCenter
AnchorSideBottom.Control = InstallPkgGroupBox
AnchorSideBottom.Side = asrBottom
Left = 100
Height = 23
Top = 332
Width = 90
Anchors = [akLeft, akBottom]
AutoSize = True
BorderSpacing.Bottom = 6
Caption = 'ExportButton'
OnClick = ExportButtonClick
TabOrder = 4
end
object InstallTreeView: TTreeView
AnchorSideLeft.Control = InstalledFilterEdit
AnchorSideTop.Control = InstalledFilterEdit
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = InstalledFilterEdit
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = UninstallButton
Left = 6
Height = 239
Top = 29
Width = 278
Anchors = [akTop, akLeft, akRight, akBottom]
MultiSelect = True
ReadOnly = True
ShowButtons = False
ShowLines = False
ShowRoot = False
TabOrder = 1
OnAdvancedCustomDrawItem = TreeViewAdvancedCustomDrawItem
OnDblClick = InstallTreeViewDblClick
OnKeyPress = InstallTreeViewKeyPress
OnSelectionChanged = InstallTreeViewSelectionChanged
Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoToolTips, tvoThemedDraw]
end
object UninstallButton: TBitBtn
AnchorSideLeft.Control = InstallTreeView
AnchorSideLeft.Side = asrCenter
AnchorSideBottom.Control = ImportButton
Left = 96
Height = 23
Top = 274
Width = 98
Anchors = [akLeft, akBottom]
AutoSize = True
BorderSpacing.Top = 6
BorderSpacing.Bottom = 6
Caption = 'UninstallButton'
Layout = blGlyphRight
OnClick = UninstallButtonClick
TabOrder = 2
end
object InstalledFilterEdit: TTreeFilterEdit
AnchorSideLeft.Control = InstallPkgGroupBox
AnchorSideTop.Control = InstallPkgGroupBox
AnchorSideRight.Control = InstallPkgGroupBox
AnchorSideRight.Side = asrBottom
Left = 6
Height = 21
Top = 2
Width = 278
ButtonWidth = 23
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 2
BorderSpacing.Right = 6
BorderSpacing.Bottom = 6
NumGlyphs = 1
MaxLength = 0
ParentFont = False
Spacing = 2
TabOrder = 0
FilteredTreeview = InstallTreeView
OnGetImageIndex = FilterEditGetImageIndex
end
end
object AvailablePkgGroupBox: TGroupBox
AnchorSideLeft.Control = MiddleBevel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = NoteLabel
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Panel1
AnchorSideBottom.Side = asrBottom
Left = 300
Height = 379
Top = 19
Width = 295
Anchors = [akTop, akLeft, akRight, akBottom]
Caption = 'AvailablePkgGroupBox'
ClientHeight = 361
ClientWidth = 291
TabOrder = 1
object AvailableTreeView: TTreeView
AnchorSideLeft.Control = AvailableFilterEdit
AnchorSideTop.Control = AvailableFilterEdit
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = AvailableFilterEdit
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = AddToInstallButton
Left = 6
Height = 297
Top = 29
Width = 279
Anchors = [akTop, akLeft, akRight, akBottom]
MultiSelect = True
ReadOnly = True
ShowButtons = False
ShowLines = False
ShowRoot = False
TabOrder = 1
OnAdvancedCustomDrawItem = TreeViewAdvancedCustomDrawItem
OnDblClick = AvailableTreeViewDblClick
OnKeyPress = AvailableTreeViewKeyPress
OnSelectionChanged = AvailableTreeViewSelectionChanged
Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoToolTips, tvoThemedDraw]
end
object AddToInstallButton: TBitBtn
AnchorSideLeft.Control = AvailableTreeView
AnchorSideLeft.Side = asrCenter
AnchorSideBottom.Control = AvailablePkgGroupBox
AnchorSideBottom.Side = asrBottom
Left = 86
Height = 23
Top = 332
Width = 118
Anchors = [akLeft, akBottom]
AutoSize = True
BorderSpacing.Top = 6
BorderSpacing.Bottom = 6
Caption = 'AddToInstallButton'
OnClick = AddToInstallButtonClick
TabOrder = 2
end
object AvailableFilterEdit: TTreeFilterEdit
AnchorSideLeft.Control = AvailablePkgGroupBox
AnchorSideTop.Control = AvailablePkgGroupBox
AnchorSideRight.Control = AvailablePkgGroupBox
AnchorSideRight.Side = asrBottom
Left = 6
Height = 21
Top = 2
Width = 279
ButtonWidth = 23
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 2
BorderSpacing.Right = 6
BorderSpacing.Bottom = 6
NumGlyphs = 1
MaxLength = 0
ParentFont = False
Spacing = 2
TabOrder = 0
FilteredTreeview = AvailableTreeView
OnGetImageIndex = FilterEditGetImageIndex
end
end
end
object LPKParsingTimer: TTimer
OnTimer = LPKParsingTimerTimer
left = 337
top = 163
left = 392
top = 176
end
end

View File

@ -62,15 +62,16 @@ type
AddToInstallButton: TBitBtn;
AvailableTreeView: TTreeView;
AvailablePkgGroupBox: TGroupBox;
MiddleBevel: TBevel;
HelpButton: TBitBtn;
CancelButton: TBitBtn;
ExportButton: TButton;
BtnPanel: TPanel;
InstallTreeView: TTreeView;
lblMiddle: TLabel;
AvailableFilterEdit: TTreeFilterEdit;
LPKParsingTimer: TTimer;
NoteLabel: TLabel;
Panel1: TPanel;
PkgInfoMemo: TMemo;
PkgInfoGroupBox: TGroupBox;
ImportButton: TButton;
@ -78,6 +79,7 @@ type
InstallPkgGroupBox: TGroupBox;
SaveAndRebuildButton: TBitBtn;
InstalledFilterEdit: TTreeFilterEdit;
Splitter1: TSplitter;
UninstallButton: TBitBtn;
procedure AddToInstallButtonClick(Sender: TObject);
function FilterEditGetImageIndex({%H-}Str: String; {%H-}Data: TObject;
@ -171,6 +173,18 @@ implementation
{$R *.lfm}
procedure SetControlsWidthOnMax(AControls: array of TControl);
var
i, MaxWidth: Integer;
begin
MaxWidth:=0;
for i:=Low(AControls) to High(AControls) do
if AControls[i].Width>MaxWidth then
MaxWidth:=AControls[i].Width;
for i:=Low(AControls) to High(AControls) do
AControls[i].Constraints.MinWidth:=MaxWidth; // AutoSize=True
end;
function ShowEditInstallPkgsDialog(OldInstalledPackages: TPkgDependency;
CheckInstallPackageList: TOnCheckInstallPackageList;
var NewInstalledPackages: TObjectList; // list of TLazPackageID
@ -222,10 +236,10 @@ begin
ExportButton.Caption:=lisExportList;
ImportButton.Caption:=lisImportList;
UninstallButton.Caption:=lisUninstallSelection;
IDEImages.AssignImage(UninstallButton, 'arrow_right');
IDEImages.AssignImage(UninstallButton, 'arrow__darkred_right');
InstallPkgGroupBox.Caption:=lisPckEditInstall;
AddToInstallButton.Caption:=lisInstallSelection;
IDEImages.AssignImage(AddToInstallButton, 'arrow_left');
IDEImages.AssignImage(AddToInstallButton, 'arrow__darkgreen_left');
PkgInfoGroupBox.Caption := lisPackageInfo;
SaveAndRebuildButton.Caption:=lisSaveAndRebuildIDE;
SaveAndExitButton.Caption:=lisSaveAndExitDialog;
@ -253,6 +267,7 @@ procedure TInstallPkgSetDialog.InstallPkgSetDialogShow(Sender: TObject);
begin
InstalledFilterEdit.Filter:=''; // (filter) - text is shown after this.
AvailableFilterEdit.Filter:='';
SetControlsWidthOnMax([UninstallButton, ImportButton, ExportButton, AddToInstallButton]);
end;
procedure TInstallPkgSetDialog.SaveAndRebuildButtonClick(Sender: TObject);