mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-07 01:57:57 +02:00
LCL: Improved handling of enabled/disabled controls in TreeView component editor. Part of patch by n7800, submitted for issue #40748
This commit is contained in:
parent
c7ee48d7fa
commit
8c636b64e7
@ -148,18 +148,21 @@ end;
|
||||
|
||||
procedure TTreeViewItemsEditorForm.btnNewItemClick(Sender: TObject);
|
||||
var
|
||||
S: String;
|
||||
lNewName: String;
|
||||
begin
|
||||
S := sccsTrEdtItem + IntToStr(treEditor.Items.Count);
|
||||
if (Sender as TComponent).Tag = 1 then
|
||||
treEditor.Selected := treEditor.Items.Add(treEditor.Selected, S)
|
||||
lNewName := sccsTrEdtItem + IntToStr(treEditor.Items.Count);
|
||||
if Sender = btnNewItem then
|
||||
treEditor.Selected := treEditor.Items.Add(treEditor.Selected, lNewName)
|
||||
else
|
||||
treEditor.Selected := treEditor.Items.AddChild(treEditor.Selected, S);
|
||||
if Sender = btnNewSubItem then
|
||||
treEditor.Selected := treEditor.Items.AddChild(treEditor.Selected, lNewName)
|
||||
else
|
||||
raise Exception.Create('[btnNewItemClick] Unknown Sender.');
|
||||
|
||||
grpNodeEditor.Enabled := treEditor.Items.Count > 0;
|
||||
//grpNodeEditor.Enabled := treEditor.Items.Count > 0;
|
||||
|
||||
edtNodeText.SetFocus;
|
||||
edtNodeText.SelectAll;
|
||||
//edtNodeText.SelectAll;
|
||||
end;
|
||||
|
||||
procedure TTreeViewItemsEditorForm.Edit1Change(Sender: TObject);
|
||||
@ -331,6 +334,7 @@ begin
|
||||
treEditor.StateImages := ATreeView.StateImages;
|
||||
treEditor.Items.Assign(ATreeView.Items);
|
||||
end;
|
||||
treEditor.Selected := treEditor.Items.GetFirstNode;
|
||||
UpdateEnabledStates;
|
||||
end;
|
||||
|
||||
@ -345,12 +349,25 @@ end;
|
||||
|
||||
procedure TTreeViewItemsEditorForm.UpdateEnabledStates;
|
||||
var
|
||||
CurNode: TTreeNode;
|
||||
lCurNode: TTreeNode;
|
||||
begin
|
||||
CurNode := treEditor.Selected;
|
||||
btnMoveUp.Enabled := Assigned(CurNode) and Assigned(CurNode.GetPrevSibling);
|
||||
btnMoveDown.Enabled:=Assigned(CurNode) and Assigned(CurNode.GetNextSibling);
|
||||
grpNodeEditor.Enabled := Assigned(CurNode);
|
||||
lCurNode := treEditor.Selected;
|
||||
|
||||
// Control states
|
||||
btnSave.Enabled := treEditor.Items.Count > 0;
|
||||
btnMoveUp.Enabled := Assigned(lCurNode) and Assigned(lCurNode.GetPrevSibling);
|
||||
btnMoveDown.Enabled := Assigned(lCurNode) and Assigned(lCurNode.GetNextSibling);
|
||||
btnDelete.Enabled := Assigned(lCurNode);
|
||||
grpNodeEditor.Enabled := Assigned(lCurNode);
|
||||
|
||||
// Clear disabled fields
|
||||
if lCurNode = nil then
|
||||
begin
|
||||
edtNodeText.Text := '';
|
||||
spnImageIndex.Value := -1;
|
||||
spnSelectedIndex.Value := -1;
|
||||
spnStateIndex.Value := -1;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user