From c476451318a5c622f9b94aa316a3ed07fe2337cb Mon Sep 17 00:00:00 2001 From: juha Date: Tue, 24 Jan 2012 21:10:15 +0000 Subject: [PATCH] IDE: Try to improve Package Editor's GUI. The menu system does not really work. git-svn-id: trunk@34910 - --- packager/packageeditor.lfm | 180 +++++++++++++++++++++++-------------- packager/packageeditor.pas | 155 +++++++++++++++++++++----------- 2 files changed, 216 insertions(+), 119 deletions(-) diff --git a/packager/packageeditor.lfm b/packager/packageeditor.lfm index fb92518d50..55164efd82 100644 --- a/packager/packageeditor.lfm +++ b/packager/packageeditor.lfm @@ -1,7 +1,7 @@ inherited PackageEditorForm: TPackageEditorForm - Left = 383 + Left = 278 Height = 455 - Top = 201 + Top = 490 Width = 577 Caption = 'PackageEditorForm' ClientHeight = 455 @@ -25,18 +25,18 @@ inherited PackageEditorForm: TPackageEditorForm object FilePropsGroupBox: TGroupBox[1] Left = 0 Height = 118 - Top = 317 + Top = 314 Width = 577 Align = alBottom Caption = 'FilePropsGroupBox' - ClientHeight = 102 - ClientWidth = 573 + ClientHeight = 96 + ClientWidth = 569 TabOrder = 2 object CallRegisterProcCheckBox: TCheckBox Left = 0 - Height = 24 + Height = 23 Top = 0 - Width = 171 + Width = 222 Caption = 'CallRegisterProcCheckBox' OnChange = CallRegisterProcCheckBoxChange ParentShowHint = False @@ -46,10 +46,10 @@ inherited PackageEditorForm: TPackageEditorForm object AddToUsesPkgSectionCheckBox: TCheckBox AnchorSideLeft.Control = CallRegisterProcCheckBox AnchorSideLeft.Side = asrBottom - Left = 181 - Height = 24 + Left = 232 + Height = 23 Top = 0 - Width = 201 + Width = 264 BorderSpacing.Left = 10 Caption = 'AddToUsesPkgSectionCheckBox' OnChange = AddToUsesPkgSectionCheckBoxChange @@ -62,9 +62,9 @@ inherited PackageEditorForm: TPackageEditorForm AnchorSideTop.Control = MinVersionEdit AnchorSideTop.Side = asrCenter Left = 0 - Height = 24 - Top = 0 - Width = 160 + Height = 23 + Top = 3 + Width = 211 Caption = 'UseMinVersionCheckBox' OnChange = UseMinVersionCheckBoxChange TabOrder = 2 @@ -73,8 +73,8 @@ inherited PackageEditorForm: TPackageEditorForm AnchorSideLeft.Control = UseMinVersionCheckBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FilePropsGroupBox - Left = 170 - Height = 24 + Left = 221 + Height = 28 Top = 0 Width = 100 BorderSpacing.Left = 10 @@ -87,9 +87,9 @@ inherited PackageEditorForm: TPackageEditorForm AnchorSideTop.Control = MaxVersionEdit AnchorSideTop.Side = asrCenter Left = 0 - Height = 24 - Top = 26 - Width = 163 + Height = 23 + Top = 33 + Width = 216 Caption = 'UseMaxVersionCheckBox' OnChange = UseMaxVersionCheckBoxChange TabOrder = 4 @@ -99,9 +99,9 @@ inherited PackageEditorForm: TPackageEditorForm AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = MinVersionEdit AnchorSideTop.Side = asrBottom - Left = 173 - Height = 24 - Top = 26 + Left = 226 + Height = 28 + Top = 30 Width = 100 BorderSpacing.Left = 10 BorderSpacing.Top = 2 @@ -114,9 +114,9 @@ inherited PackageEditorForm: TPackageEditorForm AnchorSideTop.Control = MaxVersionEdit AnchorSideTop.Side = asrBottom Left = 0 - Height = 26 - Top = 56 - Width = 147 + Height = 30 + Top = 64 + Width = 193 AutoSize = True BorderSpacing.Top = 6 Caption = 'ApplyDependencyButton' @@ -127,38 +127,36 @@ inherited PackageEditorForm: TPackageEditorForm AnchorSideTop.Control = CallRegisterProcCheckBox AnchorSideTop.Side = asrBottom Left = 0 - Height = 72 - Top = 30 - Width = 573 + Height = 67 + Top = 29 + Width = 569 Align = alBottom Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Top = 6 Caption = 'RegisteredPluginsGroupBox' - ClientHeight = 56 - ClientWidth = 569 + ClientHeight = 45 + ClientWidth = 561 TabOrder = 7 object RegisteredListBox: TListBox Left = 0 - Height = 56 + Height = 45 Top = 0 - Width = 569 + Width = 561 Align = alClient ItemHeight = 0 OnDrawItem = RegisteredListBoxDrawItem - ScrollWidth = 567 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 = 502 + Height = 23 Top = 0 - Width = 184 + Width = 241 BorderSpacing.Left = 6 Caption = 'DisableI18NForLFMCheckBox' OnChange = DisableI18NForLFMCheckBoxChange @@ -169,8 +167,8 @@ inherited PackageEditorForm: TPackageEditorForm end object StatusBar: TStatusBar[2] Left = 0 - Height = 20 - Top = 435 + Height = 23 + Top = 432 Width = 577 Panels = <> end @@ -178,90 +176,137 @@ inherited PackageEditorForm: TPackageEditorForm Cursor = crVSplit Left = 0 Height = 5 - Top = 312 + Top = 309 Width = 577 Align = alBottom ResizeAnchor = akBottom end object ItemsPanel: TPanel[4] Left = 0 - Height = 264 + Height = 261 Top = 48 Width = 577 Align = alClient BevelOuter = bvNone - ClientHeight = 264 + ClientHeight = 261 ClientWidth = 577 TabOrder = 1 object FilesTreeView: TTreeView AnchorSideTop.Control = FilterEdit AnchorSideTop.Side = asrBottom Left = 0 - Height = 237 - Top = 27 + Height = 230 + Top = 31 Width = 577 Align = alBottom Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Top = 3 - DefaultItemHeight = 16 PopupMenu = FilesPopupMenu ReadOnly = True RightClickSelect = True TabOrder = 1 - OnDblClick = FilesTreeViewDblClick + OnDblClick = FixFilesCaseMenuItemClick OnKeyPress = FilesTreeViewKeyPress OnSelectionChanged = FilesTreeViewSelectionChanged Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw] end - object DirectoryHierarchySpeedButton: TSpeedButton - AnchorSideLeft.Control = ItemsPanel + object DirectoryHierarchyButton: TSpeedButton + AnchorSideLeft.Control = DummyButton + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = OpenButton + AnchorSideTop.Side = asrCenter AnchorSideBottom.Side = asrBottom - Left = 0 - Height = 4 - Top = 0 - Width = 4 + Left = 42 + Height = 25 + Top = 3 + Width = 25 AllowAllUp = True + Anchors = [akTop, akLeft, akBottom] AutoSize = True + BorderSpacing.Left = 1 + Constraints.MinHeight = 25 + Constraints.MinWidth = 25 GroupIndex = 1 NumGlyphs = 0 - OnClick = DirectoryHierarchySpeedButtonClick + OnClick = DirectoryHierarchyButtonClick ShowHint = True ParentShowHint = False end - object SortAlphabeticallySpeedButton: TSpeedButton - AnchorSideLeft.Control = DirectoryHierarchySpeedButton + object SortAlphabeticallyButton: TSpeedButton + AnchorSideLeft.Control = DirectoryHierarchyButton AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = OpenButton + AnchorSideTop.Side = asrCenter AnchorSideBottom.Side = asrBottom - Left = 4 - Height = 4 - Top = 0 - Width = 4 + Left = 68 + Height = 25 + Top = 3 + Width = 25 AllowAllUp = True AutoSize = True + BorderSpacing.Left = 1 + Constraints.MinHeight = 25 + Constraints.MinWidth = 25 GroupIndex = 2 NumGlyphs = 0 - OnClick = SortAlphabeticallySpeedButtonClick + OnClick = SortAlphabeticallyButtonClick ShowHint = True ParentShowHint = False end object FilterEdit: TTreeFilterEdit - AnchorSideLeft.Control = SortAlphabeticallySpeedButton + AnchorSideLeft.Control = SortAlphabeticallyButton AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ItemsPanel AnchorSideRight.Side = asrBottom - Left = 8 - Height = 24 + Left = 96 + Height = 28 Top = 0 - Width = 546 + Width = 458 ButtonWidth = 23 NumGlyphs = 0 Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 3 Font.Color = clBtnShadow MaxLength = 0 ParentFont = False TabOrder = 0 FilteredTreeview = FilesTreeView end + object OpenButton: TSpeedButton + AnchorSideLeft.Control = ItemsPanel + AnchorSideBottom.Side = asrBottom + Left = 0 + Height = 25 + Top = 3 + Width = 25 + AllowAllUp = True + Anchors = [akTop, akLeft, akBottom] + AutoSize = True + Constraints.MinHeight = 25 + Constraints.MinWidth = 25 + NumGlyphs = 0 + OnClick = OpenFileMenuItemClick + ShowHint = True + ParentShowHint = False + end + object DummyButton: TSpeedButton + AnchorSideLeft.Control = OpenButton + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = OpenButton + AnchorSideTop.Side = asrCenter + AnchorSideBottom.Side = asrBottom + Left = 26 + Height = 12 + Top = 9 + Width = 15 + AllowAllUp = True + Anchors = [akTop, akLeft, akBottom] + BorderSpacing.Left = 1 + NumGlyphs = 0 + OnClick = DirectoryHierarchyButtonClick + ShowHint = True + ParentShowHint = False + end end object FilesPopupMenu: TPopupMenu[5] OnPopup = FilesPopupMenuPopup @@ -270,7 +315,12 @@ inherited PackageEditorForm: TPackageEditorForm end object UsePopupMenu: TPopupMenu[6] OnPopup = UsePopupMenuPopup - left = 65 - top = 80 + left = 80 + top = 112 + end + object MorePopupMenu: TPopupMenu[7] + OnPopup = MorePopupMenuPopup + left = 264 + top = 192 end end diff --git a/packager/packageeditor.pas b/packager/packageeditor.pas index d06d05282c..9ac49c8f05 100644 --- a/packager/packageeditor.pas +++ b/packager/packageeditor.pas @@ -140,20 +140,23 @@ type { TPackageEditorForm } TPackageEditorForm = class(TBasePackageEditor) - DirectoryHierarchySpeedButton: TSpeedButton; + DirectoryHierarchyButton: TSpeedButton; + OpenButton: TSpeedButton; DisableI18NForLFMCheckBox: TCheckBox; FilterEdit: TTreeFilterEdit; ItemsPanel: TPanel; - SortAlphabeticallySpeedButton: TSpeedButton; + DummyButton: TSpeedButton; + MorePopupMenu: TPopupMenu; + SortAlphabeticallyButton: TSpeedButton; Splitter1: TSplitter; // toolbar ToolBar: TToolBar; - // buttons + // toolbuttons SaveBitBtn: TToolButton; CompileBitBtn: TToolButton; + UseBitBtn: TToolButton; AddBitBtn: TToolButton; RemoveBitBtn: TToolButton; - UseBitBtn: TToolButton; OptionsBitBtn: TToolButton; MoreBitBtn: TToolButton; HelpBitBtn: TToolButton; @@ -189,11 +192,12 @@ type procedure CompileBitBtnClick(Sender: TObject); procedure CompileCleanClick(Sender: TObject); procedure CreateMakefileClick(Sender: TObject); - procedure DirectoryHierarchySpeedButtonClick(Sender: TObject); + procedure DirectoryHierarchyButtonClick(Sender: TObject); procedure DisableI18NForLFMCheckBoxChange(Sender: TObject); procedure EditVirtualUnitMenuItemClick(Sender: TObject); procedure ExpandDirectoryMenuItemClick(Sender: TObject); procedure FilesPopupMenuPopup(Sender: TObject); + procedure MorePopupMenuPopup(Sender: TObject); procedure FilesTreeViewDblClick(Sender: TObject); procedure FilesTreeViewKeyPress(Sender: TObject; var Key: Char); procedure FilesTreeViewSelectionChanged(Sender: TObject); @@ -221,7 +225,7 @@ type procedure SetDependencyDefaultFilenameMenuItemClick(Sender: TObject); procedure SetDependencyPreferredFilenameMenuItemClick(Sender: TObject); procedure ShowMissingFilesMenuItemClick(Sender: TObject); - procedure SortAlphabeticallySpeedButtonClick(Sender: TObject); + procedure SortAlphabeticallyButtonClick(Sender: TObject); procedure SortFilesMenuItemClick(Sender: TObject); procedure UninstallClick(Sender: TObject); procedure UseAllUnitsInDirectoryMenuItemClick(Sender: TObject); @@ -664,6 +668,51 @@ begin end else PkgEditMenuSectionDependency.Visible:=false; + finally + PackageEditorMenuRoot.EndUpdate; + end; + //debugln(['TPackageEditorForm.FilesPopupMenuPopup END ',FilesPopupMenu.Items.Count]); PackageEditorMenuRoot.WriteDebugReport(' ',true); +end; + +procedure TPackageEditorForm.MorePopupMenuPopup(Sender: TObject); +var + CurDependency: TPkgDependency; + Removed: boolean; + CurFile: TPkgFile; + Writable: Boolean; + FileIndex: Integer; + CurNode: TTreeNode; + IsDir: Boolean; + + procedure SetItem(Item: TIDEMenuCommand; AnOnClick: TNotifyEvent; + aShow: boolean = true; AEnable: boolean = true); + begin + //debugln(['SetItem ',Item.Caption,' Visible=',aShow,' Enable=',AEnable]); + Item.OnClick:=AnOnClick; + Item.Visible:=aShow; + Item.Enabled:=AEnable; + end; + +begin + PackageEditorMenuRoot.MenuItem:=MorePopupMenu.Items; + PackageEditorMenuRoot.BeginUpdate; + try + CurNode:=FilesTreeView.Selected; + CurDependency:=GetCurrentDependency(Removed); + Writable:=(not LazPackage.ReadOnly); + if (CurDependency=nil) then + CurFile:=GetCurrentFile(Removed) + else + CurFile:=nil; + IsDir:=IsDirectoryNode(CurNode) or (CurNode=FFilesNode); + + PkgEditMenuSectionFileType.Clear; + + // items for all files + SetItem(PkgEditMenuSortFiles,@SortFilesMenuItemClick,(LazPackage.FileCount>1),Writable); + SetItem(PkgEditMenuFixFilesCase,@FixFilesCaseMenuItemClick,(LazPackage.FileCount>1),Writable); + SetItem(PkgEditMenuShowMissingFiles,@ShowMissingFilesMenuItemClick,(LazPackage.FileCount>1),Writable); + SetItem(PkgEditMenuAddToProject,@AddToProjectClick,true,CanBeAddedToProject); SetItem(PkgEditMenuInstall,@InstallClick,true,(not LazPackage.AutoCreated) and (LazPackage.PackageType in [lptDesignTime,lptRunAndDesignTime])); @@ -682,20 +731,15 @@ begin SetItem(PkgEditMenuRecompileAllRequired,@CompileAllCleanClick,true,CompileBitBtn.Enabled); SetItem(PkgEditMenuCreateMakefile,@CreateMakefileClick,true,CompileBitBtn.Enabled); - SetItem(PkgEditMenuAdd,@AddBitBtnClick,true,AddBitBtn.Enabled); - SetItem(PkgEditMenuRemove,@RemoveBitBtnClick,true,RemoveBitBtn.Enabled); - - SetItem(PkgEditMenuGeneralOptions,@OptionsBitBtnClick,true,OptionsBitBtn.Enabled); SetItem(PkgEditMenuViewPackageSource,@ViewPkgSourceClick); finally PackageEditorMenuRoot.EndUpdate; end; - //debugln(['TPackageEditorForm.FilesPopupMenuPopup END ',FilesPopupMenu.Items.Count]); PackageEditorMenuRoot.WriteDebugReport(' ',true); end; -procedure TPackageEditorForm.SortAlphabeticallySpeedButtonClick(Sender: TObject); +procedure TPackageEditorForm.SortAlphabeticallyButtonClick(Sender: TObject); begin - SortAlphabetically:=SortAlphabeticallySpeedButton.Down; + SortAlphabetically:=SortAlphabeticallyButton.Down; end; procedure TPackageEditorForm.UsePopupMenuPopup(Sender: TObject); @@ -800,19 +844,12 @@ begin FilesTreeView.EndUpdate; end; -procedure TPackageEditorForm.MoveFileUpMenuItemClick(Sender: TObject); -begin - DoMoveCurrentFile(-1); -end; - -procedure TPackageEditorForm.SetDependencyDefaultFilenameMenuItemClick( - Sender: TObject); +procedure TPackageEditorForm.SetDependencyDefaultFilenameMenuItemClick(Sender: TObject); begin SetDependencyDefaultFilename(false); end; -procedure TPackageEditorForm.SetDependencyPreferredFilenameMenuItemClick( - Sender: TObject); +procedure TPackageEditorForm.SetDependencyPreferredFilenameMenuItemClick(Sender: TObject); begin SetDependencyDefaultFilename(true); end; @@ -839,6 +876,11 @@ begin DoCollapseDirectory; end; +procedure TPackageEditorForm.MoveFileUpMenuItemClick(Sender: TObject); +begin + DoMoveCurrentFile(-1); +end; + procedure TPackageEditorForm.MoveFileDownMenuItemClick(Sender: TObject); begin DoMoveCurrentFile(1); @@ -1415,9 +1457,9 @@ begin PackageEditors.CreateMakefile(LazPackage); end; -procedure TPackageEditorForm.DirectoryHierarchySpeedButtonClick(Sender: TObject); +procedure TPackageEditorForm.DirectoryHierarchyButtonClick(Sender: TObject); begin - ShowDirectoryHierarchy:=DirectoryHierarchySpeedButton.Down; + ShowDirectoryHierarchy:=DirectoryHierarchyButton.Down; end; procedure TPackageEditorForm.DisableI18NForLFMCheckBoxChange(Sender: TObject); @@ -1474,41 +1516,45 @@ procedure TPackageEditorForm.SetupComponents; end; begin - ImageIndexFiles := IDEImages.LoadImage(16, 'pkg_files'); - ImageIndexRemovedFiles := IDEImages.LoadImage(16, 'pkg_removedfiles'); - ImageIndexRequired := IDEImages.LoadImage(16, 'pkg_required'); + ImageIndexFiles := IDEImages.LoadImage(16, 'pkg_files'); + ImageIndexRemovedFiles := IDEImages.LoadImage(16, 'pkg_removedfiles'); + ImageIndexRequired := IDEImages.LoadImage(16, 'pkg_required'); ImageIndexRemovedRequired := IDEImages.LoadImage(16, 'pkg_removedrequired'); - ImageIndexUnit := IDEImages.LoadImage(16, 'pkg_unit'); - ImageIndexRegisterUnit := IDEImages.LoadImage(16, 'pkg_registerunit'); - ImageIndexLFM := IDEImages.LoadImage(16, 'pkg_lfm'); - ImageIndexLRS := IDEImages.LoadImage(16, 'pkg_lrs'); - ImageIndexInclude := IDEImages.LoadImage(16, 'pkg_include'); - ImageIndexIssues := IDEImages.LoadImage(16, 'pkg_issues'); - ImageIndexText := IDEImages.LoadImage(16, 'pkg_text'); - ImageIndexBinary := IDEImages.LoadImage(16, 'pkg_binary'); - ImageIndexConflict := IDEImages.LoadImage(16, 'pkg_conflict'); - ImageIndexDirectory := IDEImages.LoadImage(16, 'pkg_files'); - - FilterEdit.OnGetImageIndex:=@ChooseImageIndex; - SortAlphabeticallySpeedButton.Hint:=lisPESortFilesAlphabetically; - SortAlphabeticallySpeedButton.LoadGlyphFromLazarusResource('pkg_sortalphabetically'); - DirectoryHierarchySpeedButton.Hint:=lisPEShowDirectoryHierarchy; - DirectoryHierarchySpeedButton.LoadGlyphFromLazarusResource('pkg_hierarchical'); + ImageIndexUnit := IDEImages.LoadImage(16, 'pkg_unit'); + ImageIndexRegisterUnit := IDEImages.LoadImage(16, 'pkg_registerunit'); + ImageIndexLFM := IDEImages.LoadImage(16, 'pkg_lfm'); + ImageIndexLRS := IDEImages.LoadImage(16, 'pkg_lrs'); + ImageIndexInclude := IDEImages.LoadImage(16, 'pkg_include'); + ImageIndexIssues := IDEImages.LoadImage(16, 'pkg_issues'); + ImageIndexText := IDEImages.LoadImage(16, 'pkg_text'); + ImageIndexBinary := IDEImages.LoadImage(16, 'pkg_binary'); + ImageIndexConflict := IDEImages.LoadImage(16, 'pkg_conflict'); + ImageIndexDirectory := IDEImages.LoadImage(16, 'pkg_files'); + FilesTreeView.Images := IDEImages.Images_16; ToolBar.Images := IDEImages.Images_16; + FilterEdit.OnGetImageIndex:=@ChooseImageIndex; - SaveBitBtn := CreateToolButton('SaveBitBtn', lisMenuSave, lisPckEditSavePackage, 'laz_save', @SaveBitBtnClick); - CompileBitBtn := CreateToolButton('CompileBitBtn', lisPckEditCompile, lisPckEditCompilePackage, 'pkg_compile', @CompileBitBtnClick); - UseBitBtn := CreateToolButton('UseBitBtn', lisPckEditInstall, lisPckEditInstallPackageInTheIDE, 'pkg_install', nil); + SaveBitBtn := CreateToolButton('SaveBitBtn', lisMenuSave, lisPckEditSavePackage, 'laz_save', @SaveBitBtnClick); + CompileBitBtn := CreateToolButton('CompileBitBtn', lisPckEditCompile, lisPckEditCompilePackage, 'pkg_compile', nil{@CompileBitBtnClick}); + UseBitBtn := CreateToolButton('UseBitBtn', lisPckEditInstall, lisPckEditInstallPackageInTheIDE, 'pkg_install', nil); CreateDivider; - AddBitBtn := CreateToolButton('AddBitBtn', lisCodeTemplAdd, lisPckEditAddAnItem, 'laz_add', @AddBitBtnClick); - RemoveBitBtn := CreateToolButton('RemoveBitBtn', lisExtToolRemove, lisPckEditRemoveSelectedItem, 'laz_delete', @RemoveBitBtnClick); + AddBitBtn := CreateToolButton('AddBitBtn', lisCodeTemplAdd, lisPckEditAddAnItem, 'laz_add', @AddBitBtnClick); + RemoveBitBtn := CreateToolButton('RemoveBitBtn', lisExtToolRemove, lisPckEditRemoveSelectedItem, 'laz_delete', @RemoveBitBtnClick); CreateDivider; OptionsBitBtn := CreateToolButton('OptionsBitBtn', dlgFROpts, lisPckEditEditGeneralOptions, 'pkg_properties', @OptionsBitBtnClick); - HelpBitBtn := CreateToolButton('HelpBitBtn', GetButtonCaption(idButtonHelp), lisPkgEdThereAreMoreFunctionsInThePopupmenu, 'menu_help', @HelpBitBtnClick); - MoreBitBtn := CreateToolButton('MoreBitBtn', lisPckEditMore, lisPkgEdThereAreMoreFunctionsInThePopupmenu, '', nil); + HelpBitBtn := CreateToolButton('HelpBitBtn', GetButtonCaption(idButtonHelp), lisPkgEdThereAreMoreFunctionsInThePopupmenu, 'menu_help', @HelpBitBtnClick); + MoreBitBtn := CreateToolButton('MoreBitBtn', lisPckEditMore, lisPkgEdThereAreMoreFunctionsInThePopupmenu, '', nil); - MoreBitBtn.DropdownMenu := FilesPopupMenu; + MoreBitBtn.DropdownMenu := MorePopupMenu; + + OpenButton.LoadGlyphFromLazarusResource('laz_open'); + OpenButton.Caption:=''; + OpenButton.Hint:=lisOpenFile2; + SortAlphabeticallyButton.Hint:=lisPESortFilesAlphabetically; + SortAlphabeticallyButton.LoadGlyphFromLazarusResource('pkg_sortalphabetically'); + DirectoryHierarchyButton.Hint:=lisPEShowDirectoryHierarchy; + DirectoryHierarchyButton.LoadGlyphFromLazarusResource('pkg_hierarchical'); FilesTreeView.BeginUpdate; FFilesNode:=FilesTreeView.Items.Add(nil, dlgEnvFiles); @@ -1518,7 +1564,6 @@ begin FRequiredPackagesNode.ImageIndex:=ImageIndexRequired; FRequiredPackagesNode.SelectedIndex:=FRequiredPackagesNode.ImageIndex; FilesTreeView.EndUpdate; - FilesTreeView.Images := IDEImages.Images_16; FilePropsGroupBox.Caption:=lisPckEditFileProperties; @@ -1571,7 +1616,7 @@ begin //debugln(['TPackageEditorForm.SetShowDirectoryHierachy Old=',FShowDirectoryHierarchy,' New=',AValue]); if FShowDirectoryHierarchy=AValue then exit; FShowDirectoryHierarchy:=AValue; - DirectoryHierarchySpeedButton.Down:=FShowDirectoryHierarchy; + DirectoryHierarchyButton.Down:=FShowDirectoryHierarchy; FilterEdit.ShowDirHierarchy:=FShowDirectoryHierarchy; FilterEdit.InvalidateFilter; end; @@ -1580,7 +1625,7 @@ procedure TPackageEditorForm.SetSortAlphabetically(const AValue: boolean); begin if FSortAlphabetically=AValue then exit; FSortAlphabetically:=AValue; - SortAlphabeticallySpeedButton.Down:=FSortAlphabetically; + SortAlphabeticallyButton.Down:=FSortAlphabetically; FilterEdit.SortData:=FSortAlphabetically; FilterEdit.InvalidateFilter; end; @@ -1619,6 +1664,8 @@ begin and (FilesTreeView.Selected<>nil) and ((TObject(FilesTreeView.Selected.Data) is TFileNameItem) or (FilesTreeView.Selected.Parent=FRequiredPackagesNode)); + OpenButton.Enabled:=(FilesTreeView.Selected<>nil) + and (TObject(FilesTreeView.Selected.Data) is TFileNameItem); UseBitBtn.Caption:=lisUse; UseBitBtn.Hint:=lisClickToSeeThePossibleUses; UseBitBtn.OnClick:=nil;