mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-02 17:59:50 +01:00
IDE: Filter the NewDialog using both 2 columns. Improve OK button enabled state update. Issue #31471.
git-svn-id: trunk@54336 -
This commit is contained in:
parent
0bc15a664b
commit
5cb5446db2
@ -83,6 +83,7 @@ object NewOtherDialog: TNewOtherDialog
|
||||
SortType = stText
|
||||
TabOrder = 1
|
||||
ViewStyle = vsReport
|
||||
OnSelectItem = InheritableComponentsListViewSelectItem
|
||||
end
|
||||
object CompFilterEdit: TListViewFilterEdit
|
||||
AnchorSideTop.Control = DescriptionLabel
|
||||
@ -96,8 +97,8 @@ object NewOtherDialog: TNewOtherDialog
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
MaxLength = 0
|
||||
TabOrder = 0
|
||||
Text = 'listviewfilteredit1'
|
||||
FilteredListview = InheritableComponentsListView
|
||||
ByAllFields = True
|
||||
end
|
||||
end
|
||||
object Splitter1: TSplitter
|
||||
|
||||
@ -135,6 +135,8 @@ type
|
||||
Panel1: TPanel;
|
||||
Splitter1: TSplitter;
|
||||
procedure HelpButtonClick(Sender: TObject);
|
||||
procedure InheritableComponentsListViewSelectItem(Sender: TObject;
|
||||
Item: TListItem; Selected: Boolean);
|
||||
procedure ItemsTreeViewSelectionChanged(Sender: TObject);
|
||||
procedure OKButtonClick(Sender: TObject);
|
||||
private
|
||||
@ -168,7 +170,7 @@ var
|
||||
begin
|
||||
NewItem := nil;
|
||||
NewOtherDialog := TNewOtherDialog.Create(nil, AOnlyModules);
|
||||
Result := NewOtherDialog.ShowModal;
|
||||
Result := NewOtherDialog.ShowModal;
|
||||
if Result = mrOk then
|
||||
NewItem := NewOtherDialog.NewItem;
|
||||
IDEDialogLayoutList.SaveLayout(NewOtherDialog);
|
||||
@ -325,12 +327,26 @@ begin
|
||||
end;
|
||||
|
||||
procedure TNewOtherDialog.ItemsTreeViewSelectionChanged(Sender: TObject);
|
||||
var
|
||||
Node: TTreeNode;
|
||||
begin
|
||||
ButtonPanel.OKButton.Enabled := (ItemsTreeView.Selected <> nil) and
|
||||
(TObject(ItemsTreeView.Selected.Data) is TNewIDEItemTemplate);
|
||||
Node := ItemsTreeView.Selected;
|
||||
// For inherited comps OKButton is enabled also later when a ListView item is selected.
|
||||
if Assigned(Node) and (TObject(Node.Data) is TNewItemProjectFile) and
|
||||
(TNewItemProjectFile(Node.Data).Descriptor is TFileDescInheritedComponent)
|
||||
then
|
||||
ButtonPanel.OKButton.Enabled := Assigned(InheritableComponentsListView.Selected)
|
||||
else
|
||||
ButtonPanel.OKButton.Enabled := Assigned(Node) and (TObject(Node.Data) is TNewIDEItemTemplate);
|
||||
UpdateDescription;
|
||||
end;
|
||||
|
||||
procedure TNewOtherDialog.InheritableComponentsListViewSelectItem(
|
||||
Sender: TObject; Item: TListItem; Selected: Boolean);
|
||||
begin
|
||||
ButtonPanel.OKButton.Enabled := Assigned((Sender as TListView).Selected);
|
||||
end;
|
||||
|
||||
procedure TNewOtherDialog.HelpButtonClick(Sender: TObject);
|
||||
begin
|
||||
LazarusHelp.ShowHelpForIDEControl(Self);
|
||||
@ -357,6 +373,7 @@ var
|
||||
aNewItemTemplate: TNewIDEItemTemplate;
|
||||
begin
|
||||
ANode := ItemsTreeView.Selected;
|
||||
CompFilterEdit.Visible := false;
|
||||
InheritableComponentsListView.Visible := false;
|
||||
if (ANode <> nil) and (ANode.Data <> nil) then
|
||||
begin
|
||||
@ -370,10 +387,8 @@ begin
|
||||
begin
|
||||
if TNewItemProjectFile(aNewItemTemplate).Descriptor is TFileDescInheritedComponent
|
||||
then begin
|
||||
CompFilterEdit.Visible := true;
|
||||
InheritableComponentsListView.Visible := true;
|
||||
//InheritableComponentsListView.Height:=InheritableComponentsListView.Parent.ClientHeight-50;
|
||||
//if InheritableComponentsListView.Items.Count>0 then
|
||||
// InheritableComponentsListView.Selected := InheritableComponentsListView.Items[0];
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -406,7 +421,7 @@ begin
|
||||
SetupComponents;
|
||||
FillItemsTree(AOnlyModules);
|
||||
FillProjectInheritableItemsList;
|
||||
CompFilterEdit.Clear;
|
||||
CompFilterEdit.Visible := false;
|
||||
InheritableComponentsListView.Visible := false;
|
||||
IDEDialogLayoutList.ApplyLayout(Self, 570, 400);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user