mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-09 11:08:00 +02:00
IDE: Improvements for ProjectInspector. Issue #28127, patch from Alexey Torgashin.
git-svn-id: trunk@49101 -
This commit is contained in:
parent
eb15eb559f
commit
5748dddb92
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user