diff --git a/ide/addtoprojectdlg.lfm b/ide/addtoprojectdlg.lfm index c443d6c9ea..f06a1faf8a 100644 --- a/ide/addtoprojectdlg.lfm +++ b/ide/addtoprojectdlg.lfm @@ -4,30 +4,30 @@ object AddToProjectDialog: TAddToProjectDialog Top = 250 Width = 598 ActiveControl = Notebook - BorderStyle = bsSizeToolWin + BorderIcons = [biSystemMenu, biMaximize] Caption = 'AddToProjectDialog' ClientHeight = 339 ClientWidth = 598 OnClose = AddToProjectDialogClose Position = poScreenCenter - LCLVersion = '1.3' + LCLVersion = '1.5' object Notebook: TPageControl Left = 0 - Height = 297 + Height = 301 Top = 0 Width = 598 - ActivePage = AddEditorFilePage + ActivePage = AddFilesPage Align = alClient - TabIndex = 0 + TabIndex = 2 TabOrder = 0 OnChange = NotebookChange object AddEditorFilePage: TTabSheet Caption = 'AddEditorFilePage' - ClientHeight = 264 + ClientHeight = 273 ClientWidth = 590 object AddFileLabel: TLabel Left = 6 - Height = 20 + Height = 15 Top = 6 Width = 578 Align = alTop @@ -37,8 +37,8 @@ object AddToProjectDialog: TAddToProjectDialog end object AddFileListView: TListView Left = 6 - Height = 224 - Top = 32 + Height = 238 + Top = 27 Width = 578 Align = alTop Anchors = [akTop, akLeft, akRight, akBottom] @@ -84,13 +84,13 @@ object AddToProjectDialog: TAddToProjectDialog end object DependPkgNameComboBox: TComboBox Left = 218 - Height = 28 + Height = 23 Top = 14 Width = 370 Anchors = [akTop, akLeft, akRight] AutoComplete = True AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending] - ItemHeight = 20 + ItemHeight = 15 OnChange = DependPkgNameComboBoxChange TabOrder = 0 Text = 'DependPkgNameComboBox' @@ -116,12 +116,12 @@ object AddToProjectDialog: TAddToProjectDialog end object AddFilesPage: TTabSheet Caption = 'AddFilesPage' - ClientHeight = 264 + ClientHeight = 273 ClientWidth = 590 object FilesListView: TListView AnchorSideBottom.Control = FilesDirButton Left = 6 - Height = 216 + Height = 230 Top = 6 Width = 578 Anchors = [akTop, akLeft, akRight, akBottom] @@ -141,9 +141,9 @@ object AddToProjectDialog: TAddToProjectDialog AnchorSideBottom.Control = AddFilesPage AnchorSideBottom.Side = asrBottom Left = 6 - Height = 30 - Top = 228 - Width = 119 + Height = 25 + Top = 242 + Width = 100 Anchors = [akLeft, akBottom] AutoSize = True BorderSpacing.Around = 6 @@ -156,10 +156,10 @@ object AddToProjectDialog: TAddToProjectDialog AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FilesDirButton AnchorSideTop.Side = asrCenter - Left = 131 - Height = 30 - Top = 228 - Width = 150 + Left = 112 + Height = 25 + Top = 242 + Width = 126 AutoSize = True BorderSpacing.Around = 6 Caption = 'FilesShortenButton' @@ -171,10 +171,10 @@ object AddToProjectDialog: TAddToProjectDialog AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = FilesShortenButton AnchorSideTop.Side = asrCenter - Left = 287 - Height = 30 - Top = 228 - Width = 143 + Left = 244 + Height = 25 + Top = 242 + Width = 118 AutoSize = True BorderSpacing.Around = 6 Caption = 'FilesDeleteButton' @@ -185,8 +185,8 @@ object AddToProjectDialog: TAddToProjectDialog end object ButtonPanel: TButtonPanel Left = 6 - Height = 30 - Top = 303 + Height = 26 + Top = 307 Width = 586 OKButton.Name = 'OKButton' OKButton.DefaultCaption = True diff --git a/ide/addtoprojectdlg.pas b/ide/addtoprojectdlg.pas index 6994c8d97f..a256ddffb5 100644 --- a/ide/addtoprojectdlg.pas +++ b/ide/addtoprojectdlg.pas @@ -44,7 +44,8 @@ uses type TAddToProjectType = ( a2pFiles, - a2pRequiredPkg + a2pRequiredPkg, + a2pEditorFiles ); TAddToProjectResult = class @@ -113,7 +114,8 @@ type end; function ShowAddToProjectDlg(AProject: TProject; - var AddResult: TAddToProjectResult): TModalResult; + var AddResult: TAddToProjectResult; + AInitTab: TAddToProjectType): TModalResult; function CheckAddingDependency(LazProject: TProject; NewDependency: TPkgDependency): boolean; @@ -123,7 +125,9 @@ implementation {$R *.lfm} function ShowAddToProjectDlg(AProject: TProject; - var AddResult: TAddToProjectResult): TModalResult; + var AddResult: TAddToProjectResult; + AInitTab: TAddToProjectType + ): TModalResult; var AddToProjectDialog: TAddToProjectDialog; begin @@ -131,6 +135,18 @@ begin AddToProjectDialog.TheProject:=AProject; AddToProjectDialog.UpdateAvailableFiles; AddToProjectDialog.UpdateAvailableDependencyNames; + + case AInitTab of + a2pFiles: AddToProjectDialog.NoteBook.ActivePageIndex:=2; + a2pEditorFiles: AddToProjectDialog.NoteBook.ActivePageIndex:=0; + a2pRequiredPkg: AddToProjectDialog.NoteBook.ActivePageIndex:=1; + end; + // hide tabs for simple look + AddToProjectDialog.NoteBook.ShowTabs:=false; + // press "Add files" btn + if AInitTab=a2pFiles then + AddToProjectDialog.FilesDirButton.Click; + Result:=AddToProjectDialog.ShowModal; if Result=mrOk then begin AddResult:=AddToProjectDialog.AddResult; diff --git a/ide/projectinspector.lfm b/ide/projectinspector.lfm index e0548d9e95..74ec870725 100644 --- a/ide/projectinspector.lfm +++ b/ide/projectinspector.lfm @@ -1,7 +1,7 @@ object ProjectInspectorForm: TProjectInspectorForm - Left = 393 + Left = 670 Height = 456 - Top = 104 + Top = 134 Width = 299 ActiveControl = ItemsTreeView AllowDropFiles = True @@ -18,6 +18,7 @@ object ProjectInspectorForm: TProjectInspectorForm Align = alClient Anchors = [akTop, akLeft, akBottom] BorderSpacing.Top = 2 + DefaultItemHeight = 18 DragMode = dmAutomatic MultiSelect = True PopupMenu = ItemsPopupMenu @@ -38,6 +39,7 @@ object ProjectInspectorForm: TProjectInspectorForm Top = 48 Width = 299 Align = alTop + BevelOuter = bvNone ClientHeight = 28 ClientWidth = 299 TabOrder = 1 @@ -45,13 +47,14 @@ object ProjectInspectorForm: TProjectInspectorForm AnchorSideLeft.Control = BtnPanel AnchorSideTop.Control = BtnPanel AnchorSideTop.Side = asrCenter - Left = 1 - Height = 26 - Top = 1 + Left = 2 + Height = 25 + Top = 2 Width = 25 Align = alLeft AllowAllUp = True AutoSize = True + BorderSpacing.Around = 2 Constraints.MinHeight = 25 Constraints.MinWidth = 25 OnClick = OpenButtonClick @@ -63,13 +66,14 @@ object ProjectInspectorForm: TProjectInspectorForm AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = OpenButton AnchorSideTop.Side = asrCenter - Left = 37 + Left = 40 Height = 25 Top = 2 Width = 25 AllowAllUp = True AutoSize = True BorderSpacing.Left = 11 + BorderSpacing.Around = 2 Constraints.MinHeight = 25 Constraints.MinWidth = 25 GroupIndex = 1 @@ -82,13 +86,13 @@ object ProjectInspectorForm: TProjectInspectorForm AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = OpenButton AnchorSideTop.Side = asrCenter - Left = 63 + Left = 67 Height = 25 Top = 2 Width = 25 AllowAllUp = True AutoSize = True - BorderSpacing.Left = 1 + BorderSpacing.Around = 2 Constraints.MinHeight = 25 Constraints.MinWidth = 25 GroupIndex = 2 @@ -101,10 +105,10 @@ object ProjectInspectorForm: TProjectInspectorForm AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = SortAlphabeticallyButton AnchorSideTop.Side = asrCenter - Left = 91 - Height = 28 - Top = 0 - Width = 205 + Left = 95 + Height = 23 + Top = 3 + Width = 201 UseFormActivate = True ButtonWidth = 23 NumGlyphs = 1 @@ -131,5 +135,32 @@ object ProjectInspectorForm: TProjectInspectorForm OnPopup = ItemsPopupMenuPopup left = 72 top = 112 + object MenuItem1: TMenuItem + Caption = 'New Item1' + end + end + object AddPopupMenu: TPopupMenu + left = 74 + top = 163 + object mnuAddDiskFile: TMenuItem + Caption = 'Add file from disk' + Default = True + OnClick = AddBitBtnClick + end + object MenuItem2: TMenuItem + Caption = '-' + end + object mnuAddDiskFiles: TMenuItem + Caption = 'Add files' + OnClick = mnuAddDiskFilesClick + end + object mnuAddEditorFiles: TMenuItem + Caption = 'Add editor files' + OnClick = mnuAddEditorFilesClick + end + object mnuAddReq: TMenuItem + Caption = 'Add requirement' + OnClick = mnuAddReqClick + end end end diff --git a/ide/projectinspector.pas b/ide/projectinspector.pas index c4bc71ca55..19aff56845 100644 --- a/ide/projectinspector.pas +++ b/ide/projectinspector.pas @@ -86,9 +86,16 @@ type { TProjectInspectorForm } TProjectInspectorForm = class(TForm,IFilesEditorInterface) + AddPopupMenu: TPopupMenu; BtnPanel: TPanel; DirectoryHierarchyButton: TSpeedButton; FilterEdit: TTreeFilterEdit; + MenuItem1: TMenuItem; + MenuItem2: TMenuItem; + mnuAddEditorFiles: TMenuItem; + mnuAddDiskFile: TMenuItem; + mnuAddDiskFiles: TMenuItem; + mnuAddReq: TMenuItem; OpenButton: TSpeedButton; ItemsTreeView: TTreeView; ItemsPopupMenu: TPopupMenu; @@ -97,12 +104,10 @@ type ToolBar: TToolBar; // toolbuttons AddBitBtn: TToolButton; - AddMoreBitBtn: TToolButton; RemoveBitBtn: TToolButton; OptionsBitBtn: TToolButton; HelpBitBtn: TToolButton; procedure AddBitBtnClick(Sender: TObject); - procedure AddMoreBitBtnClick(Sender: TObject); procedure CopyMoveToDirMenuItemClick(Sender: TObject); procedure DirectoryHierarchyButtonClick(Sender: TObject); procedure FormDropFiles(Sender: TObject; const FileNames: array of String); @@ -116,6 +121,9 @@ type State: TDragState; var Accept: Boolean); procedure ItemsTreeViewKeyDown(Sender: TObject; var Key: Word; {%H-}Shift: TShiftState); procedure ItemsTreeViewSelectionChanged(Sender: TObject); + procedure mnuAddDiskFilesClick(Sender: TObject); + procedure mnuAddEditorFilesClick(Sender: TObject); + procedure mnuAddReqClick(Sender: TObject); procedure MoveDependencyUpClick(Sender: TObject); procedure MoveDependencyDownClick(Sender: TObject); procedure SetDependencyDefaultFilenameMenuItemClick(Sender: TObject); @@ -162,6 +170,7 @@ type FFlags: TProjectInspectorFlags; FProjectNodeDataList : array [TPENodeType] of TPENodeData; function AddOneFile(aFilename: string): TModalResult; + procedure DoAddMoreDialog(AInitTab: TAddToProjectType); procedure FreeNodeData(Typ: TPENodeType); function CreateNodeData(Typ: TPENodeType; aName: string; aRemoved: boolean): TPENodeData; procedure SetDependencyDefaultFilename(AsPreferred: boolean); @@ -320,6 +329,21 @@ begin UpdateButtons; end; +procedure TProjectInspectorForm.mnuAddDiskFilesClick(Sender: TObject); +begin + DoAddMoreDialog(a2pFiles); +end; + +procedure TProjectInspectorForm.mnuAddEditorFilesClick(Sender: TObject); +begin + DoAddMoreDialog(a2pEditorFiles); +end; + +procedure TProjectInspectorForm.mnuAddReqClick(Sender: TObject); +begin + DoAddMoreDialog(a2pRequiredPkg); +end; + procedure TProjectInspectorForm.MoveDependencyUpClick(Sender: TObject); var Dependency: TPkgDependency; @@ -428,13 +452,13 @@ begin end; end; -procedure TProjectInspectorForm.AddMoreBitBtnClick(Sender: TObject); +procedure TProjectInspectorForm.DoAddMoreDialog(AInitTab: TAddToProjectType); var AddResult: TAddToProjectResult; i: Integer; begin AddResult:=nil; - if ShowAddToProjectDlg(LazProject,AddResult)<>mrOk then exit; + if ShowAddToProjectDlg(LazProject,AddResult,AInitTab)<>mrOk then exit; case AddResult.AddType of a2pFiles: @@ -456,6 +480,8 @@ begin EndUpdate; end; + else + Showmessage('Not implemented'); end; AddResult.Free; @@ -937,13 +963,18 @@ begin ToolBar.Images := IDEImages.Images_16; FilterEdit.OnGetImageIndex:=@OnTreeViewGetImageIndex; - AddBitBtn := CreateToolButton('AddBitBtn', lisAdd, lisPckEditAddFilesFromFileSystem, '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, 'menu_environment_options', @OptionsBitBtnClick); HelpBitBtn := CreateToolButton('HelpBitBtn', GetButtonCaption(idButtonHelp), lisPkgEdMoreFunctionsForThePackage, 'menu_help', @HelpBitBtnClick); + AddBitBtn.DropdownMenu:=AddPopupMenu; + mnuAddDiskFile.Caption:=lisPckEditAddFilesFromFileSystem; + mnuAddDiskFiles.Caption:=lisAddFilesInDirectory; + mnuAddEditorFiles.Caption:=lisProjAddEditorFile; + mnuAddReq.Caption:=lisProjAddNewRequirement; + OpenButton.LoadGlyphFromResourceName(HInstance, 'laz_open'); OpenButton.Caption:=''; OpenButton.Hint:=lisOpenFile2;