Package editor: Replace AddMore button with a popup menu. Step 1. to improve the GUI. Issue #28097, (modified) patch from Alexey Torgashin.

git-svn-id: trunk@49046 -
This commit is contained in:
juha 2015-05-16 11:09:16 +00:00
parent ed5a6cac42
commit 9bbdc4fec0
7 changed files with 259 additions and 192 deletions

View File

@ -4373,14 +4373,14 @@ resourcestring
lisPckEditCompilerOptionsForPackage = 'Compiler Options for Package %s';
lisPckEditSavePackage = 'Save Package';
lisPckEditCompilePackage = 'Compile package';
lisPckEditAddFiles = 'Add files from the file system';
lisPckEditAddFilesFromFileSystem = 'Add Files from File System';
lisPckEditAddOtherItems = 'Add other items';
lisPckEditRemoveSelectedItem = 'Remove selected item';
lisPckEditInstallPackageInTheIDE = 'Install package in the IDE';
lisUseSub = 'Use >>';
lisClickToSeeThePossibleUses = 'Click to see the possible uses';
lisPckEditEditGeneralOptions = 'Edit General Options';
lisPkgEdThereAreMoreFunctionsInThePopupmenu = 'There are more functions in the popupmenu';
lisAddSub = 'Add >>';
lisClickToSeeTheChoices = 'Click to see the choices';
lisPckEditEditGeneralOptions = 'Edit general options';
lisPkgEdMoreFunctionsForThePackage = 'More functions for the package';
lisPckEditRequiredPackages = 'Required Packages';
lisPckEditFileProperties = 'File Properties';
lisPckEditRegisterUnit = 'Register unit';

View File

@ -9,7 +9,7 @@ object ProjectInspectorForm: TProjectInspectorForm
ClientHeight = 456
ClientWidth = 299
OnDropFiles = FormDropFiles
LCLVersion = '1.3'
LCLVersion = '1.5'
object ItemsTreeView: TTreeView
Left = 0
Height = 378
@ -18,7 +18,6 @@ object ProjectInspectorForm: TProjectInspectorForm
Align = alClient
Anchors = [akTop, akLeft, akBottom]
BorderSpacing.Top = 2
DefaultItemHeight = 18
DragMode = dmAutomatic
MultiSelect = True
PopupMenu = ItemsPopupMenu

View File

@ -937,12 +937,12 @@ begin
ToolBar.Images := IDEImages.Images_16;
FilterEdit.OnGetImageIndex:=@OnTreeViewGetImageIndex;
AddBitBtn := CreateToolButton('AddBitBtn', lisAdd, lisPckEditAddFiles, 'laz_add', @AddBitBtnClick);
AddBitBtn := CreateToolButton('AddBitBtn', lisAdd, lisPckEditAddFilesFromFileSystem, 'laz_add', @AddBitBtnClick);
AddMoreBitBtn := CreateToolButton('AddMoreBitBtn', lisDlgAdd, lisPckEditAddOtherItems, 'laz_addmore', @AddMoreBitBtnClick);
RemoveBitBtn := CreateToolButton('RemoveBitBtn', lisRemove, lisPckEditRemoveSelectedItem, 'laz_delete', @RemoveBitBtnClick);
CreateDivider;
OptionsBitBtn := CreateToolButton('OptionsBitBtn', lisOptions, lisPckEditEditGeneralOptions, 'menu_environment_options', @OptionsBitBtnClick);
HelpBitBtn := CreateToolButton('HelpBitBtn', GetButtonCaption(idButtonHelp), lisPkgEdThereAreMoreFunctionsInThePopupmenu, 'menu_help', @HelpBitBtnClick);
HelpBitBtn := CreateToolButton('HelpBitBtn', GetButtonCaption(idButtonHelp), lisPkgEdMoreFunctionsForThePackage, 'menu_help', @HelpBitBtnClick);
OpenButton.LoadGlyphFromResourceName(HInstance, 'laz_open');
OpenButton.Caption:='';

View File

@ -1,11 +1,12 @@
object AddToPackageDlg: TAddToPackageDlg
Left = 413
Height = 322
Top = 604
Height = 357
Top = 535
Width = 658
ActiveControl = PageControl1
BorderIcons = [biSystemMenu, biMaximize]
Caption = 'Add to package'
ClientHeight = 322
ClientHeight = 357
ClientWidth = 658
KeyPreview = True
OnClose = AddToPackageDlgClose
@ -13,10 +14,10 @@ object AddToPackageDlg: TAddToPackageDlg
OnDestroy = FormDestroy
OnKeyDown = AddToPackageDlgKeyDown
Position = poScreenCenter
LCLVersion = '1.3'
LCLVersion = '1.5'
object PageControl1: TPageControl
Left = 0
Height = 282
Height = 319
Top = 0
Width = 658
ActivePage = NewFilePage
@ -26,16 +27,17 @@ object AddToPackageDlg: TAddToPackageDlg
OnChange = PageControl1Change
object NewFilePage: TTabSheet
Caption = 'New File'
ClientHeight = 249
ClientWidth = 654
ClientHeight = 291
ClientWidth = 650
OnResize = NewFilePageResize
object NewFileTreeView: TTreeView
Left = 0
Height = 244
Top = 0
Left = 6
Height = 279
Top = 6
Width = 249
Align = alLeft
BorderSpacing.Bottom = 5
BorderSpacing.Around = 6
DefaultItemHeight = 18
ReadOnly = True
RightClickSelect = True
TabOrder = 0
@ -46,22 +48,24 @@ object AddToPackageDlg: TAddToPackageDlg
end
object NewFileDescriptionGroupBox: TGroupBox
AnchorSideLeft.Control = NewFileTreeView
Left = 249
Height = 244
Top = 0
Width = 405
Left = 261
Height = 279
Top = 6
Width = 383
Align = alClient
BorderSpacing.Bottom = 5
BorderSpacing.Around = 6
Caption = 'NewFileDescriptionGroupBox'
ClientHeight = 223
ClientWidth = 397
ClientHeight = 259
ClientWidth = 379
TabOrder = 1
object NewFileHelpLabel: TLabel
Left = 0
Height = 223
Top = 0
Width = 397
Left = 4
Height = 251
Top = 4
Width = 371
Align = alClient
Anchors = []
BorderSpacing.Around = 4
Caption = 'NewFileHelpLabel'
ParentColor = False
WordWrap = True
@ -70,16 +74,16 @@ object AddToPackageDlg: TAddToPackageDlg
end
object NewComponentPage: TTabSheet
Caption = 'New Component'
ClientHeight = 249
ClientWidth = 654
ClientHeight = 291
ClientWidth = 650
OnResize = NewComponentPageResize
object AncestorTypeLabel: TLabel
AnchorSideTop.Control = AncestorComboBox
AnchorSideTop.Side = asrCenter
Left = 5
Height = 17
Top = 12
Width = 119
Height = 15
Top = 10
Width = 101
Caption = 'AncestorTypeLabel'
ParentColor = False
end
@ -87,9 +91,9 @@ object AddToPackageDlg: TAddToPackageDlg
AnchorSideTop.Control = ClassNameEdit
AnchorSideTop.Side = asrCenter
Left = 5
Height = 17
Top = 45
Width = 107
Height = 15
Top = 39
Width = 87
Caption = 'ClassNameLabel'
ParentColor = False
end
@ -97,9 +101,9 @@ object AddToPackageDlg: TAddToPackageDlg
AnchorSideTop.Control = PalettePageCombobox
AnchorSideTop.Side = asrCenter
Left = 5
Height = 17
Top = 78
Width = 109
Height = 15
Top = 68
Width = 90
Caption = 'PalettePageLabel'
ParentColor = False
end
@ -107,9 +111,9 @@ object AddToPackageDlg: TAddToPackageDlg
AnchorSideTop.Control = ComponentUnitFileEdit
AnchorSideTop.Side = asrCenter
Left = 5
Height = 17
Top = 111
Width = 155
Height = 15
Top = 97
Width = 132
Caption = 'ComponentUnitFileLabel'
ParentColor = False
end
@ -117,9 +121,9 @@ object AddToPackageDlg: TAddToPackageDlg
AnchorSideTop.Control = ComponentUnitNameEdit
AnchorSideTop.Side = asrCenter
Left = 5
Height = 17
Top = 142
Width = 174
Height = 15
Top = 126
Width = 146
Caption = 'ComponentUnitNameLabel'
ParentColor = False
end
@ -127,11 +131,11 @@ object AddToPackageDlg: TAddToPackageDlg
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = NewComponentPage
Left = 184
Height = 29
Height = 23
Top = 6
Width = 200
BorderSpacing.Top = 6
ItemHeight = 0
ItemHeight = 15
OnChange = AncestorComboBoxChange
OnCloseUp = AncestorComboBoxCloseUp
TabOrder = 0
@ -142,10 +146,11 @@ object AddToPackageDlg: TAddToPackageDlg
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = AncestorComboBox
AnchorSideTop.Side = asrCenter
Left = 384
Height = 22
Top = 9
Width = 196
Left = 390
Height = 19
Top = 8
Width = 162
BorderSpacing.Left = 6
Caption = 'AncestorShowAllCheckBox'
Checked = True
OnClick = AncestorShowAllCheckBoxClick
@ -159,8 +164,8 @@ object AddToPackageDlg: TAddToPackageDlg
AnchorSideRight.Control = AncestorComboBox
AnchorSideRight.Side = asrBottom
Left = 184
Height = 25
Top = 41
Height = 23
Top = 35
Width = 200
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
@ -175,11 +180,11 @@ object AddToPackageDlg: TAddToPackageDlg
AnchorSideRight.Control = AncestorComboBox
AnchorSideRight.Side = asrBottom
Left = 184
Height = 29
Top = 72
Height = 23
Top = 64
Width = 200
BorderSpacing.Top = 6
ItemHeight = 0
ItemHeight = 15
TabOrder = 3
Text = 'PalettePageCombobox'
end
@ -189,9 +194,9 @@ object AddToPackageDlg: TAddToPackageDlg
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ComponentUnitFileBrowseButton
Left = 184
Height = 25
Top = 107
Width = 408
Height = 23
Top = 93
Width = 383
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
TabOrder = 4
@ -202,11 +207,11 @@ object AddToPackageDlg: TAddToPackageDlg
AnchorSideTop.Control = ComponentUnitFileEdit
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = ComponentUnitFileShortenButton
Left = 592
Height = 27
Left = 567
Height = 25
Hint = 'Save file dialog'
Top = 106
Width = 26
Top = 92
Width = 35
Anchors = [akTop, akRight]
AutoSize = True
Caption = '...'
@ -221,13 +226,14 @@ object AddToPackageDlg: TAddToPackageDlg
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = NewComponentPage
AnchorSideRight.Side = asrBottom
Left = 618
Height = 27
Left = 602
Height = 25
Hint = 'Shorten or expand filename'
Top = 106
Width = 36
Top = 92
Width = 42
Anchors = [akTop, akRight]
AutoSize = True
BorderSpacing.Right = 6
Caption = '<>'
OnClick = ComponentUnitFileShortenButtonClick
ParentShowHint = False
@ -241,8 +247,8 @@ object AddToPackageDlg: TAddToPackageDlg
AnchorSideRight.Control = AncestorComboBox
AnchorSideRight.Side = asrBottom
Left = 184
Height = 25
Top = 138
Height = 23
Top = 122
Width = 200
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
@ -255,9 +261,9 @@ object AddToPackageDlg: TAddToPackageDlg
AnchorSideTop.Control = ComponentIconSpeedButton
AnchorSideTop.Side = asrCenter
Left = 5
Height = 17
Top = 174
Width = 135
Height = 15
Top = 157
Width = 115
Caption = 'ComponentIconLabel'
ParentColor = False
end
@ -267,7 +273,7 @@ object AddToPackageDlg: TAddToPackageDlg
AnchorSideTop.Side = asrBottom
Left = 184
Height = 26
Top = 169
Top = 151
Width = 28
BorderSpacing.Top = 6
OnClick = ComponentIconSpeedButtonClick
@ -277,13 +283,13 @@ object AddToPackageDlg: TAddToPackageDlg
end
object NewRequirementPage: TTabSheet
Caption = 'New Requirement'
ClientHeight = 249
ClientWidth = 654
ClientHeight = 291
ClientWidth = 650
object NewDepPanel: TPanel
Left = 0
Height = 249
Height = 291
Top = 0
Width = 654
Width = 650
Align = alClient
BevelOuter = bvNone
ChildSizing.LeftRightSpacing = 6
@ -292,14 +298,14 @@ object AddToPackageDlg: TAddToPackageDlg
ChildSizing.VerticalSpacing = 6
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 2
ClientHeight = 249
ClientWidth = 654
ClientHeight = 291
ClientWidth = 650
TabOrder = 0
object DependPkgNameLabel: TLabel
Left = 6
Height = 17
Top = 12
Width = 146
Height = 15
Top = 10
Width = 121
BorderSpacing.CellAlignHorizontal = ccaLeftTop
BorderSpacing.CellAlignVertical = ccaCenter
Caption = 'DependPkgNameLabel'
@ -307,23 +313,23 @@ object AddToPackageDlg: TAddToPackageDlg
end
object DependPkgNameComboBox: TComboBox
AnchorSideLeft.Side = asrBottom
Left = 169
Height = 29
Left = 142
Height = 23
Top = 6
Width = 200
AutoComplete = True
AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending]
Constraints.MinWidth = 200
ItemHeight = 0
ItemHeight = 15
OnChange = DependPkgNameComboBoxChange
TabOrder = 0
Text = 'DependPkgNameComboBox'
end
object DependMinVersionLabel: TLabel
Left = 6
Height = 17
Top = 45
Width = 153
Height = 15
Top = 39
Width = 129
BorderSpacing.CellAlignHorizontal = ccaLeftTop
BorderSpacing.CellAlignVertical = ccaCenter
Caption = 'DependMinVersionLabel'
@ -331,9 +337,9 @@ object AddToPackageDlg: TAddToPackageDlg
end
object DependMinVersionEdit: TEdit
AnchorSideLeft.Side = asrBottom
Left = 169
Height = 25
Top = 41
Left = 142
Height = 23
Top = 35
Width = 200
BorderSpacing.Top = 6
TabOrder = 1
@ -341,9 +347,9 @@ object AddToPackageDlg: TAddToPackageDlg
end
object DependMaxVersionLabel: TLabel
Left = 6
Height = 17
Top = 76
Width = 157
Height = 15
Top = 68
Width = 130
BorderSpacing.CellAlignHorizontal = ccaLeftTop
BorderSpacing.CellAlignVertical = ccaCenter
Caption = 'DependMaxVersionLabel'
@ -351,9 +357,9 @@ object AddToPackageDlg: TAddToPackageDlg
end
object DependMaxVersionEdit: TEdit
AnchorSideLeft.Side = asrBottom
Left = 169
Height = 25
Top = 72
Left = 142
Height = 23
Top = 64
Width = 200
BorderSpacing.Top = 6
TabOrder = 2
@ -363,15 +369,15 @@ object AddToPackageDlg: TAddToPackageDlg
end
object AddFilesPage: TTabSheet
Caption = 'Add Files'
ClientHeight = 249
ClientWidth = 654
ClientHeight = 291
ClientWidth = 650
object FilesListView: TListView
Left = 0
Height = 204
Top = 0
Width = 654
Left = 6
Height = 242
Top = 6
Width = 638
Align = alClient
BorderSpacing.Bottom = 5
BorderSpacing.Around = 6
Columns = <
item
Caption = 'Filename'
@ -389,18 +395,18 @@ object AddToPackageDlg: TAddToPackageDlg
end
object AddFilesBtnPanel: TPanel
Left = 0
Height = 39
Top = 218
Width = 654
Height = 37
Top = 254
Width = 650
Align = alBottom
AutoSize = True
BevelOuter = bvNone
ClientHeight = 39
ClientWidth = 654
ClientHeight = 37
ClientWidth = 650
TabOrder = 1
object FilesShortenButton: TBitBtn
Left = 108
Height = 27
Left = 112
Height = 25
Top = 6
Width = 126
Align = alLeft
@ -411,8 +417,8 @@ object AddToPackageDlg: TAddToPackageDlg
TabOrder = 0
end
object FilesDeleteButton: TBitBtn
Left = 240
Height = 27
Left = 244
Height = 25
Top = 6
Width = 118
Align = alLeft
@ -424,9 +430,9 @@ object AddToPackageDlg: TAddToPackageDlg
end
object FilesDirButton: TBitBtn
Left = 6
Height = 27
Height = 25
Top = 6
Width = 96
Width = 100
Align = alLeft
AutoSize = True
BorderSpacing.Around = 6
@ -439,20 +445,20 @@ object AddToPackageDlg: TAddToPackageDlg
end
object NewFileBtnPanel: TPanel
Left = 0
Height = 40
Top = 282
Height = 38
Top = 319
Width = 658
Align = alBottom
AutoSize = True
BevelOuter = bvNone
ClientHeight = 40
ClientHeight = 38
ClientWidth = 658
TabOrder = 1
object OkButton: TBitBtn
Left = 416
Height = 28
Left = 431
Height = 26
Top = 6
Width = 102
Width = 97
Align = alRight
AutoSize = True
BorderSpacing.Around = 6
@ -499,10 +505,10 @@ object AddToPackageDlg: TAddToPackageDlg
end
object CancelButton: TBitBtn
AnchorSideLeft.Side = asrBottom
Left = 524
Height = 28
Left = 534
Height = 26
Top = 6
Width = 128
Width = 118
Align = alRight
AutoSize = True
BorderSpacing.Around = 6

View File

@ -33,12 +33,10 @@ uses
Math, Classes, SysUtils, LCLProc, LCLType, Forms, Controls, Buttons, ExtDlgs,
StdCtrls, ExtCtrls, Dialogs, FileUtil, ComCtrls, AVL_Tree,
// IDEIntf
NewItemIntf, ProjectIntf, PackageIntf, FormEditingIntf, IDEWindowIntf,
IDEDialogs,
NewItemIntf, ProjectIntf, PackageIntf, FormEditingIntf, IDEWindowIntf, IDEDialogs,
// IDE
LazarusIDEStrConsts, InputHistory, CodeToolManager, IDEDefs,
IDEProcs, EnvironmentOpts, PackageSystem, PackageDefs, ComponentReg,
AddDirToPkgDlg;
LazarusIDEStrConsts, InputHistory, IDEDefs, IDEProcs, EnvironmentOpts,
PackageSystem, PackageDefs, ComponentReg, AddDirToPkgDlg;
type
TAddToPkgType = (
@ -223,6 +221,13 @@ begin
AddDlg.OnGetUnitRegisterInfo:=OnGetUnitRegisterInfo;
AddDlg.LazPackage:=Pkg;
AddDlg.ActivatePage:=Page;
//auto press AddFiles if called with "Add files" page
if Page=d2ptFiles then
AddDlg.FilesDirButton.Click;
//hide tabs for simpler use
AddDlg.PageControl1.ShowTabs:=false;
Result:=AddDlg.ShowModal;
Page:=AddDlg.ActivatePage;
if Result=mrOk then begin

View File

@ -16,7 +16,7 @@ object PackageEditorForm: TPackageEditorForm
OnDestroy = FormDestroy
OnDropFiles = FormDropFiles
Position = poScreenCenter
LCLVersion = '1.3'
LCLVersion = '1.5'
object ToolBar: TToolBar
Left = 0
Height = 48
@ -30,18 +30,18 @@ object PackageEditorForm: TPackageEditorForm
object PropsGroupBox: TGroupBox
Left = 0
Height = 118
Top = 318
Top = 315
Width = 464
Align = alBottom
Caption = 'PropsGroupBox'
ClientHeight = 101
ClientHeight = 97
ClientWidth = 460
TabOrder = 3
object CallRegisterProcCheckBox: TCheckBox
Left = 0
Height = 24
Height = 22
Top = 0
Width = 171
Width = 174
Caption = 'CallRegisterProcCheckBox'
OnChange = CallRegisterProcCheckBoxChange
ParentShowHint = False
@ -51,10 +51,10 @@ object PackageEditorForm: TPackageEditorForm
object AddToUsesPkgSectionCheckBox: TCheckBox
AnchorSideLeft.Control = CallRegisterProcCheckBox
AnchorSideLeft.Side = asrBottom
Left = 181
Height = 24
Left = 184
Height = 22
Top = 0
Width = 201
Width = 207
BorderSpacing.Left = 10
Caption = 'AddToUsesPkgSectionCheckBox'
OnChange = AddToUsesPkgSectionCheckBoxChange
@ -67,9 +67,9 @@ object PackageEditorForm: TPackageEditorForm
AnchorSideTop.Control = MinVersionEdit
AnchorSideTop.Side = asrCenter
Left = 0
Height = 24
Height = 22
Top = 0
Width = 161
Width = 167
Caption = 'UseMinVersionCheckBox'
OnChange = UseMinVersionCheckBoxChange
TabOrder = 2
@ -78,8 +78,8 @@ object PackageEditorForm: TPackageEditorForm
AnchorSideLeft.Control = UseMinVersionCheckBox
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = PropsGroupBox
Left = 171
Height = 25
Left = 177
Height = 23
Top = 0
Width = 100
BorderSpacing.Left = 10
@ -92,9 +92,9 @@ object PackageEditorForm: TPackageEditorForm
AnchorSideTop.Control = MaxVersionEdit
AnchorSideTop.Side = asrCenter
Left = 0
Height = 24
Top = 27
Width = 163
Height = 22
Top = 25
Width = 169
Caption = 'UseMaxVersionCheckBox'
OnChange = UseMaxVersionCheckBoxChange
TabOrder = 4
@ -104,9 +104,9 @@ object PackageEditorForm: TPackageEditorForm
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = MinVersionEdit
AnchorSideTop.Side = asrBottom
Left = 173
Height = 25
Top = 27
Left = 179
Height = 23
Top = 25
Width = 100
BorderSpacing.Left = 10
BorderSpacing.Top = 2
@ -119,9 +119,9 @@ object PackageEditorForm: TPackageEditorForm
AnchorSideTop.Control = MaxVersionEdit
AnchorSideTop.Side = asrBottom
Left = 0
Height = 27
Top = 58
Width = 152
Height = 29
Top = 54
Width = 153
AutoSize = True
BorderSpacing.Top = 6
Caption = 'ApplyDependencyButton'
@ -132,38 +132,36 @@ object PackageEditorForm: TPackageEditorForm
AnchorSideTop.Control = CallRegisterProcCheckBox
AnchorSideTop.Side = asrBottom
Left = 0
Height = 71
Top = 30
Height = 69
Top = 28
Width = 460
Align = alBottom
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Top = 6
Caption = 'RegisteredPluginsGroupBox'
ClientHeight = 54
ClientHeight = 48
ClientWidth = 456
TabOrder = 7
object RegisteredListBox: TListBox
Left = 0
Height = 54
Height = 48
Top = 0
Width = 456
Align = alClient
ItemHeight = 0
OnDrawItem = RegisteredListBoxDrawItem
ScrollWidth = 454
Style = lbOwnerDrawFixed
TabOrder = 0
TopIndex = -1
end
end
object DisableI18NForLFMCheckBox: TCheckBox
AnchorSideLeft.Control = AddToUsesPkgSectionCheckBox
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = AddToUsesPkgSectionCheckBox
Left = 388
Height = 24
Left = 397
Height = 22
Top = 0
Width = 186
Width = 192
BorderSpacing.Left = 6
Caption = 'DisableI18NForLFMCheckBox'
OnChange = DisableI18NForLFMCheckBoxChange
@ -174,8 +172,8 @@ object PackageEditorForm: TPackageEditorForm
end
object StatusBar: TStatusBar
Left = 0
Height = 19
Top = 436
Height = 22
Top = 433
Width = 464
Panels = <>
end
@ -183,7 +181,7 @@ object PackageEditorForm: TPackageEditorForm
Cursor = crVSplit
Left = 0
Height = 5
Top = 313
Top = 310
Width = 464
Align = alBottom
ResizeAnchor = akBottom
@ -246,8 +244,8 @@ object PackageEditorForm: TPackageEditorForm
AnchorSideTop.Side = asrCenter
AnchorSideRight.Side = asrBottom
Left = 163
Height = 28
Top = 0
Height = 23
Top = 3
Width = 300
UseFormActivate = True
ButtonWidth = 23
@ -316,12 +314,11 @@ object PackageEditorForm: TPackageEditorForm
end
object ItemsTreeView: TTreeView
Left = 0
Height = 236
Height = 233
Top = 77
Width = 464
Align = alClient
BorderSpacing.Top = 1
DefaultItemHeight = 18
DragMode = dmAutomatic
MultiSelect = True
PopupMenu = ItemsPopupMenu
@ -351,4 +348,32 @@ object PackageEditorForm: TPackageEditorForm
left = 300
top = 10
end
object AddPopupMenu: TPopupMenu
left = 120
top = 10
object mnuAddDiskFile: TMenuItem
Caption = 'Add file...'
Default = True
OnClick = AddBitBtnClick
end
object MenuItem1: TMenuItem
Caption = '-'
end
object mnuAddDiskFiles: TMenuItem
Caption = 'Add multiple files...'
OnClick = mnuAddDiskFilesClick
end
object mnuAddNewFile: TMenuItem
Caption = 'New file of type...'
OnClick = mnuAddNewFileClick
end
object mnuAddNewComp: TMenuItem
Caption = 'New component...'
OnClick = mnuAddNewCompClick
end
object mnuAddNewReqr: TMenuItem
Caption = 'New requirement...'
OnClick = mnuAddNewReqrClick
end
end
end

View File

@ -176,6 +176,12 @@ type
{ TPackageEditorForm }
TPackageEditorForm = class(TBasePackageEditor,IFilesEditorInterface)
MenuItem1: TMenuItem;
mnuAddDiskFile: TMenuItem;
mnuAddDiskFiles: TMenuItem;
mnuAddNewFile: TMenuItem;
mnuAddNewComp: TMenuItem;
mnuAddNewReqr: TMenuItem;
MoveDownBtn: TSpeedButton;
MoveUpBtn: TSpeedButton;
DirectoryHierarchyButton: TSpeedButton;
@ -183,6 +189,7 @@ type
DisableI18NForLFMCheckBox: TCheckBox;
FilterEdit: TTreeFilterEdit;
FilterPanel: TPanel;
AddPopupMenu: TPopupMenu;
SortAlphabeticallyButton: TSpeedButton;
Splitter1: TSplitter;
// toolbar
@ -192,7 +199,6 @@ type
CompileBitBtn: TToolButton;
UseBitBtn: TToolButton;
AddBitBtn: TToolButton;
AddMoreBitBtn: TToolButton;
RemoveBitBtn: TToolButton;
OptionsBitBtn: TToolButton;
MoreBitBtn: TToolButton;
@ -219,7 +225,6 @@ type
ItemsPopupMenu: TPopupMenu;
MorePopupMenu: TPopupMenu;
procedure AddBitBtnClick(Sender: TObject);
procedure AddMoreBitBtnClick(Sender: TObject);
procedure AddToProjectClick(Sender: TObject);
procedure AddToUsesPkgSectionCheckBoxChange(Sender: TObject);
procedure ApplyDependencyButtonClick(Sender: TObject);
@ -250,6 +255,10 @@ type
procedure ItemsTreeViewDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure ItemsTreeViewKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure mnuAddDiskFilesClick(Sender: TObject);
procedure mnuAddNewCompClick(Sender: TObject);
procedure mnuAddNewReqrClick(Sender: TObject);
procedure mnuAddNewFileClick(Sender: TObject);
procedure MorePopupMenuPopup(Sender: TObject);
procedure ItemsTreeViewDblClick(Sender: TObject);
procedure ItemsTreeViewSelectionChanged(Sender: TObject);
@ -312,6 +321,7 @@ type
procedure SetSortAlphabetically(const AValue: boolean);
procedure SetupComponents;
function OnTreeViewGetImageIndex({%H-}Str: String; Data: TObject; var {%H-}AIsEnabled: Boolean): Integer;
procedure ShowAddDialogEx(AType: TAddToPkgType);
procedure UpdateNodeImage(TVNode: TTreeNode; NodeData: TPENodeData);
procedure UpdatePending;
function CanUpdate(Flag: TPEFlag; Immediately: boolean): boolean;
@ -998,6 +1008,37 @@ begin
Key := VK_UNKNOWN;
end;
procedure TPackageEditorForm.ShowAddDialogEx(AType: TAddToPkgType);
begin
if LazPackage=nil then exit;
BeginUpdate;
try
ShowAddDialog(AType);
finally
EndUpdate;
end;
end;
procedure TPackageEditorForm.mnuAddDiskFilesClick(Sender: TObject);
begin
ShowAddDialogEx(d2ptFiles);
end;
procedure TPackageEditorForm.mnuAddNewCompClick(Sender: TObject);
begin
ShowAddDialogEx(d2ptNewComponent);
end;
procedure TPackageEditorForm.mnuAddNewReqrClick(Sender: TObject);
begin
ShowAddDialogEx(d2ptRequiredPkg);
end;
procedure TPackageEditorForm.mnuAddNewFileClick(Sender: TObject);
begin
ShowAddDialogEx(d2ptNewFile);
end;
procedure TPackageEditorForm.ItemsTreeViewSelectionChanged(Sender: TObject);
begin
if fUpdateLock>0 then exit;
@ -1549,17 +1590,6 @@ begin
end;
end;
procedure TPackageEditorForm.AddMoreBitBtnClick(Sender: TObject);
begin
if LazPackage=nil then exit;
BeginUpdate;
try
ShowAddDialog(fLastDlgPage);
finally
EndUpdate;
end;
end;
procedure TPackageEditorForm.AddToUsesPkgSectionCheckBoxChange(Sender: TObject);
var
CurFile: TPkgFile;
@ -1864,18 +1894,25 @@ begin
SaveBitBtn := CreateToolButton('SaveBitBtn', lisMenuSave, lisPckEditSavePackage, 'laz_save', @SaveBitBtnClick);
CompileBitBtn := CreateToolButton('CompileBitBtn', lisCompile, lisPckEditCompilePackage, 'pkg_compile', @CompileBitBtnClick);
UseBitBtn := CreateToolButton('UseBitBtn', lisPckEditInstall, lisPckEditInstallPackageInTheIDE, 'pkg_install', nil);
UseBitBtn := CreateToolButton('UseBitBtn', lisUseSub, lisClickToSeeTheChoices, 'pkg_install', nil);
CreateDivider;
AddBitBtn := CreateToolButton('AddBitBtn', lisAdd, lisPckEditAddFiles, 'laz_add', @AddBitBtnClick);
AddMoreBitBtn := CreateToolButton('AddMoreBitBtn', lisDlgAdd, lisPckEditAddOtherItems, 'laz_addmore', @AddMoreBitBtnClick);
AddBitBtn := CreateToolButton('AddBitBtn', lisAddSub, lisClickToSeeTheChoices, 'laz_add', nil);
RemoveBitBtn := CreateToolButton('RemoveBitBtn', lisRemove, lisPckEditRemoveSelectedItem, 'laz_delete', @RemoveBitBtnClick);
CreateDivider;
OptionsBitBtn := CreateToolButton('OptionsBitBtn', lisOptions, lisPckEditEditGeneralOptions, 'pkg_properties', @OptionsBitBtnClick);
HelpBitBtn := CreateToolButton('HelpBitBtn', GetButtonCaption(idButtonHelp), lisPkgEdThereAreMoreFunctionsInThePopupmenu, 'menu_help', @HelpBitBtnClick);
MoreBitBtn := CreateToolButton('MoreBitBtn', lisMoreSub, lisPkgEdThereAreMoreFunctionsInThePopupmenu, '', nil);
HelpBitBtn := CreateToolButton('HelpBitBtn', GetButtonCaption(idButtonHelp), '', 'menu_help', @HelpBitBtnClick);
MoreBitBtn := CreateToolButton('MoreBitBtn', lisMoreSub, lisPkgEdMoreFunctionsForThePackage, '', nil);
UseBitBtn.DropdownMenu := UsePopupMenu;
AddBitBtn.DropdownMenu := AddPopupMenu;
MoreBitBtn.DropdownMenu := MorePopupMenu;
mnuAddDiskFile.Caption := lisPckEditAddFilesFromFileSystem;
mnuAddDiskFiles.Caption := lisAddFilesInDirectory;
mnuAddNewFile.Caption := lisA2PNewFile;
mnuAddNewComp.Caption := lisA2PNewComponent;
mnuAddNewReqr.Caption := lisProjAddNewRequirement;
// Buttons on FilterPanel
OpenButton.LoadGlyphFromResourceName(HInstance, 'laz_open');
OpenButton.Hint:=lisOpenFile2;
@ -2270,11 +2307,6 @@ begin
AddBitBtn.Enabled:=Writable;
RemoveBitBtn.Enabled:=Writable and (ActiveFileCnt+ActiveDepCount>0);
OpenButton.Enabled:=(FileCount+DepCount>0);
UseBitBtn.Caption:=lisUseSub;
UseBitBtn.Hint:=lisClickToSeeThePossibleUses;
UseBitBtn.OnClick:=nil;
UseBitBtn.DropdownMenu:=UsePopupMenu;
OptionsBitBtn.Enabled:=true;
end;
function TPackageEditorForm.OnTreeViewGetImageIndex(Str: String; Data: TObject;