mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-06 18:24:26 +08:00
Use ValidateNode to initialize all column nodes early, so they keep their FColumn data after click on Remove button. Closes #245
This commit is contained in:
@ -342,6 +342,8 @@ begin
|
|||||||
listColumns.RootNodeCount := FColumns.Count;
|
listColumns.RootNodeCount := FColumns.Count;
|
||||||
DeInitializeVTNodes(listColumns);
|
DeInitializeVTNodes(listColumns);
|
||||||
listColumns.EndUpdate;
|
listColumns.EndUpdate;
|
||||||
|
// Init all nodes, so they keep their FColumn data after click on Remove button, see #245
|
||||||
|
listColumns.ValidateNode(nil, True);
|
||||||
|
|
||||||
// Set root nodes per BeforePaint event:
|
// Set root nodes per BeforePaint event:
|
||||||
treeIndexes.Invalidate;
|
treeIndexes.Invalidate;
|
||||||
@ -888,7 +890,7 @@ end;
|
|||||||
|
|
||||||
procedure TfrmTableEditor.btnRemoveColumnClick(Sender: TObject);
|
procedure TfrmTableEditor.btnRemoveColumnClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
Node, NodeDelete, NodeFocus: PVirtualNode;
|
Node, NodeFocus: PVirtualNode;
|
||||||
Col: PTableColumn;
|
Col: PTableColumn;
|
||||||
begin
|
begin
|
||||||
// Remove selected column(s)
|
// Remove selected column(s)
|
||||||
@ -909,13 +911,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
Node := listColumns.GetNextSibling(Node);
|
Node := listColumns.GetNextSibling(Node);
|
||||||
end;
|
end;
|
||||||
// Delete selected + visible
|
// Delete selected, including those which are invisible through filter
|
||||||
Node := GetNextNode(listColumns, nil, True);
|
listColumns.DeleteSelectedNodes;
|
||||||
while Assigned(Node) do begin
|
|
||||||
NodeDelete := Node;
|
|
||||||
Node := GetNextNode(listColumns, Node, True);
|
|
||||||
listColumns.DeleteNode(NodeDelete);
|
|
||||||
end;
|
|
||||||
|
|
||||||
if not Assigned(NodeFocus) then
|
if not Assigned(NodeFocus) then
|
||||||
NodeFocus := listColumns.GetLast;
|
NodeFocus := listColumns.GetLast;
|
||||||
@ -1091,6 +1088,7 @@ var
|
|||||||
begin
|
begin
|
||||||
btnRemoveColumn.Enabled := listColumns.SelectedCount > 0;
|
btnRemoveColumn.Enabled := listColumns.SelectedCount > 0;
|
||||||
|
|
||||||
|
LastSelected := nil;
|
||||||
NextSelected := GetNextNode(listColumns, nil, True);
|
NextSelected := GetNextNode(listColumns, nil, True);
|
||||||
while Assigned(NextSelected) do begin
|
while Assigned(NextSelected) do begin
|
||||||
LastSelected := NextSelected;
|
LastSelected := NextSelected;
|
||||||
|
Reference in New Issue
Block a user