Skip to content

Commit 42e5277

Browse files
committed
enhance: export tables which are hidden through the table filter
Closes #1983
1 parent cc5b811 commit 42e5277

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

extra/locale/heidisql.po

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ msgid ""
77
msgstr ""
88
"Project-Id-Version: HeidiSQL\n"
99
"POT-Creation-Date: 2012-11-05 21:40\n"
10-
"PO-Revision-Date: 2026-02-04 17:28+0100\n"
10+
"PO-Revision-Date: 2026-02-19 18:41+0100\n"
1111
"Last-Translator: Ansgar Becker <anse@heidisql.com>\n"
1212
"Language-Team: English (http://www.transifex.com/projects/p/heidisql/language/en/)\n"
1313
"Language: en\n"
@@ -5213,8 +5213,8 @@ msgid "All data types"
52135213
msgstr "All data types"
52145214

52155215
#: tabletools.pas:370
5216-
msgid "Selected objects size: %s"
5217-
msgstr "Selected objects size: %s"
5216+
msgid "%s selected objects, size: %s"
5217+
msgstr "%s selected objects, size: %s"
52185218

52195219
#: tabletools.pas:725
52205220
msgid "%s%s doesn't have columns of selected type (%s)."

source/tabletools.pas

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ TfrmTableTools = class(TExtForm)
179179
FHeaderCreated: Boolean;
180180
FFindSeeResultSQL: TStringList;
181181
ToFile, ToDir, ToClipboard, ToDb, ToServer: Boolean;
182-
FObjectSizes, FObjectSizesDone, FObjectSizesDoneExact: Int64;
182+
FObjectCount, FObjectSizes, FObjectSizesDone, FObjectSizesDoneExact: Int64;
183183
FStartTimeAll: Cardinal;
184184
procedure SetToolMode(Value: TToolMode);
185185
procedure Output(SQL: String; IsEndOfQuery, ForFile, ForDir, ForDb, ForServer: Boolean);
@@ -379,6 +379,7 @@ procedure TfrmTableTools.FormShow(Sender: TObject);
379379
TreeObjects.RootNodeCount := Mainform.DBtree.RootNodeCount;
380380

381381
FObjectSizes := 0;
382+
FObjectCount := 0;
382383

383384
// Init all objects in active database, so the tree does not just check the db node
384385
// if we want the first child only. See issue #2267.
@@ -622,7 +623,7 @@ procedure TfrmTableTools.ValidateControls(Sender: TObject);
622623
SomeChecked := TreeObjects.CheckedCount > 0;
623624
TExtForm.PageControlTabHighlight(tabsTools);
624625
btnSeeResults.Visible := tabsTools.ActivePage = tabFind;
625-
lblCheckedSize.Caption := f_('Selected objects size: %s', [FormatByteNumber(FObjectSizes)]);
626+
lblCheckedSize.Caption := f_('%s selected objects, size: %s', [FObjectCount.ToString, FormatByteNumber(FObjectSizes)]);
626627
menuExportOptionClick(Sender);
627628
if tabsTools.ActivePage = tabMaintenance then begin
628629
btnExecute.Caption := _('Execute');
@@ -805,21 +806,21 @@ function TfrmTableTools.GetCheckedObjects(DBNode: PVirtualNode): TDBObjectList;
805806
// Return list with checked objects from database node
806807
// The caller doesn't need to care whether type grouping in tree is activated
807808
Result := TDBObjectList.Create(False);
808-
Child := TreeObjects.GetFirstVisibleChild(DBNode);
809+
Child := TreeObjects.GetFirstChild(DBNode);
809810
while Assigned(Child) do begin
810811
if Child.CheckState in CheckedStates then begin
811812
ChildObj := TreeObjects.GetNodeData(Child);
812813

813814
case ChildObj.NodeType of
814815

815816
lntGroup: begin
816-
GrandChild := TreeObjects.GetFirstVisibleChild(Child);
817+
GrandChild := TreeObjects.GetFirstChild(Child);
817818
while Assigned(GrandChild) do begin
818819
if GrandChild.CheckState in CheckedStates then begin
819820
GrandChildObj := TreeObjects.GetNodeData(GrandChild);
820821
Result.Add(GrandChildObj^);
821822
end;
822-
GrandChild := TreeObjects.GetNextVisibleSibling(GrandChild);
823+
GrandChild := TreeObjects.GetNextSibling(GrandChild);
823824
end;
824825
end
825826

@@ -829,7 +830,7 @@ function TfrmTableTools.GetCheckedObjects(DBNode: PVirtualNode): TDBObjectList;
829830

830831
end;
831832
end;
832-
Child := TreeObjects.GetNextVisibleSibling(Child);
833+
Child := TreeObjects.GetNextSibling(Child);
833834
end;
834835
end;
835836

@@ -916,7 +917,7 @@ procedure TfrmTableTools.Execute(Sender: TObject);
916917

917918
SessionNode := TreeObjects.GetFirstChild(nil);
918919
while Assigned(SessionNode) do begin
919-
DBNode := TreeObjects.GetFirstVisibleChild(SessionNode);
920+
DBNode := TreeObjects.GetFirstChild(SessionNode);
920921
while Assigned(DBNode) do begin
921922
if not (DBNode.CheckState in [csUncheckedNormal, csUncheckedPressed]) then begin
922923
Triggers.Clear;
@@ -953,7 +954,7 @@ procedure TfrmTableTools.Execute(Sender: TObject);
953954

954955
end;
955956
if FCancelled then Break;
956-
DBNode := TreeObjects.GetNextVisibleSibling(DBNode);
957+
DBNode := TreeObjects.GetNextSibling(DBNode);
957958
end; // End of db item loop
958959
if FCancelled then Break;
959960
SessionNode := TreeObjects.GetNextSibling(SessionNode);
@@ -1419,18 +1420,20 @@ procedure TfrmTableTools.timerCalcSizeTimer(Sender: TObject);
14191420
timerCalcSize.Enabled := False;
14201421
SessionNode := TreeObjects.GetFirstChild(nil);
14211422
FObjectSizes := 0;
1423+
FObjectCount := 0;
14221424
while Assigned(SessionNode) do begin
1423-
DBNode := TreeObjects.GetFirstVisibleChild(SessionNode);
1425+
DBNode := TreeObjects.GetFirstChild(SessionNode);
14241426
while Assigned(DBNode) do begin
14251427
if not (DBNode.CheckState in [csUncheckedNormal, csUncheckedPressed]) then begin
14261428
CheckedObjects := GetCheckedObjects(DBNode);
14271429
for DBObj in CheckedObjects do begin
14281430
Inc(FObjectSizes, DBObj.Size);
1431+
Inc(FObjectCount);
14291432
end;
14301433
end;
1431-
DBNode := TreeObjects.GetNextVisibleSibling(DBNode);
1434+
DBNode := TreeObjects.GetNextSibling(DBNode);
14321435
end;
1433-
SessionNode := TreeObjects.GetNextVisibleSibling(SessionNode);
1436+
SessionNode := TreeObjects.GetNextSibling(SessionNode);
14341437
end;
14351438
ValidateControls(Sender);
14361439
end;

0 commit comments

Comments
 (0)