IDE: Try to improve Package Editor's GUI. The menu system does not really work.

git-svn-id: trunk@34910 -
This commit is contained in:
juha 2012-01-24 21:10:15 +00:00
parent aceaac1b7a
commit c476451318
2 changed files with 216 additions and 119 deletions

View File

@ -1,7 +1,7 @@
inherited PackageEditorForm: TPackageEditorForm inherited PackageEditorForm: TPackageEditorForm
Left = 383 Left = 278
Height = 455 Height = 455
Top = 201 Top = 490
Width = 577 Width = 577
Caption = 'PackageEditorForm' Caption = 'PackageEditorForm'
ClientHeight = 455 ClientHeight = 455
@ -25,18 +25,18 @@ inherited PackageEditorForm: TPackageEditorForm
object FilePropsGroupBox: TGroupBox[1] object FilePropsGroupBox: TGroupBox[1]
Left = 0 Left = 0
Height = 118 Height = 118
Top = 317 Top = 314
Width = 577 Width = 577
Align = alBottom Align = alBottom
Caption = 'FilePropsGroupBox' Caption = 'FilePropsGroupBox'
ClientHeight = 102 ClientHeight = 96
ClientWidth = 573 ClientWidth = 569
TabOrder = 2 TabOrder = 2
object CallRegisterProcCheckBox: TCheckBox object CallRegisterProcCheckBox: TCheckBox
Left = 0 Left = 0
Height = 24 Height = 23
Top = 0 Top = 0
Width = 171 Width = 222
Caption = 'CallRegisterProcCheckBox' Caption = 'CallRegisterProcCheckBox'
OnChange = CallRegisterProcCheckBoxChange OnChange = CallRegisterProcCheckBoxChange
ParentShowHint = False ParentShowHint = False
@ -46,10 +46,10 @@ inherited PackageEditorForm: TPackageEditorForm
object AddToUsesPkgSectionCheckBox: TCheckBox object AddToUsesPkgSectionCheckBox: TCheckBox
AnchorSideLeft.Control = CallRegisterProcCheckBox AnchorSideLeft.Control = CallRegisterProcCheckBox
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
Left = 181 Left = 232
Height = 24 Height = 23
Top = 0 Top = 0
Width = 201 Width = 264
BorderSpacing.Left = 10 BorderSpacing.Left = 10
Caption = 'AddToUsesPkgSectionCheckBox' Caption = 'AddToUsesPkgSectionCheckBox'
OnChange = AddToUsesPkgSectionCheckBoxChange OnChange = AddToUsesPkgSectionCheckBoxChange
@ -62,9 +62,9 @@ inherited PackageEditorForm: TPackageEditorForm
AnchorSideTop.Control = MinVersionEdit AnchorSideTop.Control = MinVersionEdit
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 0 Left = 0
Height = 24 Height = 23
Top = 0 Top = 3
Width = 160 Width = 211
Caption = 'UseMinVersionCheckBox' Caption = 'UseMinVersionCheckBox'
OnChange = UseMinVersionCheckBoxChange OnChange = UseMinVersionCheckBoxChange
TabOrder = 2 TabOrder = 2
@ -73,8 +73,8 @@ inherited PackageEditorForm: TPackageEditorForm
AnchorSideLeft.Control = UseMinVersionCheckBox AnchorSideLeft.Control = UseMinVersionCheckBox
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = FilePropsGroupBox AnchorSideTop.Control = FilePropsGroupBox
Left = 170 Left = 221
Height = 24 Height = 28
Top = 0 Top = 0
Width = 100 Width = 100
BorderSpacing.Left = 10 BorderSpacing.Left = 10
@ -87,9 +87,9 @@ inherited PackageEditorForm: TPackageEditorForm
AnchorSideTop.Control = MaxVersionEdit AnchorSideTop.Control = MaxVersionEdit
AnchorSideTop.Side = asrCenter AnchorSideTop.Side = asrCenter
Left = 0 Left = 0
Height = 24 Height = 23
Top = 26 Top = 33
Width = 163 Width = 216
Caption = 'UseMaxVersionCheckBox' Caption = 'UseMaxVersionCheckBox'
OnChange = UseMaxVersionCheckBoxChange OnChange = UseMaxVersionCheckBoxChange
TabOrder = 4 TabOrder = 4
@ -99,9 +99,9 @@ inherited PackageEditorForm: TPackageEditorForm
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = MinVersionEdit AnchorSideTop.Control = MinVersionEdit
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 173 Left = 226
Height = 24 Height = 28
Top = 26 Top = 30
Width = 100 Width = 100
BorderSpacing.Left = 10 BorderSpacing.Left = 10
BorderSpacing.Top = 2 BorderSpacing.Top = 2
@ -114,9 +114,9 @@ inherited PackageEditorForm: TPackageEditorForm
AnchorSideTop.Control = MaxVersionEdit AnchorSideTop.Control = MaxVersionEdit
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 0 Left = 0
Height = 26 Height = 30
Top = 56 Top = 64
Width = 147 Width = 193
AutoSize = True AutoSize = True
BorderSpacing.Top = 6 BorderSpacing.Top = 6
Caption = 'ApplyDependencyButton' Caption = 'ApplyDependencyButton'
@ -127,38 +127,36 @@ inherited PackageEditorForm: TPackageEditorForm
AnchorSideTop.Control = CallRegisterProcCheckBox AnchorSideTop.Control = CallRegisterProcCheckBox
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 0 Left = 0
Height = 72 Height = 67
Top = 30 Top = 29
Width = 573 Width = 569
Align = alBottom Align = alBottom
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Top = 6 BorderSpacing.Top = 6
Caption = 'RegisteredPluginsGroupBox' Caption = 'RegisteredPluginsGroupBox'
ClientHeight = 56 ClientHeight = 45
ClientWidth = 569 ClientWidth = 561
TabOrder = 7 TabOrder = 7
object RegisteredListBox: TListBox object RegisteredListBox: TListBox
Left = 0 Left = 0
Height = 56 Height = 45
Top = 0 Top = 0
Width = 569 Width = 561
Align = alClient Align = alClient
ItemHeight = 0 ItemHeight = 0
OnDrawItem = RegisteredListBoxDrawItem OnDrawItem = RegisteredListBoxDrawItem
ScrollWidth = 567
Style = lbOwnerDrawFixed Style = lbOwnerDrawFixed
TabOrder = 0 TabOrder = 0
TopIndex = -1
end end
end end
object DisableI18NForLFMCheckBox: TCheckBox object DisableI18NForLFMCheckBox: TCheckBox
AnchorSideLeft.Control = AddToUsesPkgSectionCheckBox AnchorSideLeft.Control = AddToUsesPkgSectionCheckBox
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = AddToUsesPkgSectionCheckBox AnchorSideTop.Control = AddToUsesPkgSectionCheckBox
Left = 388 Left = 502
Height = 24 Height = 23
Top = 0 Top = 0
Width = 184 Width = 241
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'DisableI18NForLFMCheckBox' Caption = 'DisableI18NForLFMCheckBox'
OnChange = DisableI18NForLFMCheckBoxChange OnChange = DisableI18NForLFMCheckBoxChange
@ -169,8 +167,8 @@ inherited PackageEditorForm: TPackageEditorForm
end end
object StatusBar: TStatusBar[2] object StatusBar: TStatusBar[2]
Left = 0 Left = 0
Height = 20 Height = 23
Top = 435 Top = 432
Width = 577 Width = 577
Panels = <> Panels = <>
end end
@ -178,90 +176,137 @@ inherited PackageEditorForm: TPackageEditorForm
Cursor = crVSplit Cursor = crVSplit
Left = 0 Left = 0
Height = 5 Height = 5
Top = 312 Top = 309
Width = 577 Width = 577
Align = alBottom Align = alBottom
ResizeAnchor = akBottom ResizeAnchor = akBottom
end end
object ItemsPanel: TPanel[4] object ItemsPanel: TPanel[4]
Left = 0 Left = 0
Height = 264 Height = 261
Top = 48 Top = 48
Width = 577 Width = 577
Align = alClient Align = alClient
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 264 ClientHeight = 261
ClientWidth = 577 ClientWidth = 577
TabOrder = 1 TabOrder = 1
object FilesTreeView: TTreeView object FilesTreeView: TTreeView
AnchorSideTop.Control = FilterEdit AnchorSideTop.Control = FilterEdit
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 0 Left = 0
Height = 237 Height = 230
Top = 27 Top = 31
Width = 577 Width = 577
Align = alBottom Align = alBottom
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Top = 3 BorderSpacing.Top = 3
DefaultItemHeight = 16
PopupMenu = FilesPopupMenu PopupMenu = FilesPopupMenu
ReadOnly = True ReadOnly = True
RightClickSelect = True RightClickSelect = True
TabOrder = 1 TabOrder = 1
OnDblClick = FilesTreeViewDblClick OnDblClick = FixFilesCaseMenuItemClick
OnKeyPress = FilesTreeViewKeyPress OnKeyPress = FilesTreeViewKeyPress
OnSelectionChanged = FilesTreeViewSelectionChanged OnSelectionChanged = FilesTreeViewSelectionChanged
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw] Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
end end
object DirectoryHierarchySpeedButton: TSpeedButton object DirectoryHierarchyButton: TSpeedButton
AnchorSideLeft.Control = ItemsPanel AnchorSideLeft.Control = DummyButton
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = OpenButton
AnchorSideTop.Side = asrCenter
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 0 Left = 42
Height = 4 Height = 25
Top = 0 Top = 3
Width = 4 Width = 25
AllowAllUp = True AllowAllUp = True
Anchors = [akTop, akLeft, akBottom]
AutoSize = True AutoSize = True
BorderSpacing.Left = 1
Constraints.MinHeight = 25
Constraints.MinWidth = 25
GroupIndex = 1 GroupIndex = 1
NumGlyphs = 0 NumGlyphs = 0
OnClick = DirectoryHierarchySpeedButtonClick OnClick = DirectoryHierarchyButtonClick
ShowHint = True ShowHint = True
ParentShowHint = False ParentShowHint = False
end end
object SortAlphabeticallySpeedButton: TSpeedButton object SortAlphabeticallyButton: TSpeedButton
AnchorSideLeft.Control = DirectoryHierarchySpeedButton AnchorSideLeft.Control = DirectoryHierarchyButton
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = OpenButton
AnchorSideTop.Side = asrCenter
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 4 Left = 68
Height = 4 Height = 25
Top = 0 Top = 3
Width = 4 Width = 25
AllowAllUp = True AllowAllUp = True
AutoSize = True AutoSize = True
BorderSpacing.Left = 1
Constraints.MinHeight = 25
Constraints.MinWidth = 25
GroupIndex = 2 GroupIndex = 2
NumGlyphs = 0 NumGlyphs = 0
OnClick = SortAlphabeticallySpeedButtonClick OnClick = SortAlphabeticallyButtonClick
ShowHint = True ShowHint = True
ParentShowHint = False ParentShowHint = False
end end
object FilterEdit: TTreeFilterEdit object FilterEdit: TTreeFilterEdit
AnchorSideLeft.Control = SortAlphabeticallySpeedButton AnchorSideLeft.Control = SortAlphabeticallyButton
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = ItemsPanel AnchorSideTop.Control = ItemsPanel
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 8 Left = 96
Height = 24 Height = 28
Top = 0 Top = 0
Width = 546 Width = 458
ButtonWidth = 23 ButtonWidth = 23
NumGlyphs = 0 NumGlyphs = 0
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 3
Font.Color = clBtnShadow Font.Color = clBtnShadow
MaxLength = 0 MaxLength = 0
ParentFont = False ParentFont = False
TabOrder = 0 TabOrder = 0
FilteredTreeview = FilesTreeView FilteredTreeview = FilesTreeView
end 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 end
object FilesPopupMenu: TPopupMenu[5] object FilesPopupMenu: TPopupMenu[5]
OnPopup = FilesPopupMenuPopup OnPopup = FilesPopupMenuPopup
@ -270,7 +315,12 @@ inherited PackageEditorForm: TPackageEditorForm
end end
object UsePopupMenu: TPopupMenu[6] object UsePopupMenu: TPopupMenu[6]
OnPopup = UsePopupMenuPopup OnPopup = UsePopupMenuPopup
left = 65 left = 80
top = 80 top = 112
end
object MorePopupMenu: TPopupMenu[7]
OnPopup = MorePopupMenuPopup
left = 264
top = 192
end end
end end

View File

@ -140,20 +140,23 @@ type
{ TPackageEditorForm } { TPackageEditorForm }
TPackageEditorForm = class(TBasePackageEditor) TPackageEditorForm = class(TBasePackageEditor)
DirectoryHierarchySpeedButton: TSpeedButton; DirectoryHierarchyButton: TSpeedButton;
OpenButton: TSpeedButton;
DisableI18NForLFMCheckBox: TCheckBox; DisableI18NForLFMCheckBox: TCheckBox;
FilterEdit: TTreeFilterEdit; FilterEdit: TTreeFilterEdit;
ItemsPanel: TPanel; ItemsPanel: TPanel;
SortAlphabeticallySpeedButton: TSpeedButton; DummyButton: TSpeedButton;
MorePopupMenu: TPopupMenu;
SortAlphabeticallyButton: TSpeedButton;
Splitter1: TSplitter; Splitter1: TSplitter;
// toolbar // toolbar
ToolBar: TToolBar; ToolBar: TToolBar;
// buttons // toolbuttons
SaveBitBtn: TToolButton; SaveBitBtn: TToolButton;
CompileBitBtn: TToolButton; CompileBitBtn: TToolButton;
UseBitBtn: TToolButton;
AddBitBtn: TToolButton; AddBitBtn: TToolButton;
RemoveBitBtn: TToolButton; RemoveBitBtn: TToolButton;
UseBitBtn: TToolButton;
OptionsBitBtn: TToolButton; OptionsBitBtn: TToolButton;
MoreBitBtn: TToolButton; MoreBitBtn: TToolButton;
HelpBitBtn: TToolButton; HelpBitBtn: TToolButton;
@ -189,11 +192,12 @@ type
procedure CompileBitBtnClick(Sender: TObject); procedure CompileBitBtnClick(Sender: TObject);
procedure CompileCleanClick(Sender: TObject); procedure CompileCleanClick(Sender: TObject);
procedure CreateMakefileClick(Sender: TObject); procedure CreateMakefileClick(Sender: TObject);
procedure DirectoryHierarchySpeedButtonClick(Sender: TObject); procedure DirectoryHierarchyButtonClick(Sender: TObject);
procedure DisableI18NForLFMCheckBoxChange(Sender: TObject); procedure DisableI18NForLFMCheckBoxChange(Sender: TObject);
procedure EditVirtualUnitMenuItemClick(Sender: TObject); procedure EditVirtualUnitMenuItemClick(Sender: TObject);
procedure ExpandDirectoryMenuItemClick(Sender: TObject); procedure ExpandDirectoryMenuItemClick(Sender: TObject);
procedure FilesPopupMenuPopup(Sender: TObject); procedure FilesPopupMenuPopup(Sender: TObject);
procedure MorePopupMenuPopup(Sender: TObject);
procedure FilesTreeViewDblClick(Sender: TObject); procedure FilesTreeViewDblClick(Sender: TObject);
procedure FilesTreeViewKeyPress(Sender: TObject; var Key: Char); procedure FilesTreeViewKeyPress(Sender: TObject; var Key: Char);
procedure FilesTreeViewSelectionChanged(Sender: TObject); procedure FilesTreeViewSelectionChanged(Sender: TObject);
@ -221,7 +225,7 @@ type
procedure SetDependencyDefaultFilenameMenuItemClick(Sender: TObject); procedure SetDependencyDefaultFilenameMenuItemClick(Sender: TObject);
procedure SetDependencyPreferredFilenameMenuItemClick(Sender: TObject); procedure SetDependencyPreferredFilenameMenuItemClick(Sender: TObject);
procedure ShowMissingFilesMenuItemClick(Sender: TObject); procedure ShowMissingFilesMenuItemClick(Sender: TObject);
procedure SortAlphabeticallySpeedButtonClick(Sender: TObject); procedure SortAlphabeticallyButtonClick(Sender: TObject);
procedure SortFilesMenuItemClick(Sender: TObject); procedure SortFilesMenuItemClick(Sender: TObject);
procedure UninstallClick(Sender: TObject); procedure UninstallClick(Sender: TObject);
procedure UseAllUnitsInDirectoryMenuItemClick(Sender: TObject); procedure UseAllUnitsInDirectoryMenuItemClick(Sender: TObject);
@ -664,6 +668,51 @@ begin
end else end else
PkgEditMenuSectionDependency.Visible:=false; 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(PkgEditMenuAddToProject,@AddToProjectClick,true,CanBeAddedToProject);
SetItem(PkgEditMenuInstall,@InstallClick,true,(not LazPackage.AutoCreated) SetItem(PkgEditMenuInstall,@InstallClick,true,(not LazPackage.AutoCreated)
and (LazPackage.PackageType in [lptDesignTime,lptRunAndDesignTime])); and (LazPackage.PackageType in [lptDesignTime,lptRunAndDesignTime]));
@ -682,20 +731,15 @@ begin
SetItem(PkgEditMenuRecompileAllRequired,@CompileAllCleanClick,true,CompileBitBtn.Enabled); SetItem(PkgEditMenuRecompileAllRequired,@CompileAllCleanClick,true,CompileBitBtn.Enabled);
SetItem(PkgEditMenuCreateMakefile,@CreateMakefileClick,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); SetItem(PkgEditMenuViewPackageSource,@ViewPkgSourceClick);
finally finally
PackageEditorMenuRoot.EndUpdate; PackageEditorMenuRoot.EndUpdate;
end; end;
//debugln(['TPackageEditorForm.FilesPopupMenuPopup END ',FilesPopupMenu.Items.Count]); PackageEditorMenuRoot.WriteDebugReport(' ',true);
end; end;
procedure TPackageEditorForm.SortAlphabeticallySpeedButtonClick(Sender: TObject); procedure TPackageEditorForm.SortAlphabeticallyButtonClick(Sender: TObject);
begin begin
SortAlphabetically:=SortAlphabeticallySpeedButton.Down; SortAlphabetically:=SortAlphabeticallyButton.Down;
end; end;
procedure TPackageEditorForm.UsePopupMenuPopup(Sender: TObject); procedure TPackageEditorForm.UsePopupMenuPopup(Sender: TObject);
@ -800,19 +844,12 @@ begin
FilesTreeView.EndUpdate; FilesTreeView.EndUpdate;
end; end;
procedure TPackageEditorForm.MoveFileUpMenuItemClick(Sender: TObject); procedure TPackageEditorForm.SetDependencyDefaultFilenameMenuItemClick(Sender: TObject);
begin
DoMoveCurrentFile(-1);
end;
procedure TPackageEditorForm.SetDependencyDefaultFilenameMenuItemClick(
Sender: TObject);
begin begin
SetDependencyDefaultFilename(false); SetDependencyDefaultFilename(false);
end; end;
procedure TPackageEditorForm.SetDependencyPreferredFilenameMenuItemClick( procedure TPackageEditorForm.SetDependencyPreferredFilenameMenuItemClick(Sender: TObject);
Sender: TObject);
begin begin
SetDependencyDefaultFilename(true); SetDependencyDefaultFilename(true);
end; end;
@ -839,6 +876,11 @@ begin
DoCollapseDirectory; DoCollapseDirectory;
end; end;
procedure TPackageEditorForm.MoveFileUpMenuItemClick(Sender: TObject);
begin
DoMoveCurrentFile(-1);
end;
procedure TPackageEditorForm.MoveFileDownMenuItemClick(Sender: TObject); procedure TPackageEditorForm.MoveFileDownMenuItemClick(Sender: TObject);
begin begin
DoMoveCurrentFile(1); DoMoveCurrentFile(1);
@ -1415,9 +1457,9 @@ begin
PackageEditors.CreateMakefile(LazPackage); PackageEditors.CreateMakefile(LazPackage);
end; end;
procedure TPackageEditorForm.DirectoryHierarchySpeedButtonClick(Sender: TObject); procedure TPackageEditorForm.DirectoryHierarchyButtonClick(Sender: TObject);
begin begin
ShowDirectoryHierarchy:=DirectoryHierarchySpeedButton.Down; ShowDirectoryHierarchy:=DirectoryHierarchyButton.Down;
end; end;
procedure TPackageEditorForm.DisableI18NForLFMCheckBoxChange(Sender: TObject); procedure TPackageEditorForm.DisableI18NForLFMCheckBoxChange(Sender: TObject);
@ -1474,41 +1516,45 @@ procedure TPackageEditorForm.SetupComponents;
end; end;
begin begin
ImageIndexFiles := IDEImages.LoadImage(16, 'pkg_files'); ImageIndexFiles := IDEImages.LoadImage(16, 'pkg_files');
ImageIndexRemovedFiles := IDEImages.LoadImage(16, 'pkg_removedfiles'); ImageIndexRemovedFiles := IDEImages.LoadImage(16, 'pkg_removedfiles');
ImageIndexRequired := IDEImages.LoadImage(16, 'pkg_required'); ImageIndexRequired := IDEImages.LoadImage(16, 'pkg_required');
ImageIndexRemovedRequired := IDEImages.LoadImage(16, 'pkg_removedrequired'); ImageIndexRemovedRequired := IDEImages.LoadImage(16, 'pkg_removedrequired');
ImageIndexUnit := IDEImages.LoadImage(16, 'pkg_unit'); ImageIndexUnit := IDEImages.LoadImage(16, 'pkg_unit');
ImageIndexRegisterUnit := IDEImages.LoadImage(16, 'pkg_registerunit'); ImageIndexRegisterUnit := IDEImages.LoadImage(16, 'pkg_registerunit');
ImageIndexLFM := IDEImages.LoadImage(16, 'pkg_lfm'); ImageIndexLFM := IDEImages.LoadImage(16, 'pkg_lfm');
ImageIndexLRS := IDEImages.LoadImage(16, 'pkg_lrs'); ImageIndexLRS := IDEImages.LoadImage(16, 'pkg_lrs');
ImageIndexInclude := IDEImages.LoadImage(16, 'pkg_include'); ImageIndexInclude := IDEImages.LoadImage(16, 'pkg_include');
ImageIndexIssues := IDEImages.LoadImage(16, 'pkg_issues'); ImageIndexIssues := IDEImages.LoadImage(16, 'pkg_issues');
ImageIndexText := IDEImages.LoadImage(16, 'pkg_text'); ImageIndexText := IDEImages.LoadImage(16, 'pkg_text');
ImageIndexBinary := IDEImages.LoadImage(16, 'pkg_binary'); ImageIndexBinary := IDEImages.LoadImage(16, 'pkg_binary');
ImageIndexConflict := IDEImages.LoadImage(16, 'pkg_conflict'); ImageIndexConflict := IDEImages.LoadImage(16, 'pkg_conflict');
ImageIndexDirectory := IDEImages.LoadImage(16, 'pkg_files'); ImageIndexDirectory := IDEImages.LoadImage(16, 'pkg_files');
FilterEdit.OnGetImageIndex:=@ChooseImageIndex;
SortAlphabeticallySpeedButton.Hint:=lisPESortFilesAlphabetically;
SortAlphabeticallySpeedButton.LoadGlyphFromLazarusResource('pkg_sortalphabetically');
DirectoryHierarchySpeedButton.Hint:=lisPEShowDirectoryHierarchy;
DirectoryHierarchySpeedButton.LoadGlyphFromLazarusResource('pkg_hierarchical');
FilesTreeView.Images := IDEImages.Images_16;
ToolBar.Images := IDEImages.Images_16; ToolBar.Images := IDEImages.Images_16;
FilterEdit.OnGetImageIndex:=@ChooseImageIndex;
SaveBitBtn := CreateToolButton('SaveBitBtn', lisMenuSave, lisPckEditSavePackage, 'laz_save', @SaveBitBtnClick); SaveBitBtn := CreateToolButton('SaveBitBtn', lisMenuSave, lisPckEditSavePackage, 'laz_save', @SaveBitBtnClick);
CompileBitBtn := CreateToolButton('CompileBitBtn', lisPckEditCompile, lisPckEditCompilePackage, 'pkg_compile', @CompileBitBtnClick); CompileBitBtn := CreateToolButton('CompileBitBtn', lisPckEditCompile, lisPckEditCompilePackage, 'pkg_compile', nil{@CompileBitBtnClick});
UseBitBtn := CreateToolButton('UseBitBtn', lisPckEditInstall, lisPckEditInstallPackageInTheIDE, 'pkg_install', nil); UseBitBtn := CreateToolButton('UseBitBtn', lisPckEditInstall, lisPckEditInstallPackageInTheIDE, 'pkg_install', nil);
CreateDivider; CreateDivider;
AddBitBtn := CreateToolButton('AddBitBtn', lisCodeTemplAdd, lisPckEditAddAnItem, 'laz_add', @AddBitBtnClick); AddBitBtn := CreateToolButton('AddBitBtn', lisCodeTemplAdd, lisPckEditAddAnItem, 'laz_add', @AddBitBtnClick);
RemoveBitBtn := CreateToolButton('RemoveBitBtn', lisExtToolRemove, lisPckEditRemoveSelectedItem, 'laz_delete', @RemoveBitBtnClick); RemoveBitBtn := CreateToolButton('RemoveBitBtn', lisExtToolRemove, lisPckEditRemoveSelectedItem, 'laz_delete', @RemoveBitBtnClick);
CreateDivider; CreateDivider;
OptionsBitBtn := CreateToolButton('OptionsBitBtn', dlgFROpts, lisPckEditEditGeneralOptions, 'pkg_properties', @OptionsBitBtnClick); OptionsBitBtn := CreateToolButton('OptionsBitBtn', dlgFROpts, lisPckEditEditGeneralOptions, 'pkg_properties', @OptionsBitBtnClick);
HelpBitBtn := CreateToolButton('HelpBitBtn', GetButtonCaption(idButtonHelp), lisPkgEdThereAreMoreFunctionsInThePopupmenu, 'menu_help', @HelpBitBtnClick); HelpBitBtn := CreateToolButton('HelpBitBtn', GetButtonCaption(idButtonHelp), lisPkgEdThereAreMoreFunctionsInThePopupmenu, 'menu_help', @HelpBitBtnClick);
MoreBitBtn := CreateToolButton('MoreBitBtn', lisPckEditMore, lisPkgEdThereAreMoreFunctionsInThePopupmenu, '', nil); 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; FilesTreeView.BeginUpdate;
FFilesNode:=FilesTreeView.Items.Add(nil, dlgEnvFiles); FFilesNode:=FilesTreeView.Items.Add(nil, dlgEnvFiles);
@ -1518,7 +1564,6 @@ begin
FRequiredPackagesNode.ImageIndex:=ImageIndexRequired; FRequiredPackagesNode.ImageIndex:=ImageIndexRequired;
FRequiredPackagesNode.SelectedIndex:=FRequiredPackagesNode.ImageIndex; FRequiredPackagesNode.SelectedIndex:=FRequiredPackagesNode.ImageIndex;
FilesTreeView.EndUpdate; FilesTreeView.EndUpdate;
FilesTreeView.Images := IDEImages.Images_16;
FilePropsGroupBox.Caption:=lisPckEditFileProperties; FilePropsGroupBox.Caption:=lisPckEditFileProperties;
@ -1571,7 +1616,7 @@ begin
//debugln(['TPackageEditorForm.SetShowDirectoryHierachy Old=',FShowDirectoryHierarchy,' New=',AValue]); //debugln(['TPackageEditorForm.SetShowDirectoryHierachy Old=',FShowDirectoryHierarchy,' New=',AValue]);
if FShowDirectoryHierarchy=AValue then exit; if FShowDirectoryHierarchy=AValue then exit;
FShowDirectoryHierarchy:=AValue; FShowDirectoryHierarchy:=AValue;
DirectoryHierarchySpeedButton.Down:=FShowDirectoryHierarchy; DirectoryHierarchyButton.Down:=FShowDirectoryHierarchy;
FilterEdit.ShowDirHierarchy:=FShowDirectoryHierarchy; FilterEdit.ShowDirHierarchy:=FShowDirectoryHierarchy;
FilterEdit.InvalidateFilter; FilterEdit.InvalidateFilter;
end; end;
@ -1580,7 +1625,7 @@ procedure TPackageEditorForm.SetSortAlphabetically(const AValue: boolean);
begin begin
if FSortAlphabetically=AValue then exit; if FSortAlphabetically=AValue then exit;
FSortAlphabetically:=AValue; FSortAlphabetically:=AValue;
SortAlphabeticallySpeedButton.Down:=FSortAlphabetically; SortAlphabeticallyButton.Down:=FSortAlphabetically;
FilterEdit.SortData:=FSortAlphabetically; FilterEdit.SortData:=FSortAlphabetically;
FilterEdit.InvalidateFilter; FilterEdit.InvalidateFilter;
end; end;
@ -1619,6 +1664,8 @@ begin
and (FilesTreeView.Selected<>nil) and (FilesTreeView.Selected<>nil)
and ((TObject(FilesTreeView.Selected.Data) is TFileNameItem) and ((TObject(FilesTreeView.Selected.Data) is TFileNameItem)
or (FilesTreeView.Selected.Parent=FRequiredPackagesNode)); or (FilesTreeView.Selected.Parent=FRequiredPackagesNode));
OpenButton.Enabled:=(FilesTreeView.Selected<>nil)
and (TObject(FilesTreeView.Selected.Data) is TFileNameItem);
UseBitBtn.Caption:=lisUse; UseBitBtn.Caption:=lisUse;
UseBitBtn.Hint:=lisClickToSeeThePossibleUses; UseBitBtn.Hint:=lisClickToSeeThePossibleUses;
UseBitBtn.OnClick:=nil; UseBitBtn.OnClick:=nil;