mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-06 18:24:26 +08:00
Update row count in data tab top label after deletion and update actions. Fixes issue #2039.
This commit is contained in:
@ -840,7 +840,7 @@ type
|
|||||||
FSnippetFilenames: TStringList;
|
FSnippetFilenames: TStringList;
|
||||||
procedure ParseCommandLineParameters(Parameters: TStringlist);
|
procedure ParseCommandLineParameters(Parameters: TStringlist);
|
||||||
procedure SetDelimiter(Value: String);
|
procedure SetDelimiter(Value: String);
|
||||||
procedure DisplayRowCountStats;
|
procedure DisplayRowCountStats(Sender: TBaseVirtualTree);
|
||||||
procedure insertFunction(Sender: TObject);
|
procedure insertFunction(Sender: TObject);
|
||||||
function GetActiveDatabase: String;
|
function GetActiveDatabase: String;
|
||||||
function GetSelectedTable: TDBObject;
|
function GetSelectedTable: TDBObject;
|
||||||
@ -2771,6 +2771,7 @@ begin
|
|||||||
FocusAfterDelete := Grid.GetLast;
|
FocusAfterDelete := Grid.GetLast;
|
||||||
if Assigned(FocusAfterDelete) then
|
if Assigned(FocusAfterDelete) then
|
||||||
SelectNode(Grid, FocusAfterDelete);
|
SelectNode(Grid, FocusAfterDelete);
|
||||||
|
DisplayRowCountStats(Grid);
|
||||||
ValidateControls(Sender);
|
ValidateControls(Sender);
|
||||||
end;
|
end;
|
||||||
except on E:EDatabaseError do begin
|
except on E:EDatabaseError do begin
|
||||||
@ -3541,6 +3542,7 @@ begin
|
|||||||
// Node needs a repaint to remove red triangles
|
// Node needs a repaint to remove red triangles
|
||||||
if Assigned(Grid.FocusedNode) then
|
if Assigned(Grid.FocusedNode) then
|
||||||
Grid.InvalidateNode(Grid.FocusedNode);
|
Grid.InvalidateNode(Grid.FocusedNode);
|
||||||
|
DisplayRowCountStats(Grid);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainForm.actRemoveFilterExecute(Sender: TObject);
|
procedure TMainForm.actRemoveFilterExecute(Sender: TObject);
|
||||||
@ -3935,7 +3937,7 @@ begin
|
|||||||
vt.OffsetXY := OldScrollOffset;
|
vt.OffsetXY := OldScrollOffset;
|
||||||
|
|
||||||
ValidateControls(Sender);
|
ValidateControls(Sender);
|
||||||
DisplayRowCountStats;
|
DisplayRowCountStats(vt);
|
||||||
actDataShowNext.Enabled := (vt.RootNodeCount = DatagridWantedRowCount) and (DatagridWantedRowCount < prefGridRowcountMax);
|
actDataShowNext.Enabled := (vt.RootNodeCount = DatagridWantedRowCount) and (DatagridWantedRowCount < prefGridRowcountMax);
|
||||||
actDataShowAll.Enabled := actDataShowNext.Enabled;
|
actDataShowAll.Enabled := actDataShowNext.Enabled;
|
||||||
EnumerateRecentFilters;
|
EnumerateRecentFilters;
|
||||||
@ -3967,13 +3969,16 @@ end;
|
|||||||
Calculate + display total rowcount and found rows matching to filter
|
Calculate + display total rowcount and found rows matching to filter
|
||||||
in data-tab
|
in data-tab
|
||||||
}
|
}
|
||||||
procedure TMainForm.DisplayRowCountStats;
|
procedure TMainForm.DisplayRowCountStats(Sender: TBaseVirtualTree);
|
||||||
var
|
var
|
||||||
DBObject: TDBObject;
|
DBObject: TDBObject;
|
||||||
IsFiltered, IsLimited: Boolean;
|
IsFiltered, IsLimited: Boolean;
|
||||||
cap: String;
|
cap: String;
|
||||||
RowsTotal: Int64;
|
RowsTotal: Int64;
|
||||||
begin
|
begin
|
||||||
|
if Sender <> DataGrid then
|
||||||
|
Exit; // Only data tab has a top label
|
||||||
|
|
||||||
DBObject := SelectedTable;
|
DBObject := SelectedTable;
|
||||||
cap := ActiveDatabase + '.' + DBObject.Name;
|
cap := ActiveDatabase + '.' + DBObject.Name;
|
||||||
IsLimited := DataGridWantedRowCount <= Datagrid.RootNodeCount;
|
IsLimited := DataGridWantedRowCount <= Datagrid.RootNodeCount;
|
||||||
@ -7040,9 +7045,10 @@ begin
|
|||||||
if Assigned(OldNode) and (OldNode <> NewNode) then begin
|
if Assigned(OldNode) and (OldNode <> NewNode) then begin
|
||||||
RowNum := Sender.GetNodeData(OldNode);
|
RowNum := Sender.GetNodeData(OldNode);
|
||||||
Results.RecNo := RowNum^;
|
Results.RecNo := RowNum^;
|
||||||
if Results.Modified then
|
if Results.Modified then begin
|
||||||
Allowed := Results.SaveModifications
|
Allowed := Results.SaveModifications;
|
||||||
else if Results.Inserted then begin
|
DisplayRowCountStats(Sender);
|
||||||
|
end else if Results.Inserted then begin
|
||||||
Results.DiscardModifications;
|
Results.DiscardModifications;
|
||||||
Sender.DeleteNode(OldNode);
|
Sender.DeleteNode(OldNode);
|
||||||
end;
|
end;
|
||||||
@ -7464,8 +7470,10 @@ begin
|
|||||||
Grid.GetHitTestInfoAt(X, Y, False, Hit);
|
Grid.GetHitTestInfoAt(X, Y, False, Hit);
|
||||||
if (Hit.HitNode = nil) or (Hit.HitColumn = NoColumn) or (Hit.HitColumn = InvalidColumn) then begin
|
if (Hit.HitNode = nil) or (Hit.HitColumn = NoColumn) or (Hit.HitColumn = InvalidColumn) then begin
|
||||||
Results := GridResult(Grid);
|
Results := GridResult(Grid);
|
||||||
if Results.Modified then
|
if Results.Modified then begin
|
||||||
Results.SaveModifications;
|
Results.SaveModifications;
|
||||||
|
DisplayRowCountStats(Grid);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user